xref: /aosp_15_r20/external/deqp/external/vulkancts/framework/vulkan/generated/vulkan/vkStrUtilImpl.inl (revision 35238bce31c2a825756842865a792f8cf7f89930)
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 */
5
6template<> const char*	getTypeName<VkInstance>							(void) { return "VkInstance";						}
7template<> const char*	getTypeName<VkPhysicalDevice>					(void) { return "VkPhysicalDevice";					}
8template<> const char*	getTypeName<VkDevice>							(void) { return "VkDevice";							}
9template<> const char*	getTypeName<VkQueue>							(void) { return "VkQueue";							}
10template<> const char*	getTypeName<VkCommandBuffer>					(void) { return "VkCommandBuffer";					}
11template<> const char*	getTypeName<VkDeviceMemory>						(void) { return "VkDeviceMemory";					}
12template<> const char*	getTypeName<VkCommandPool>						(void) { return "VkCommandPool";					}
13template<> const char*	getTypeName<VkBuffer>							(void) { return "VkBuffer";							}
14template<> const char*	getTypeName<VkBufferView>						(void) { return "VkBufferView";						}
15template<> const char*	getTypeName<VkImage>							(void) { return "VkImage";							}
16template<> const char*	getTypeName<VkImageView>						(void) { return "VkImageView";						}
17template<> const char*	getTypeName<VkShaderModule>						(void) { return "VkShaderModule";					}
18template<> const char*	getTypeName<VkPipeline>							(void) { return "VkPipeline";						}
19template<> const char*	getTypeName<VkPipelineLayout>					(void) { return "VkPipelineLayout";					}
20template<> const char*	getTypeName<VkSampler>							(void) { return "VkSampler";						}
21template<> const char*	getTypeName<VkDescriptorSet>					(void) { return "VkDescriptorSet";					}
22template<> const char*	getTypeName<VkDescriptorSetLayout>				(void) { return "VkDescriptorSetLayout";			}
23template<> const char*	getTypeName<VkDescriptorPool>					(void) { return "VkDescriptorPool";					}
24template<> const char*	getTypeName<VkFence>							(void) { return "VkFence";							}
25template<> const char*	getTypeName<VkSemaphore>						(void) { return "VkSemaphore";						}
26template<> const char*	getTypeName<VkEvent>							(void) { return "VkEvent";							}
27template<> const char*	getTypeName<VkQueryPool>						(void) { return "VkQueryPool";						}
28template<> const char*	getTypeName<VkFramebuffer>						(void) { return "VkFramebuffer";					}
29template<> const char*	getTypeName<VkRenderPass>						(void) { return "VkRenderPass";						}
30template<> const char*	getTypeName<VkPipelineCache>					(void) { return "VkPipelineCache";					}
31template<> const char*	getTypeName<VkIndirectCommandsLayoutNV>			(void) { return "VkIndirectCommandsLayoutNV";		}
32template<> const char*	getTypeName<VkDescriptorUpdateTemplate>			(void) { return "VkDescriptorUpdateTemplate";		}
33template<> const char*	getTypeName<VkSamplerYcbcrConversion>			(void) { return "VkSamplerYcbcrConversion";			}
34template<> const char*	getTypeName<VkValidationCacheEXT>				(void) { return "VkValidationCacheEXT";				}
35template<> const char*	getTypeName<VkAccelerationStructureKHR>			(void) { return "VkAccelerationStructureKHR";		}
36template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
37template<> const char*	getTypeName<VkPerformanceConfigurationINTEL>	(void) { return "VkPerformanceConfigurationINTEL";	}
38template<> const char*	getTypeName<VkBufferCollectionFUCHSIA>			(void) { return "VkBufferCollectionFUCHSIA";		}
39template<> const char*	getTypeName<VkDeferredOperationKHR>				(void) { return "VkDeferredOperationKHR";			}
40template<> const char*	getTypeName<VkPrivateDataSlot>					(void) { return "VkPrivateDataSlot";				}
41template<> const char*	getTypeName<VkCuModuleNVX>						(void) { return "VkCuModuleNVX";					}
42template<> const char*	getTypeName<VkCuFunctionNVX>					(void) { return "VkCuFunctionNVX";					}
43template<> const char*	getTypeName<VkOpticalFlowSessionNV>				(void) { return "VkOpticalFlowSessionNV";			}
44template<> const char*	getTypeName<VkMicromapEXT>						(void) { return "VkMicromapEXT";					}
45template<> const char*	getTypeName<VkShaderEXT>						(void) { return "VkShaderEXT";						}
46template<> const char*	getTypeName<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
47template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
48template<> const char*	getTypeName<VkSurfaceKHR>						(void) { return "VkSurfaceKHR";						}
49template<> const char*	getTypeName<VkSwapchainKHR>						(void) { return "VkSwapchainKHR";					}
50template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
51template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
52template<> const char*	getTypeName<VkVideoSessionKHR>					(void) { return "VkVideoSessionKHR";				}
53template<> const char*	getTypeName<VkVideoSessionParametersKHR>		(void) { return "VkVideoSessionParametersKHR";		}
54template<> const char*	getTypeName<VkCudaModuleNV>						(void) { return "VkCudaModuleNV";					}
55template<> const char*	getTypeName<VkCudaFunctionNV>					(void) { return "VkCudaFunctionNV";					}
56
57namespace pt
58{
59std::ostream& operator<< (std::ostream& s, XlibDisplayPtr				v) { return s << tcu::toHex(v.internal); }
60std::ostream& operator<< (std::ostream& s, XlibWindow					v) { return s << tcu::toHex(v.internal); }
61std::ostream& operator<< (std::ostream& s, XlibVisualID					v) { return s << tcu::toHex(v.internal); }
62std::ostream& operator<< (std::ostream& s, XcbConnectionPtr				v) { return s << tcu::toHex(v.internal); }
63std::ostream& operator<< (std::ostream& s, XcbWindow					v) { return s << tcu::toHex(v.internal); }
64std::ostream& operator<< (std::ostream& s, XcbVisualid					v) { return s << tcu::toHex(v.internal); }
65std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr			v) { return s << tcu::toHex(v.internal); }
66std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr			v) { return s << tcu::toHex(v.internal); }
67std::ostream& operator<< (std::ostream& s, MirConnectionPtr				v) { return s << tcu::toHex(v.internal); }
68std::ostream& operator<< (std::ostream& s, MirSurfacePtr				v) { return s << tcu::toHex(v.internal); }
69std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr		v) { return s << tcu::toHex(v.internal); }
70std::ostream& operator<< (std::ostream& s, Win32InstanceHandle			v) { return s << tcu::toHex(v.internal); }
71std::ostream& operator<< (std::ostream& s, Win32WindowHandle			v) { return s << tcu::toHex(v.internal); }
72std::ostream& operator<< (std::ostream& s, Win32Handle					v) { return s << tcu::toHex(v.internal); }
73std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr	v) { return s << tcu::toHex(v.internal); }
74std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr		v) { return s << tcu::toHex(v.internal); }
75std::ostream& operator<< (std::ostream& s, Win32MonitorHandle			v) { return s << tcu::toHex(v.internal); }
76std::ostream& operator<< (std::ostream& s, Win32LPCWSTR					v) { return s << tcu::toHex(v.internal); }
77std::ostream& operator<< (std::ostream& s, RROutput						v) { return s << tcu::toHex(v.internal); }
78std::ostream& operator<< (std::ostream& s, zx_handle_t					v) { return s << tcu::toHex(v.internal); }
79std::ostream& operator<< (std::ostream& s, GgpFrameToken				v) { return s << tcu::toHex(v.internal); }
80std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor			v) { return s << tcu::toHex(v.internal); }
81std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
82std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr			v) { return s << tcu::toHex(v.internal); }
83std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr			v) { return s << tcu::toHex(v.internal); }
84std::ostream& operator<< (std::ostream& s, MTLDevice_id					v) { return s << tcu::toHex(v.internal); }
85std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id			v) { return s << tcu::toHex(v.internal); }
86std::ostream& operator<< (std::ostream& s, MTLBuffer_id					v) { return s << tcu::toHex(v.internal); }
87std::ostream& operator<< (std::ostream& s, MTLTexture_id				v) { return s << tcu::toHex(v.internal); }
88std::ostream& operator<< (std::ostream& s, IOSurfaceRef					v) { return s << tcu::toHex(v.internal); }
89std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id			v) { return s << tcu::toHex(v.internal); }
90std::ostream& operator<< (std::ostream& s, NvSciBufObj					v) { return s << tcu::toHex(v.internal); }
91std::ostream& operator<< (std::ostream& s, NvSciSyncObj					v) { return s << tcu::toHex(v.internal); }
92std::ostream& operator<< (std::ostream& s, NvSciSyncFence				v) { return s << tcu::toHex(v.internal); }
93std::ostream& operator<< (std::ostream& s, NvSciBufAttrList				v) { return s << tcu::toHex(v.internal); }
94std::ostream& operator<< (std::ostream& s, NvSciSyncAttrList			v) { return s << tcu::toHex(v.internal); }
95}
96
97const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
98{
99	switch (value)
100	{
101		case VK_ATTACHMENT_LOAD_OP_LOAD:		return "VK_ATTACHMENT_LOAD_OP_LOAD";
102		case VK_ATTACHMENT_LOAD_OP_CLEAR:		return "VK_ATTACHMENT_LOAD_OP_CLEAR";
103		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:	return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
104		case VK_ATTACHMENT_LOAD_OP_NONE_KHR:	return "VK_ATTACHMENT_LOAD_OP_NONE_KHR";
105		default:								return DE_NULL;
106	}
107}
108
109const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
110{
111	switch (value)
112	{
113		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
114		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
115		case VK_ATTACHMENT_STORE_OP_NONE:		return "VK_ATTACHMENT_STORE_OP_NONE";
116		default:								return DE_NULL;
117	}
118}
119
120const char* getBlendFactorName (VkBlendFactor value)
121{
122	switch (value)
123	{
124		case VK_BLEND_FACTOR_ZERO:						return "VK_BLEND_FACTOR_ZERO";
125		case VK_BLEND_FACTOR_ONE:						return "VK_BLEND_FACTOR_ONE";
126		case VK_BLEND_FACTOR_SRC_COLOR:					return "VK_BLEND_FACTOR_SRC_COLOR";
127		case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
128		case VK_BLEND_FACTOR_DST_COLOR:					return "VK_BLEND_FACTOR_DST_COLOR";
129		case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
130		case VK_BLEND_FACTOR_SRC_ALPHA:					return "VK_BLEND_FACTOR_SRC_ALPHA";
131		case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
132		case VK_BLEND_FACTOR_DST_ALPHA:					return "VK_BLEND_FACTOR_DST_ALPHA";
133		case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
134		case VK_BLEND_FACTOR_CONSTANT_COLOR:			return "VK_BLEND_FACTOR_CONSTANT_COLOR";
135		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
136		case VK_BLEND_FACTOR_CONSTANT_ALPHA:			return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
137		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
138		case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:		return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
139		case VK_BLEND_FACTOR_SRC1_COLOR:				return "VK_BLEND_FACTOR_SRC1_COLOR";
140		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
141		case VK_BLEND_FACTOR_SRC1_ALPHA:				return "VK_BLEND_FACTOR_SRC1_ALPHA";
142		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
143		default:										return DE_NULL;
144	}
145}
146
147const char* getBlendOpName (VkBlendOp value)
148{
149	switch (value)
150	{
151		case VK_BLEND_OP_ADD:						return "VK_BLEND_OP_ADD";
152		case VK_BLEND_OP_SUBTRACT:					return "VK_BLEND_OP_SUBTRACT";
153		case VK_BLEND_OP_REVERSE_SUBTRACT:			return "VK_BLEND_OP_REVERSE_SUBTRACT";
154		case VK_BLEND_OP_MIN:						return "VK_BLEND_OP_MIN";
155		case VK_BLEND_OP_MAX:						return "VK_BLEND_OP_MAX";
156		case VK_BLEND_OP_ZERO_EXT:					return "VK_BLEND_OP_ZERO_EXT";
157		case VK_BLEND_OP_SRC_EXT:					return "VK_BLEND_OP_SRC_EXT";
158		case VK_BLEND_OP_DST_EXT:					return "VK_BLEND_OP_DST_EXT";
159		case VK_BLEND_OP_SRC_OVER_EXT:				return "VK_BLEND_OP_SRC_OVER_EXT";
160		case VK_BLEND_OP_DST_OVER_EXT:				return "VK_BLEND_OP_DST_OVER_EXT";
161		case VK_BLEND_OP_SRC_IN_EXT:				return "VK_BLEND_OP_SRC_IN_EXT";
162		case VK_BLEND_OP_DST_IN_EXT:				return "VK_BLEND_OP_DST_IN_EXT";
163		case VK_BLEND_OP_SRC_OUT_EXT:				return "VK_BLEND_OP_SRC_OUT_EXT";
164		case VK_BLEND_OP_DST_OUT_EXT:				return "VK_BLEND_OP_DST_OUT_EXT";
165		case VK_BLEND_OP_SRC_ATOP_EXT:				return "VK_BLEND_OP_SRC_ATOP_EXT";
166		case VK_BLEND_OP_DST_ATOP_EXT:				return "VK_BLEND_OP_DST_ATOP_EXT";
167		case VK_BLEND_OP_XOR_EXT:					return "VK_BLEND_OP_XOR_EXT";
168		case VK_BLEND_OP_MULTIPLY_EXT:				return "VK_BLEND_OP_MULTIPLY_EXT";
169		case VK_BLEND_OP_SCREEN_EXT:				return "VK_BLEND_OP_SCREEN_EXT";
170		case VK_BLEND_OP_OVERLAY_EXT:				return "VK_BLEND_OP_OVERLAY_EXT";
171		case VK_BLEND_OP_DARKEN_EXT:				return "VK_BLEND_OP_DARKEN_EXT";
172		case VK_BLEND_OP_LIGHTEN_EXT:				return "VK_BLEND_OP_LIGHTEN_EXT";
173		case VK_BLEND_OP_COLORDODGE_EXT:			return "VK_BLEND_OP_COLORDODGE_EXT";
174		case VK_BLEND_OP_COLORBURN_EXT:				return "VK_BLEND_OP_COLORBURN_EXT";
175		case VK_BLEND_OP_HARDLIGHT_EXT:				return "VK_BLEND_OP_HARDLIGHT_EXT";
176		case VK_BLEND_OP_SOFTLIGHT_EXT:				return "VK_BLEND_OP_SOFTLIGHT_EXT";
177		case VK_BLEND_OP_DIFFERENCE_EXT:			return "VK_BLEND_OP_DIFFERENCE_EXT";
178		case VK_BLEND_OP_EXCLUSION_EXT:				return "VK_BLEND_OP_EXCLUSION_EXT";
179		case VK_BLEND_OP_INVERT_EXT:				return "VK_BLEND_OP_INVERT_EXT";
180		case VK_BLEND_OP_INVERT_RGB_EXT:			return "VK_BLEND_OP_INVERT_RGB_EXT";
181		case VK_BLEND_OP_LINEARDODGE_EXT:			return "VK_BLEND_OP_LINEARDODGE_EXT";
182		case VK_BLEND_OP_LINEARBURN_EXT:			return "VK_BLEND_OP_LINEARBURN_EXT";
183		case VK_BLEND_OP_VIVIDLIGHT_EXT:			return "VK_BLEND_OP_VIVIDLIGHT_EXT";
184		case VK_BLEND_OP_LINEARLIGHT_EXT:			return "VK_BLEND_OP_LINEARLIGHT_EXT";
185		case VK_BLEND_OP_PINLIGHT_EXT:				return "VK_BLEND_OP_PINLIGHT_EXT";
186		case VK_BLEND_OP_HARDMIX_EXT:				return "VK_BLEND_OP_HARDMIX_EXT";
187		case VK_BLEND_OP_HSL_HUE_EXT:				return "VK_BLEND_OP_HSL_HUE_EXT";
188		case VK_BLEND_OP_HSL_SATURATION_EXT:		return "VK_BLEND_OP_HSL_SATURATION_EXT";
189		case VK_BLEND_OP_HSL_COLOR_EXT:				return "VK_BLEND_OP_HSL_COLOR_EXT";
190		case VK_BLEND_OP_HSL_LUMINOSITY_EXT:		return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
191		case VK_BLEND_OP_PLUS_EXT:					return "VK_BLEND_OP_PLUS_EXT";
192		case VK_BLEND_OP_PLUS_CLAMPED_EXT:			return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
193		case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:	return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
194		case VK_BLEND_OP_PLUS_DARKER_EXT:			return "VK_BLEND_OP_PLUS_DARKER_EXT";
195		case VK_BLEND_OP_MINUS_EXT:					return "VK_BLEND_OP_MINUS_EXT";
196		case VK_BLEND_OP_MINUS_CLAMPED_EXT:			return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
197		case VK_BLEND_OP_CONTRAST_EXT:				return "VK_BLEND_OP_CONTRAST_EXT";
198		case VK_BLEND_OP_INVERT_OVG_EXT:			return "VK_BLEND_OP_INVERT_OVG_EXT";
199		case VK_BLEND_OP_RED_EXT:					return "VK_BLEND_OP_RED_EXT";
200		case VK_BLEND_OP_GREEN_EXT:					return "VK_BLEND_OP_GREEN_EXT";
201		case VK_BLEND_OP_BLUE_EXT:					return "VK_BLEND_OP_BLUE_EXT";
202		default:									return DE_NULL;
203	}
204}
205
206const char* getBorderColorName (VkBorderColor value)
207{
208	switch (value)
209	{
210		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
211		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
212		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
213		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
214		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
215		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
216		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
217		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
218		default:										return DE_NULL;
219	}
220}
221
222tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
223{
224	static const tcu::Format::BitDesc s_desc[] =
225	{
226		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,	"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
227	};
228	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
229}
230
231tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
232{
233	static const tcu::Format::BitDesc s_desc[] =
234	{
235		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
236	};
237	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
238}
239
240tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
241{
242	static const tcu::Format::BitDesc s_desc[] =
243	{
244		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,							"VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
245		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,	"VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
246		tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,				"VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
247		tcu::Format::BitDesc(VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
248		tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,					"VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
249	};
250	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
251}
252
253const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
254{
255	switch (value)
256	{
257		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:	return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
258		default:									return DE_NULL;
259	}
260}
261
262tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
263{
264	static const tcu::Format::BitDesc s_desc[] =
265	{
266		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
267	};
268	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
269}
270
271tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
272{
273	static const tcu::Format::BitDesc s_desc[] =
274	{
275		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,	"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
276		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,		"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
277	};
278	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
279}
280
281tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
282{
283	static const tcu::Format::BitDesc s_desc[] =
284	{
285		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
286		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
287		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT"),
288		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
289		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,	"VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"),
290		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV,						"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV"),
291		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV"),
292	};
293	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
294}
295
296tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
297{
298	static const tcu::Format::BitDesc s_desc[] =
299	{
300		tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,	"VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
301	};
302	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
303}
304
305tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
306{
307	static const tcu::Format::BitDesc s_desc[] =
308	{
309		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,	"VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
310	};
311	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
312}
313
314tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
315{
316	static const tcu::Format::BitDesc s_desc[] =
317	{
318		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,						"VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
319		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,						"VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
320		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,						"VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
321		tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,							"VK_BUFFER_CREATE_PROTECTED_BIT"),
322		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
323		tcu::Format::BitDesc(VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
324		tcu::Format::BitDesc(VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,		"VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"),
325	};
326	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
327}
328
329tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
330{
331	static const tcu::Format::BitDesc s_desc[] =
332	{
333		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
334		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
335		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
336		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
337		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,									"VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
338		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,									"VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
339		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
340		tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
341		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,									"VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
342		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
343		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
344		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
345		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
346		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
347		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
348		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
349		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
350		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
351		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"),
352		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,				"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
353		tcu::Format::BitDesc(VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"),
354		tcu::Format::BitDesc(VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,					"VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"),
355		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,				"VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
356		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,								"VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"),
357		tcu::Format::BitDesc(VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,						"VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"),
358		tcu::Format::BitDesc(VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,			"VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"),
359	};
360	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
361}
362
363tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
364{
365	static const tcu::Format::BitDesc s_desc[] =
366	{
367		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,	"VK_COLOR_COMPONENT_R_BIT"),
368		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,	"VK_COLOR_COMPONENT_G_BIT"),
369		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,	"VK_COLOR_COMPONENT_B_BIT"),
370		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,	"VK_COLOR_COMPONENT_A_BIT"),
371	};
372	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
373}
374
375const char* getComponentSwizzleName (VkComponentSwizzle value)
376{
377	switch (value)
378	{
379		case VK_COMPONENT_SWIZZLE_IDENTITY:	return "VK_COMPONENT_SWIZZLE_IDENTITY";
380		case VK_COMPONENT_SWIZZLE_ZERO:		return "VK_COMPONENT_SWIZZLE_ZERO";
381		case VK_COMPONENT_SWIZZLE_ONE:		return "VK_COMPONENT_SWIZZLE_ONE";
382		case VK_COMPONENT_SWIZZLE_R:		return "VK_COMPONENT_SWIZZLE_R";
383		case VK_COMPONENT_SWIZZLE_G:		return "VK_COMPONENT_SWIZZLE_G";
384		case VK_COMPONENT_SWIZZLE_B:		return "VK_COMPONENT_SWIZZLE_B";
385		case VK_COMPONENT_SWIZZLE_A:		return "VK_COMPONENT_SWIZZLE_A";
386		default:							return DE_NULL;
387	}
388}
389
390tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
391{
392	static const tcu::Format::BitDesc s_desc[] =
393	{
394		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,				"VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
395		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,	"VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
396		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,				"VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
397	};
398	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
399}
400
401tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
402{
403	static const tcu::Format::BitDesc s_desc[] =
404	{
405		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
406	};
407	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
408}
409
410tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
411{
412	static const tcu::Format::BitDesc s_desc[] =
413	{
414		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
415	};
416	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
417}
418
419const char* getCommandBufferLevelName (VkCommandBufferLevel value)
420{
421	switch (value)
422	{
423		case VK_COMMAND_BUFFER_LEVEL_PRIMARY:	return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
424		case VK_COMMAND_BUFFER_LEVEL_SECONDARY:	return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
425		default:								return DE_NULL;
426	}
427}
428
429tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
430{
431	static const tcu::Format::BitDesc s_desc[] =
432	{
433		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		"VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
434		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,	"VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
435		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,		"VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
436	};
437	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
438}
439
440const char* getCompareOpName (VkCompareOp value)
441{
442	switch (value)
443	{
444		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
445		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
446		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
447		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
448		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
449		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
450		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
451		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
452		default:								return DE_NULL;
453	}
454}
455
456tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
457{
458	static const tcu::Format::BitDesc s_desc[] =
459	{
460		tcu::Format::BitDesc(VK_CULL_MODE_NONE,				"VK_CULL_MODE_NONE"),
461		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,		"VK_CULL_MODE_FRONT_BIT"),
462		tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,			"VK_CULL_MODE_BACK_BIT"),
463		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,	"VK_CULL_MODE_FRONT_AND_BACK"),
464	};
465	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
466}
467
468const char* getDescriptorTypeName (VkDescriptorType value)
469{
470	switch (value)
471	{
472		case VK_DESCRIPTOR_TYPE_SAMPLER:					return "VK_DESCRIPTOR_TYPE_SAMPLER";
473		case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:		return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
474		case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:				return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
475		case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:				return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
476		case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
477		case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
478		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:				return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
479		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:				return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
480		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
481		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
482		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
483		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:		return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
484		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
485		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
486		case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:				return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT";
487		case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:	return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
488		case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:		return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
489		default:											return DE_NULL;
490	}
491}
492
493const char* getDynamicStateName (VkDynamicState value)
494{
495	switch (value)
496	{
497		case VK_DYNAMIC_STATE_VIEWPORT:									return "VK_DYNAMIC_STATE_VIEWPORT";
498		case VK_DYNAMIC_STATE_SCISSOR:									return "VK_DYNAMIC_STATE_SCISSOR";
499		case VK_DYNAMIC_STATE_LINE_WIDTH:								return "VK_DYNAMIC_STATE_LINE_WIDTH";
500		case VK_DYNAMIC_STATE_DEPTH_BIAS:								return "VK_DYNAMIC_STATE_DEPTH_BIAS";
501		case VK_DYNAMIC_STATE_BLEND_CONSTANTS:							return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
502		case VK_DYNAMIC_STATE_DEPTH_BOUNDS:								return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
503		case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
504		case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
505		case VK_DYNAMIC_STATE_STENCIL_REFERENCE:						return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
506		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:					return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
507		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:					return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
508		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT";
509		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT";
510		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:						return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
511		case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
512		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
513		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:				return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV";
514		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:						return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
515		case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:				return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
516		case VK_DYNAMIC_STATE_LINE_STIPPLE_KHR:							return "VK_DYNAMIC_STATE_LINE_STIPPLE_KHR";
517		case VK_DYNAMIC_STATE_CULL_MODE:								return "VK_DYNAMIC_STATE_CULL_MODE";
518		case VK_DYNAMIC_STATE_FRONT_FACE:								return "VK_DYNAMIC_STATE_FRONT_FACE";
519		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:						return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
520		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:						return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
521		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:						return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
522		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:				return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
523		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
524		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
525		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:							return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
526		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
527		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:						return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
528		case VK_DYNAMIC_STATE_STENCIL_OP:								return "VK_DYNAMIC_STATE_STENCIL_OP";
529		case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:		return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
530		case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:							return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
531		case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:					return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
532		case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:				return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
533		case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
534		case VK_DYNAMIC_STATE_LOGIC_OP_EXT:								return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
535		case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:					return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
536		case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
537		case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:			return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT";
538		case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT";
539		case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:							return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT";
540		case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:				return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT";
541		case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:							return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT";
542		case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
543		case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
544		case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:						return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT";
545		case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT";
546		case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT";
547		case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:						return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT";
548		case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:					return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT";
549		case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:		return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT";
550		case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:	return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT";
551		case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT";
552		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:				return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT";
553		case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT";
554		case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:				return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT";
555		case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:				return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT";
556		case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT";
557		case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:		return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT";
558		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:				return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV";
559		case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:						return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV";
560		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV";
561		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:			return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV";
562		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV";
563		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:		return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV";
564		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV";
565		case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:				return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV";
566		case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:	return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV";
567		case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV";
568		case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:		return "VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT";
569		default:														return DE_NULL;
570	}
571}
572
573tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
574{
575	static const tcu::Format::BitDesc s_desc[] =
576	{
577		tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,	"VK_FENCE_CREATE_SIGNALED_BIT"),
578	};
579	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
580}
581
582const char* getPolygonModeName (VkPolygonMode value)
583{
584	switch (value)
585	{
586		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
587		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
588		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
589		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
590		default:								return DE_NULL;
591	}
592}
593
594const char* getFormatName (VkFormat value)
595{
596	switch (value)
597	{
598		case VK_FORMAT_UNDEFINED:									return "VK_FORMAT_UNDEFINED";
599		case VK_FORMAT_R4G4_UNORM_PACK8:							return "VK_FORMAT_R4G4_UNORM_PACK8";
600		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:						return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
601		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:						return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
602		case VK_FORMAT_R5G6B5_UNORM_PACK16:							return "VK_FORMAT_R5G6B5_UNORM_PACK16";
603		case VK_FORMAT_B5G6R5_UNORM_PACK16:							return "VK_FORMAT_B5G6R5_UNORM_PACK16";
604		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:						return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
605		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:						return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
606		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:						return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
607		case VK_FORMAT_R8_UNORM:									return "VK_FORMAT_R8_UNORM";
608		case VK_FORMAT_R8_SNORM:									return "VK_FORMAT_R8_SNORM";
609		case VK_FORMAT_R8_USCALED:									return "VK_FORMAT_R8_USCALED";
610		case VK_FORMAT_R8_SSCALED:									return "VK_FORMAT_R8_SSCALED";
611		case VK_FORMAT_R8_UINT:										return "VK_FORMAT_R8_UINT";
612		case VK_FORMAT_R8_SINT:										return "VK_FORMAT_R8_SINT";
613		case VK_FORMAT_R8_SRGB:										return "VK_FORMAT_R8_SRGB";
614		case VK_FORMAT_R8G8_UNORM:									return "VK_FORMAT_R8G8_UNORM";
615		case VK_FORMAT_R8G8_SNORM:									return "VK_FORMAT_R8G8_SNORM";
616		case VK_FORMAT_R8G8_USCALED:								return "VK_FORMAT_R8G8_USCALED";
617		case VK_FORMAT_R8G8_SSCALED:								return "VK_FORMAT_R8G8_SSCALED";
618		case VK_FORMAT_R8G8_UINT:									return "VK_FORMAT_R8G8_UINT";
619		case VK_FORMAT_R8G8_SINT:									return "VK_FORMAT_R8G8_SINT";
620		case VK_FORMAT_R8G8_SRGB:									return "VK_FORMAT_R8G8_SRGB";
621		case VK_FORMAT_R8G8B8_UNORM:								return "VK_FORMAT_R8G8B8_UNORM";
622		case VK_FORMAT_R8G8B8_SNORM:								return "VK_FORMAT_R8G8B8_SNORM";
623		case VK_FORMAT_R8G8B8_USCALED:								return "VK_FORMAT_R8G8B8_USCALED";
624		case VK_FORMAT_R8G8B8_SSCALED:								return "VK_FORMAT_R8G8B8_SSCALED";
625		case VK_FORMAT_R8G8B8_UINT:									return "VK_FORMAT_R8G8B8_UINT";
626		case VK_FORMAT_R8G8B8_SINT:									return "VK_FORMAT_R8G8B8_SINT";
627		case VK_FORMAT_R8G8B8_SRGB:									return "VK_FORMAT_R8G8B8_SRGB";
628		case VK_FORMAT_B8G8R8_UNORM:								return "VK_FORMAT_B8G8R8_UNORM";
629		case VK_FORMAT_B8G8R8_SNORM:								return "VK_FORMAT_B8G8R8_SNORM";
630		case VK_FORMAT_B8G8R8_USCALED:								return "VK_FORMAT_B8G8R8_USCALED";
631		case VK_FORMAT_B8G8R8_SSCALED:								return "VK_FORMAT_B8G8R8_SSCALED";
632		case VK_FORMAT_B8G8R8_UINT:									return "VK_FORMAT_B8G8R8_UINT";
633		case VK_FORMAT_B8G8R8_SINT:									return "VK_FORMAT_B8G8R8_SINT";
634		case VK_FORMAT_B8G8R8_SRGB:									return "VK_FORMAT_B8G8R8_SRGB";
635		case VK_FORMAT_R8G8B8A8_UNORM:								return "VK_FORMAT_R8G8B8A8_UNORM";
636		case VK_FORMAT_R8G8B8A8_SNORM:								return "VK_FORMAT_R8G8B8A8_SNORM";
637		case VK_FORMAT_R8G8B8A8_USCALED:							return "VK_FORMAT_R8G8B8A8_USCALED";
638		case VK_FORMAT_R8G8B8A8_SSCALED:							return "VK_FORMAT_R8G8B8A8_SSCALED";
639		case VK_FORMAT_R8G8B8A8_UINT:								return "VK_FORMAT_R8G8B8A8_UINT";
640		case VK_FORMAT_R8G8B8A8_SINT:								return "VK_FORMAT_R8G8B8A8_SINT";
641		case VK_FORMAT_R8G8B8A8_SRGB:								return "VK_FORMAT_R8G8B8A8_SRGB";
642		case VK_FORMAT_B8G8R8A8_UNORM:								return "VK_FORMAT_B8G8R8A8_UNORM";
643		case VK_FORMAT_B8G8R8A8_SNORM:								return "VK_FORMAT_B8G8R8A8_SNORM";
644		case VK_FORMAT_B8G8R8A8_USCALED:							return "VK_FORMAT_B8G8R8A8_USCALED";
645		case VK_FORMAT_B8G8R8A8_SSCALED:							return "VK_FORMAT_B8G8R8A8_SSCALED";
646		case VK_FORMAT_B8G8R8A8_UINT:								return "VK_FORMAT_B8G8R8A8_UINT";
647		case VK_FORMAT_B8G8R8A8_SINT:								return "VK_FORMAT_B8G8R8A8_SINT";
648		case VK_FORMAT_B8G8R8A8_SRGB:								return "VK_FORMAT_B8G8R8A8_SRGB";
649		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
650		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
651		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
652		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
653		case VK_FORMAT_A8B8G8R8_UINT_PACK32:						return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
654		case VK_FORMAT_A8B8G8R8_SINT_PACK32:						return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
655		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:						return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
656		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
657		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
658		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
659		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
660		case VK_FORMAT_A2R10G10B10_UINT_PACK32:						return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
661		case VK_FORMAT_A2R10G10B10_SINT_PACK32:						return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
662		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
663		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
664		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
665		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
666		case VK_FORMAT_A2B10G10R10_UINT_PACK32:						return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
667		case VK_FORMAT_A2B10G10R10_SINT_PACK32:						return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
668		case VK_FORMAT_R16_UNORM:									return "VK_FORMAT_R16_UNORM";
669		case VK_FORMAT_R16_SNORM:									return "VK_FORMAT_R16_SNORM";
670		case VK_FORMAT_R16_USCALED:									return "VK_FORMAT_R16_USCALED";
671		case VK_FORMAT_R16_SSCALED:									return "VK_FORMAT_R16_SSCALED";
672		case VK_FORMAT_R16_UINT:									return "VK_FORMAT_R16_UINT";
673		case VK_FORMAT_R16_SINT:									return "VK_FORMAT_R16_SINT";
674		case VK_FORMAT_R16_SFLOAT:									return "VK_FORMAT_R16_SFLOAT";
675		case VK_FORMAT_R16G16_UNORM:								return "VK_FORMAT_R16G16_UNORM";
676		case VK_FORMAT_R16G16_SNORM:								return "VK_FORMAT_R16G16_SNORM";
677		case VK_FORMAT_R16G16_USCALED:								return "VK_FORMAT_R16G16_USCALED";
678		case VK_FORMAT_R16G16_SSCALED:								return "VK_FORMAT_R16G16_SSCALED";
679		case VK_FORMAT_R16G16_UINT:									return "VK_FORMAT_R16G16_UINT";
680		case VK_FORMAT_R16G16_SINT:									return "VK_FORMAT_R16G16_SINT";
681		case VK_FORMAT_R16G16_SFLOAT:								return "VK_FORMAT_R16G16_SFLOAT";
682		case VK_FORMAT_R16G16B16_UNORM:								return "VK_FORMAT_R16G16B16_UNORM";
683		case VK_FORMAT_R16G16B16_SNORM:								return "VK_FORMAT_R16G16B16_SNORM";
684		case VK_FORMAT_R16G16B16_USCALED:							return "VK_FORMAT_R16G16B16_USCALED";
685		case VK_FORMAT_R16G16B16_SSCALED:							return "VK_FORMAT_R16G16B16_SSCALED";
686		case VK_FORMAT_R16G16B16_UINT:								return "VK_FORMAT_R16G16B16_UINT";
687		case VK_FORMAT_R16G16B16_SINT:								return "VK_FORMAT_R16G16B16_SINT";
688		case VK_FORMAT_R16G16B16_SFLOAT:							return "VK_FORMAT_R16G16B16_SFLOAT";
689		case VK_FORMAT_R16G16B16A16_UNORM:							return "VK_FORMAT_R16G16B16A16_UNORM";
690		case VK_FORMAT_R16G16B16A16_SNORM:							return "VK_FORMAT_R16G16B16A16_SNORM";
691		case VK_FORMAT_R16G16B16A16_USCALED:						return "VK_FORMAT_R16G16B16A16_USCALED";
692		case VK_FORMAT_R16G16B16A16_SSCALED:						return "VK_FORMAT_R16G16B16A16_SSCALED";
693		case VK_FORMAT_R16G16B16A16_UINT:							return "VK_FORMAT_R16G16B16A16_UINT";
694		case VK_FORMAT_R16G16B16A16_SINT:							return "VK_FORMAT_R16G16B16A16_SINT";
695		case VK_FORMAT_R16G16B16A16_SFLOAT:							return "VK_FORMAT_R16G16B16A16_SFLOAT";
696		case VK_FORMAT_R32_UINT:									return "VK_FORMAT_R32_UINT";
697		case VK_FORMAT_R32_SINT:									return "VK_FORMAT_R32_SINT";
698		case VK_FORMAT_R32_SFLOAT:									return "VK_FORMAT_R32_SFLOAT";
699		case VK_FORMAT_R32G32_UINT:									return "VK_FORMAT_R32G32_UINT";
700		case VK_FORMAT_R32G32_SINT:									return "VK_FORMAT_R32G32_SINT";
701		case VK_FORMAT_R32G32_SFLOAT:								return "VK_FORMAT_R32G32_SFLOAT";
702		case VK_FORMAT_R32G32B32_UINT:								return "VK_FORMAT_R32G32B32_UINT";
703		case VK_FORMAT_R32G32B32_SINT:								return "VK_FORMAT_R32G32B32_SINT";
704		case VK_FORMAT_R32G32B32_SFLOAT:							return "VK_FORMAT_R32G32B32_SFLOAT";
705		case VK_FORMAT_R32G32B32A32_UINT:							return "VK_FORMAT_R32G32B32A32_UINT";
706		case VK_FORMAT_R32G32B32A32_SINT:							return "VK_FORMAT_R32G32B32A32_SINT";
707		case VK_FORMAT_R32G32B32A32_SFLOAT:							return "VK_FORMAT_R32G32B32A32_SFLOAT";
708		case VK_FORMAT_R64_UINT:									return "VK_FORMAT_R64_UINT";
709		case VK_FORMAT_R64_SINT:									return "VK_FORMAT_R64_SINT";
710		case VK_FORMAT_R64_SFLOAT:									return "VK_FORMAT_R64_SFLOAT";
711		case VK_FORMAT_R64G64_UINT:									return "VK_FORMAT_R64G64_UINT";
712		case VK_FORMAT_R64G64_SINT:									return "VK_FORMAT_R64G64_SINT";
713		case VK_FORMAT_R64G64_SFLOAT:								return "VK_FORMAT_R64G64_SFLOAT";
714		case VK_FORMAT_R64G64B64_UINT:								return "VK_FORMAT_R64G64B64_UINT";
715		case VK_FORMAT_R64G64B64_SINT:								return "VK_FORMAT_R64G64B64_SINT";
716		case VK_FORMAT_R64G64B64_SFLOAT:							return "VK_FORMAT_R64G64B64_SFLOAT";
717		case VK_FORMAT_R64G64B64A64_UINT:							return "VK_FORMAT_R64G64B64A64_UINT";
718		case VK_FORMAT_R64G64B64A64_SINT:							return "VK_FORMAT_R64G64B64A64_SINT";
719		case VK_FORMAT_R64G64B64A64_SFLOAT:							return "VK_FORMAT_R64G64B64A64_SFLOAT";
720		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:						return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
721		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:						return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
722		case VK_FORMAT_D16_UNORM:									return "VK_FORMAT_D16_UNORM";
723		case VK_FORMAT_X8_D24_UNORM_PACK32:							return "VK_FORMAT_X8_D24_UNORM_PACK32";
724		case VK_FORMAT_D32_SFLOAT:									return "VK_FORMAT_D32_SFLOAT";
725		case VK_FORMAT_S8_UINT:										return "VK_FORMAT_S8_UINT";
726		case VK_FORMAT_D16_UNORM_S8_UINT:							return "VK_FORMAT_D16_UNORM_S8_UINT";
727		case VK_FORMAT_D24_UNORM_S8_UINT:							return "VK_FORMAT_D24_UNORM_S8_UINT";
728		case VK_FORMAT_D32_SFLOAT_S8_UINT:							return "VK_FORMAT_D32_SFLOAT_S8_UINT";
729		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:							return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
730		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
731		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:						return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
732		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
733		case VK_FORMAT_BC2_UNORM_BLOCK:								return "VK_FORMAT_BC2_UNORM_BLOCK";
734		case VK_FORMAT_BC2_SRGB_BLOCK:								return "VK_FORMAT_BC2_SRGB_BLOCK";
735		case VK_FORMAT_BC3_UNORM_BLOCK:								return "VK_FORMAT_BC3_UNORM_BLOCK";
736		case VK_FORMAT_BC3_SRGB_BLOCK:								return "VK_FORMAT_BC3_SRGB_BLOCK";
737		case VK_FORMAT_BC4_UNORM_BLOCK:								return "VK_FORMAT_BC4_UNORM_BLOCK";
738		case VK_FORMAT_BC4_SNORM_BLOCK:								return "VK_FORMAT_BC4_SNORM_BLOCK";
739		case VK_FORMAT_BC5_UNORM_BLOCK:								return "VK_FORMAT_BC5_UNORM_BLOCK";
740		case VK_FORMAT_BC5_SNORM_BLOCK:								return "VK_FORMAT_BC5_SNORM_BLOCK";
741		case VK_FORMAT_BC6H_UFLOAT_BLOCK:							return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
742		case VK_FORMAT_BC6H_SFLOAT_BLOCK:							return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
743		case VK_FORMAT_BC7_UNORM_BLOCK:								return "VK_FORMAT_BC7_UNORM_BLOCK";
744		case VK_FORMAT_BC7_SRGB_BLOCK:								return "VK_FORMAT_BC7_SRGB_BLOCK";
745		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
746		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
747		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
748		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
749		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
750		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
751		case VK_FORMAT_EAC_R11_UNORM_BLOCK:							return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
752		case VK_FORMAT_EAC_R11_SNORM_BLOCK:							return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
753		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
754		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
755		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
756		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
757		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
758		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
759		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
760		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
761		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
762		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
763		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
764		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
765		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
766		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
767		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
768		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
769		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
770		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
771		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
772		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
773		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
774		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
775		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
776		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
777		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
778		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
779		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
780		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
781		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
782		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
783		case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
784		case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
785		case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
786		case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
787		case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
788		case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
789		case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
790		case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
791		case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
792		case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
793		case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
794		case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
795		case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
796		case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
797		case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
798		case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
799		case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
800		case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
801		case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
802		case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
803		case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
804		case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
805		case VK_FORMAT_G8B8G8R8_422_UNORM:							return "VK_FORMAT_G8B8G8R8_422_UNORM";
806		case VK_FORMAT_B8G8R8G8_422_UNORM:							return "VK_FORMAT_B8G8R8G8_422_UNORM";
807		case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
808		case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
809		case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
810		case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
811		case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
812		case VK_FORMAT_R10X6_UNORM_PACK16:							return "VK_FORMAT_R10X6_UNORM_PACK16";
813		case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:					return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
814		case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:			return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
815		case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:		return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
816		case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:		return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
817		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
818		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
819		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
820		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
821		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
822		case VK_FORMAT_R12X4_UNORM_PACK16:							return "VK_FORMAT_R12X4_UNORM_PACK16";
823		case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:					return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
824		case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:			return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
825		case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:		return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
826		case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:		return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
827		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
828		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
829		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
830		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
831		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
832		case VK_FORMAT_G16B16G16R16_422_UNORM:						return "VK_FORMAT_G16B16G16R16_422_UNORM";
833		case VK_FORMAT_B16G16R16G16_422_UNORM:						return "VK_FORMAT_B16G16R16G16_422_UNORM";
834		case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
835		case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
836		case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
837		case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
838		case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
839		case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
840		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
841		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
842		case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
843		case VK_FORMAT_A4R4G4B4_UNORM_PACK16:						return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
844		case VK_FORMAT_A4B4G4R4_UNORM_PACK16:						return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
845		case VK_FORMAT_R16G16_S10_5_NV:								return "VK_FORMAT_R16G16_S10_5_NV";
846		case VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR:					return "VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR";
847		case VK_FORMAT_A8_UNORM_KHR:								return "VK_FORMAT_A8_UNORM_KHR";
848		default:													return DE_NULL;
849	}
850}
851
852tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
853{
854	static const tcu::Format::BitDesc s_desc[] =
855	{
856		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,															"VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
857		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,															"VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
858		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,													"VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
859		tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
860		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
861		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
862		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,															"VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
863		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,														"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
864		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
865		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,												"VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
866		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,																"VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
867		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,																"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
868		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
869		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,											"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
870		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
871		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
872		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
873		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
874		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,							"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
875		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"),
876		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"),
877		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"),
878		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,																"VK_FORMAT_FEATURE_DISJOINT_BIT"),
879		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
880		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,												"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
881		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
882		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
883		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
884		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
885		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,								"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
886		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,									"VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
887	};
888	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
889}
890
891const char* getFrontFaceName (VkFrontFace value)
892{
893	switch (value)
894	{
895		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
896		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
897		default:								return DE_NULL;
898	}
899}
900
901tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
902{
903	static const tcu::Format::BitDesc s_desc[] =
904	{
905		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
906		tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,						"VK_IMAGE_ASPECT_NONE"),
907		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
908		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
909		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
910		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
911		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
912		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
913		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
914		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
915		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
916		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
917	};
918	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
919}
920
921tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
922{
923	static const tcu::Format::BitDesc s_desc[] =
924	{
925		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,							"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
926		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,							"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
927		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,							"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
928		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,							"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
929		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,							"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
930		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,						"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
931		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,				"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
932		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,				"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
933		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,							"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
934		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,									"VK_IMAGE_CREATE_DISJOINT_BIT"),
935		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,										"VK_IMAGE_CREATE_ALIAS_BIT"),
936		tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,									"VK_IMAGE_CREATE_PROTECTED_BIT"),
937		tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,		"VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
938		tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,							"VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
939		tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,							"VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
940		tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,			"VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
941		tcu::Format::BitDesc(VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,		"VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
942		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,					"VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
943		tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,	"VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
944		tcu::Format::BitDesc(VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,				"VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"),
945	};
946	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
947}
948
949const char* getImageLayoutName (VkImageLayout value)
950{
951	switch (value)
952	{
953		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
954		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
955		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
956		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
957		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
958		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
959		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
960		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
961		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
962		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
963		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
964		case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
965		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
966		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
967		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
968		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
969		case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:	return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
970		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
971		case VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR:						return "VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR";
972		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
973		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
974		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
975		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
976		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
977		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
978		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
979		case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:								return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
980		case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:							return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
981		case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:			return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
982		default:															return DE_NULL;
983	}
984}
985
986const char* getImageTilingName (VkImageTiling value)
987{
988	switch (value)
989	{
990		case VK_IMAGE_TILING_OPTIMAL:					return "VK_IMAGE_TILING_OPTIMAL";
991		case VK_IMAGE_TILING_LINEAR:					return "VK_IMAGE_TILING_LINEAR";
992		case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:	return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
993		default:										return DE_NULL;
994	}
995}
996
997const char* getImageTypeName (VkImageType value)
998{
999	switch (value)
1000	{
1001		case VK_IMAGE_TYPE_1D:	return "VK_IMAGE_TYPE_1D";
1002		case VK_IMAGE_TYPE_2D:	return "VK_IMAGE_TYPE_2D";
1003		case VK_IMAGE_TYPE_3D:	return "VK_IMAGE_TYPE_3D";
1004		default:				return DE_NULL;
1005	}
1006}
1007
1008tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
1009{
1010	static const tcu::Format::BitDesc s_desc[] =
1011	{
1012		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,							"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
1013		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,							"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
1014		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,								"VK_IMAGE_USAGE_SAMPLED_BIT"),
1015		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,								"VK_IMAGE_USAGE_STORAGE_BIT"),
1016		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
1017		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,				"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
1018		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,					"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
1019		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
1020		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1021		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,				"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
1022		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
1023		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
1024		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
1025		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
1026		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
1027		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
1028		tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,					"VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
1029		tcu::Format::BitDesc(VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1030		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,						"VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
1031		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,				"VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
1032		tcu::Format::BitDesc(VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT,						"VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT"),
1033	};
1034	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1035}
1036
1037tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
1038{
1039	static const tcu::Format::BitDesc s_desc[] =
1040	{
1041		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
1042		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
1043		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
1044	};
1045	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1046}
1047
1048const char* getImageViewTypeName (VkImageViewType value)
1049{
1050	switch (value)
1051	{
1052		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
1053		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
1054		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
1055		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
1056		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1057		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1058		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1059		default:							return DE_NULL;
1060	}
1061}
1062
1063const char* getSharingModeName (VkSharingMode value)
1064{
1065	switch (value)
1066	{
1067		case VK_SHARING_MODE_EXCLUSIVE:		return "VK_SHARING_MODE_EXCLUSIVE";
1068		case VK_SHARING_MODE_CONCURRENT:	return "VK_SHARING_MODE_CONCURRENT";
1069		default:							return DE_NULL;
1070	}
1071}
1072
1073const char* getIndexTypeName (VkIndexType value)
1074{
1075	switch (value)
1076	{
1077		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
1078		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
1079		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
1080		case VK_INDEX_TYPE_UINT8_KHR:	return "VK_INDEX_TYPE_UINT8_KHR";
1081		default:						return DE_NULL;
1082	}
1083}
1084
1085const char* getLogicOpName (VkLogicOp value)
1086{
1087	switch (value)
1088	{
1089		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
1090		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
1091		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
1092		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
1093		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
1094		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
1095		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
1096		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
1097		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
1098		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
1099		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
1100		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
1101		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
1102		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
1103		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
1104		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
1105		default:						return DE_NULL;
1106	}
1107}
1108
1109tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
1110{
1111	static const tcu::Format::BitDesc s_desc[] =
1112	{
1113		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,	"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
1114		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
1115	};
1116	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1117}
1118
1119tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
1120{
1121	static const tcu::Format::BitDesc s_desc[] =
1122	{
1123		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
1124		tcu::Format::BitDesc(VK_ACCESS_NONE,											"VK_ACCESS_NONE"),
1125		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,									"VK_ACCESS_INDEX_READ_BIT"),
1126		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
1127		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,								"VK_ACCESS_UNIFORM_READ_BIT"),
1128		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
1129		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,									"VK_ACCESS_SHADER_READ_BIT"),
1130		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,								"VK_ACCESS_SHADER_WRITE_BIT"),
1131		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
1132		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
1133		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
1134		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
1135		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,								"VK_ACCESS_TRANSFER_READ_BIT"),
1136		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,								"VK_ACCESS_TRANSFER_WRITE_BIT"),
1137		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,									"VK_ACCESS_HOST_READ_BIT"),
1138		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,									"VK_ACCESS_HOST_WRITE_BIT"),
1139		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,									"VK_ACCESS_MEMORY_READ_BIT"),
1140		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,								"VK_ACCESS_MEMORY_WRITE_BIT"),
1141		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
1142		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
1143		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
1144		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,				"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
1145		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
1146		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
1147		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
1148		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
1149		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
1150		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
1151		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
1152	};
1153	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1154}
1155
1156tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
1157{
1158	static const tcu::Format::BitDesc s_desc[] =
1159	{
1160		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,			"VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
1161		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,			"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
1162		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,			"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
1163		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,			"VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
1164		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,		"VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
1165		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,				"VK_MEMORY_PROPERTY_PROTECTED_BIT"),
1166		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
1167		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
1168		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,		"VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
1169	};
1170	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1171}
1172
1173const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1174{
1175	switch (value)
1176	{
1177		case VK_PHYSICAL_DEVICE_TYPE_OTHER:				return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1178		case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:	return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1179		case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1180		case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1181		case VK_PHYSICAL_DEVICE_TYPE_CPU:				return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1182		default:										return DE_NULL;
1183	}
1184}
1185
1186const char* getPipelineBindPointName (VkPipelineBindPoint value)
1187{
1188	switch (value)
1189	{
1190		case VK_PIPELINE_BIND_POINT_GRAPHICS:				return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1191		case VK_PIPELINE_BIND_POINT_COMPUTE:				return "VK_PIPELINE_BIND_POINT_COMPUTE";
1192		case VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX:	return "VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX";
1193		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:		return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1194		case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:	return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1195		default:											return DE_NULL;
1196	}
1197}
1198
1199tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
1200{
1201	static const tcu::Format::BitDesc s_desc[] =
1202	{
1203		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,								"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
1204		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,									"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
1205		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,											"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
1206		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,						"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
1207		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,										"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
1208		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,									"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
1209		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
1210		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,				"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
1211		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,					"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
1212		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,							"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
1213		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,							"VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
1214		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,										"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
1215		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
1216		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
1217		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"),
1218		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"),
1219		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"),
1220		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"),
1221		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,								"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
1222		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"),
1223		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,						"VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
1224		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1225		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
1226		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,				"VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
1227		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,					"VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
1228		tcu::Format::BitDesc(VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,					"VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1229		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1230		tcu::Format::BitDesc(VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,							"VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT"),
1231		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,				"VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"),
1232		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,								"VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
1233		tcu::Format::BitDesc(VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,							"VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT"),
1234	};
1235	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1236}
1237
1238const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1239{
1240	switch (value)
1241	{
1242		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1243		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1244		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1245		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1246		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1247		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1248		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1249		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1250		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1251		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1252		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1253		default:													return DE_NULL;
1254	}
1255}
1256
1257tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
1258{
1259	static const tcu::Format::BitDesc s_desc[] =
1260	{
1261		tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,	"VK_QUERY_CONTROL_PRECISE_BIT"),
1262	};
1263	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1264}
1265
1266tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
1267{
1268	static const tcu::Format::BitDesc s_desc[] =
1269	{
1270		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
1271		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
1272		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,						"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
1273		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
1274		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
1275		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
1276		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
1277		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
1278		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,			"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
1279		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,	"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
1280		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
1281		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"),
1282		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"),
1283		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI,		"VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"),
1284	};
1285	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1286}
1287
1288tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
1289{
1290	static const tcu::Format::BitDesc s_desc[] =
1291	{
1292		tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,				"VK_QUERY_RESULT_64_BIT"),
1293		tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,				"VK_QUERY_RESULT_WAIT_BIT"),
1294		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,	"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
1295		tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,			"VK_QUERY_RESULT_PARTIAL_BIT"),
1296		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,	"VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
1297	};
1298	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1299}
1300
1301const char* getQueryTypeName (VkQueryType value)
1302{
1303	switch (value)
1304	{
1305		case VK_QUERY_TYPE_OCCLUSION:														return "VK_QUERY_TYPE_OCCLUSION";
1306		case VK_QUERY_TYPE_PIPELINE_STATISTICS:												return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1307		case VK_QUERY_TYPE_TIMESTAMP:														return "VK_QUERY_TYPE_TIMESTAMP";
1308		case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:											return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1309		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:									return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1310		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1311		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1312		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:					return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1313		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1314		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1315		case VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR:										return "VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR";
1316		case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:									return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
1317		case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:										return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1318		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1319		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:									return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1320		case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT:									return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT";
1321		case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT:										return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT";
1322		default:																			return DE_NULL;
1323	}
1324}
1325
1326tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
1327{
1328	static const tcu::Format::BitDesc s_desc[] =
1329	{
1330		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
1331		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
1332		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
1333		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
1334		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
1335		tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,	"VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
1336		tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,	"VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
1337		tcu::Format::BitDesc(VK_QUEUE_OPTICAL_FLOW_BIT_NV,	"VK_QUEUE_OPTICAL_FLOW_BIT_NV"),
1338	};
1339	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1340}
1341
1342const char* getSubpassContentsName (VkSubpassContents value)
1343{
1344	switch (value)
1345	{
1346		case VK_SUBPASS_CONTENTS_INLINE:									return "VK_SUBPASS_CONTENTS_INLINE";
1347		case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:					return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1348		case VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT:	return "VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT";
1349		default:															return DE_NULL;
1350	}
1351}
1352
1353const char* getResultName (VkResult value)
1354{
1355	switch (value)
1356	{
1357		case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:					return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
1358		case VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR:				return "VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR";
1359		case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:				return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1360		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1361		case VK_ERROR_NOT_PERMITTED_KHR:							return "VK_ERROR_NOT_PERMITTED_KHR";
1362		case VK_ERROR_FRAGMENTATION:								return "VK_ERROR_FRAGMENTATION";
1363		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1364		case VK_ERROR_INVALID_EXTERNAL_HANDLE:						return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
1365		case VK_ERROR_OUT_OF_POOL_MEMORY:							return "VK_ERROR_OUT_OF_POOL_MEMORY";
1366		case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:			return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1367		case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1368		case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1369		case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:	return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1370		case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1371		case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:				return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1372		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
1373		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
1374		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
1375		case VK_ERROR_OUT_OF_DATE_KHR:								return "VK_ERROR_OUT_OF_DATE_KHR";
1376		case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:						return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
1377		case VK_ERROR_SURFACE_LOST_KHR:								return "VK_ERROR_SURFACE_LOST_KHR";
1378		case VK_ERROR_UNKNOWN:										return "VK_ERROR_UNKNOWN";
1379		case VK_ERROR_FRAGMENTED_POOL:								return "VK_ERROR_FRAGMENTED_POOL";
1380		case VK_ERROR_FORMAT_NOT_SUPPORTED:							return "VK_ERROR_FORMAT_NOT_SUPPORTED";
1381		case VK_ERROR_TOO_MANY_OBJECTS:								return "VK_ERROR_TOO_MANY_OBJECTS";
1382		case VK_ERROR_INCOMPATIBLE_DRIVER:							return "VK_ERROR_INCOMPATIBLE_DRIVER";
1383		case VK_ERROR_FEATURE_NOT_PRESENT:							return "VK_ERROR_FEATURE_NOT_PRESENT";
1384		case VK_ERROR_EXTENSION_NOT_PRESENT:						return "VK_ERROR_EXTENSION_NOT_PRESENT";
1385		case VK_ERROR_LAYER_NOT_PRESENT:							return "VK_ERROR_LAYER_NOT_PRESENT";
1386		case VK_ERROR_MEMORY_MAP_FAILED:							return "VK_ERROR_MEMORY_MAP_FAILED";
1387		case VK_ERROR_DEVICE_LOST:									return "VK_ERROR_DEVICE_LOST";
1388		case VK_ERROR_INITIALIZATION_FAILED:						return "VK_ERROR_INITIALIZATION_FAILED";
1389		case VK_ERROR_OUT_OF_DEVICE_MEMORY:							return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
1390		case VK_ERROR_OUT_OF_HOST_MEMORY:							return "VK_ERROR_OUT_OF_HOST_MEMORY";
1391		case VK_SUCCESS:											return "VK_SUCCESS";
1392		case VK_NOT_READY:											return "VK_NOT_READY";
1393		case VK_TIMEOUT:											return "VK_TIMEOUT";
1394		case VK_EVENT_SET:											return "VK_EVENT_SET";
1395		case VK_EVENT_RESET:										return "VK_EVENT_RESET";
1396		case VK_INCOMPLETE:											return "VK_INCOMPLETE";
1397		case VK_SUBOPTIMAL_KHR:										return "VK_SUBOPTIMAL_KHR";
1398		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
1399		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
1400		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
1401		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
1402		case VK_PIPELINE_COMPILE_REQUIRED:							return "VK_PIPELINE_COMPILE_REQUIRED";
1403		case VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT:				return "VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT";
1404		default:													return DE_NULL;
1405	}
1406}
1407
1408tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
1409{
1410	static const tcu::Format::BitDesc s_desc[] =
1411	{
1412		tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,					"VK_SHADER_STAGE_VERTEX_BIT"),
1413		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,		"VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
1414		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,	"VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
1415		tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,					"VK_SHADER_STAGE_GEOMETRY_BIT"),
1416		tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,					"VK_SHADER_STAGE_FRAGMENT_BIT"),
1417		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
1418		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_EXT,					"VK_SHADER_STAGE_TASK_BIT_EXT"),
1419		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_EXT,					"VK_SHADER_STAGE_MESH_BIT_EXT"),
1420		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
1421		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
1422		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
1423		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
1424		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
1425		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
1426		tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,	"VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
1427		tcu::Format::BitDesc(VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI,	"VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI"),
1428		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
1429		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
1430	};
1431	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1432}
1433
1434tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
1435{
1436	static const tcu::Format::BitDesc s_desc[] =
1437	{
1438		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,	"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
1439	};
1440	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1441}
1442
1443tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
1444{
1445	static const tcu::Format::BitDesc s_desc[] =
1446	{
1447		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,			"VK_STENCIL_FACE_FRONT_BIT"),
1448		tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,			"VK_STENCIL_FACE_BACK_BIT"),
1449		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,	"VK_STENCIL_FACE_FRONT_AND_BACK"),
1450	};
1451	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1452}
1453
1454const char* getStencilOpName (VkStencilOp value)
1455{
1456	switch (value)
1457	{
1458		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
1459		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
1460		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
1461		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1462		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1463		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
1464		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1465		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1466		default:								return DE_NULL;
1467	}
1468}
1469
1470const char* getStructureTypeName (VkStructureType value)
1471{
1472	switch (value)
1473	{
1474		case VK_STRUCTURE_TYPE_APPLICATION_INFO:													return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
1475		case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
1476		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
1477		case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
1478		case VK_STRUCTURE_TYPE_SUBMIT_INFO:															return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
1479		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:												return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
1480		case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:													return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
1481		case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:													return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
1482		case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
1483		case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
1484		case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:													return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
1485		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:												return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
1486		case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
1487		case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
1488		case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
1489		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
1490		case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
1491		case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
1492		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
1493		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
1494		case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
1495		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
1496		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
1497		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
1498		case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
1499		case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
1500		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
1501		case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
1502		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
1503		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
1504		case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
1505		case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
1506		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
1507		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
1508		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
1509		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:												return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
1510		case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:													return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
1511		case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
1512		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
1513		case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
1514		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
1515		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
1516		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
1517		case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
1518		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
1519		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
1520		case VK_STRUCTURE_TYPE_MEMORY_BARRIER:														return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
1521		case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
1522		case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
1523		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
1524		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
1525		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
1526		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
1527		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
1528		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
1529		case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
1530		case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
1531		case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
1532		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
1533		case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
1534		case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
1535		case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
1536		case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
1537		case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
1538		case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
1539		case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
1540		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
1541		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
1542		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
1543		case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
1544		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
1545		case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
1546		case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
1547		case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
1548		case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:									return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
1549		case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
1550		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
1551		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
1552		case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
1553		case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
1554		case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
1555		case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
1556		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
1557		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
1558		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
1559		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
1560		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
1561		case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
1562		case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
1563		case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
1564		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
1565		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
1566		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
1567		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
1568		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
1569		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
1570		case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
1571		case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
1572		case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:													return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
1573		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:											return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
1574		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
1575		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR";
1576		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
1577		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
1578		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR";
1579		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR";
1580		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR";
1581		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR";
1582		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR";
1583		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR";
1584		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR";
1585		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR";
1586		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR";
1587		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR";
1588		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
1589		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR";
1590		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
1591		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
1592		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR";
1593		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR";
1594		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR";
1595		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR";
1596		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR";
1597		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR";
1598		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR";
1599		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR";
1600		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR";
1601		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR";
1602		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
1603		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR";
1604		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR";
1605		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR";
1606		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
1607		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
1608		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR";
1609		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
1610		case VK_STRUCTURE_TYPE_RENDERING_INFO:														return "VK_STRUCTURE_TYPE_RENDERING_INFO";
1611		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:											return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
1612		case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
1613		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
1614		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:							return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
1615		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1616		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
1617		case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:									return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
1618		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:								return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
1619		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:							return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
1620		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
1621		case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
1622		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
1623		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
1624		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
1625		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:										return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
1626		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1627		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1628		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
1629		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:											return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
1630		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
1631		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
1632		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
1633		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
1634		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
1635		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
1636		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
1637		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
1638		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:											return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
1639		case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
1640		case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
1641		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
1642		case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
1643		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
1644		case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
1645		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:								return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
1646		case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
1647		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
1648		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
1649		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:								return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
1650		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:									return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
1651		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
1652		case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:											return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
1653		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
1654		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
1655		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
1656		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
1657		case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
1658		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
1659		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
1660		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
1661		case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
1662		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
1663		case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:									return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
1664		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
1665		case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
1666		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
1667		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
1668		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
1669		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
1670		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1671		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1672		case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
1673		case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
1674		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
1675		case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
1676		case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
1677		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
1678		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
1679		case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
1680		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
1681		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1682		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1683		case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:											return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
1684		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
1685		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
1686		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
1687		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
1688		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
1689		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
1690		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:								return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
1691		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
1692		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
1693		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
1694		case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
1695		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
1696		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
1697		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
1698		case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
1699		case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
1700		case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
1701		case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:											return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
1702		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
1703		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
1704		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
1705		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
1706		case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
1707		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
1708		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
1709		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
1710		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
1711		case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:													return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
1712		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
1713		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
1714		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
1715		case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
1716		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:											return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
1717		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:												return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
1718		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
1719		case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
1720		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:											return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
1721		case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
1722		case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
1723		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG";
1724		case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
1725		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
1726		case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
1727		case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
1728		case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1729		case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1730		case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
1731		case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
1732		case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
1733		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
1734		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
1735		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
1736		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
1737		case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:										return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
1738		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:												return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
1739		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
1740		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
1741		case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:						return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
1742		case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
1743		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:				return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
1744		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
1745		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
1746		case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:												return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
1747		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
1748		case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
1749		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
1750		case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
1751		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
1752		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
1753		case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:											return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
1754		case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:										return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
1755		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
1756		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
1757		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
1758		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
1759		case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:												return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
1760		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
1761		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
1762		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:								return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
1763		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:							return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
1764		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
1765		case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:							return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1766		case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:						return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1767		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:												return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
1768		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
1769		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
1770		case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
1771		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX";
1772		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX";
1773		case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX:							return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX";
1774		case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX:							return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX";
1775		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX:							return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX";
1776		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
1777		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
1778		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:							return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
1779		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:					return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
1780		case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:											return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
1781		case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
1782		case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
1783		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
1784		case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:											return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
1785		case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
1786		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
1787		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
1788		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:													return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
1789		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
1790		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
1791		case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
1792		case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:												return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
1793		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
1794		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
1795		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
1796		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
1797		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
1798		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
1799		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
1800		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
1801		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
1802		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
1803		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
1804		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:									return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
1805		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
1806		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
1807		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:								return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
1808		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
1809		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
1810		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
1811		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
1812		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
1813		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
1814		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
1815		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
1816		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
1817		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
1818		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
1819		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
1820		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:								return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
1821		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:										return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
1822		case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:										return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
1823		case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:								return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
1824		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
1825		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:					return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
1826		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
1827		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
1828		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:								return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
1829		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
1830		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
1831		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
1832		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
1833		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:							return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
1834		case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
1835		case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
1836		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
1837		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
1838		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
1839		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
1840		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
1841		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
1842		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
1843		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";
1844		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
1845		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
1846		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";
1847		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
1848		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
1849		case VK_STRUCTURE_TYPE_GEOMETRY_NV:															return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
1850		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
1851		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:													return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
1852		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:							return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
1853		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
1854		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
1855		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
1856		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
1857		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:										return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
1858		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
1859		case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
1860		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
1861		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
1862		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
1863		case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
1864		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
1865		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
1866		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
1867		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
1868		case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
1869		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
1870		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
1871		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
1872		case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:							return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
1873		case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR:										return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR";
1874		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
1875		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR";
1876		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
1877		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
1878		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR";
1879		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR";
1880		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR";
1881		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
1882		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
1883		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR";
1884		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR";
1885		case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:												return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
1886		case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
1887		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
1888		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
1889		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
1890		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:							return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
1891		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
1892		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
1893		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
1894		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
1895		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
1896		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
1897		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
1898		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:													return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
1899		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
1900		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
1901		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
1902		case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
1903		case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:										return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
1904		case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:													return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
1905		case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
1906		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
1907		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
1908		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:								return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
1909		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
1910		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:								return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
1911		case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
1912		case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
1913		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
1914		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
1915		case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:							return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
1916		case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
1917		case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
1918		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
1919		case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
1920		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
1921		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
1922		case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
1923		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
1924		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
1925		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:			return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
1926		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
1927		case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:							return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1928		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
1929		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
1930		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
1931		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
1932		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
1933		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
1934		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR";
1935		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR:								return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR";
1936		case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR:							return "VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR";
1937		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
1938		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR";
1939		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
1940		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
1941		case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
1942		case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
1943		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
1944		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
1945		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:									return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
1946		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:								return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
1947		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
1948		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:											return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
1949		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
1950		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
1951		case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
1952		case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
1953		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
1954		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
1955		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1956		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1957		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
1958		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
1959		case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:							return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
1960		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
1961		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
1962		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
1963		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
1964		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:		return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
1965		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
1966		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
1967		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
1968		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
1969		case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
1970		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
1971		case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:							return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
1972		case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:							return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
1973		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
1974		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR";
1975		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR";
1976		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR";
1977		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
1978		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
1979		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR";
1980		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
1981		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
1982		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:													return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
1983		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
1984		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
1985		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
1986		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:						return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
1987		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT";
1988		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT";
1989		case VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT:											return "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT";
1990		case VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT:											return "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT";
1991		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT:										return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT";
1992		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT:										return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT";
1993		case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT:								return "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT";
1994		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT:										return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT";
1995		case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT:									return "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT";
1996		case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT:						return "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT";
1997		case VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR:													return "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR";
1998		case VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR:												return "VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR";
1999		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
2000		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT";
2001		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT:							return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT";
2002		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT";
2003		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT";
2004		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT";
2005		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT";
2006		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT:										return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT";
2007		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT";
2008		case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT:									return "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT";
2009		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
2010		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
2011		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
2012		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
2013		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:									return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
2014		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
2015		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:											return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
2016		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:						return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
2017		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
2018		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
2019		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:					return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
2020		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
2021		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
2022		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
2023		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
2024		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
2025		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:								return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
2026		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT";
2027		case VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT:													return "VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT";
2028		case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT";
2029		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
2030		case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
2031		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
2032		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
2033		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
2034		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
2035		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
2036		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
2037		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
2038		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV";
2039		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:								return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV";
2040		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV";
2041		case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:														return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
2042		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
2043		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
2044		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
2045		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
2046		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
2047		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
2048		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
2049		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
2050		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
2051		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
2052		case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR";
2053		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
2054		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR";
2055		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
2056		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR";
2057		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
2058		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
2059		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
2060		case VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV:											return "VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV";
2061		case VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV:										return "VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV";
2062		case VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV:													return "VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV";
2063		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV";
2064		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV";
2065		case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV:										return "VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV";
2066		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
2067		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
2068		case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
2069		case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
2070		case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
2071		case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
2072		case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
2073		case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
2074		case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
2075		case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
2076		case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
2077		case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
2078		case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:													return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
2079		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
2080		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
2081		case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:														return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
2082		case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:														return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
2083		case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
2084		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
2085		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
2086		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
2087		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
2088		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT";
2089		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT";
2090		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT";
2091		case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT";
2092		case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT:												return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT";
2093		case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2094		case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2095		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2096		case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2097		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2098		case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT";
2099		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT";
2100		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT";
2101		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
2102		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
2103		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
2104		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
2105		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
2106		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";
2107		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
2108		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
2109		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
2110		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";
2111		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
2112		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
2113		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
2114		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
2115		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
2116		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";
2117		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
2118		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
2119		case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:									return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
2120		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
2121		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
2122		case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
2123		case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
2124		case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
2125		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
2126		case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
2127		case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:												return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
2128		case VK_STRUCTURE_TYPE_BUFFER_COPY_2:														return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
2129		case VK_STRUCTURE_TYPE_IMAGE_COPY_2:														return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
2130		case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:														return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
2131		case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:													return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
2132		case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:														return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
2133		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
2134		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
2135		case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR:											return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR";
2136		case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR:												return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR";
2137		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
2138		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
2139		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
2140		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT";
2141		case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT";
2142		case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT";
2143		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
2144		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
2145		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
2146		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
2147		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
2148		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
2149		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT";
2150		case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT";
2151		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
2152		case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:								return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
2153		case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:							return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
2154		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
2155		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT";
2156		case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT";
2157		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
2158		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
2159		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
2160		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
2161		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
2162		case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
2163		case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2164		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
2165		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2166		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
2167		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
2168		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
2169		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
2170		case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
2171		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
2172		case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
2173		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
2174		case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:											return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
2175		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
2176		case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:							return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
2177		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
2178		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
2179		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
2180		case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:									return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
2181		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
2182		case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:									return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
2183		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
2184		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT";
2185		case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT:													return "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT";
2186		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT";
2187		case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:								return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
2188		case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:						return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
2189		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
2190		case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
2191		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
2192		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
2193		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
2194		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
2195		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
2196		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
2197		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
2198		case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
2199		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
2200		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
2201		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
2202		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT";
2203		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT";
2204		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:												return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT";
2205		case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT";
2206		case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:												return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT";
2207		case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT";
2208		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT";
2209		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT";
2210		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT";
2211		case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT";
2212		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:										return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT";
2213		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT";
2214		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV";
2215		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV";
2216		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV";
2217		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI";
2218		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI";
2219		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI";
2220		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
2221		case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
2222		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
2223		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
2224		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
2225		case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
2226		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
2227		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM";
2228		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR";
2229		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM:					return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM";
2230		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM";
2231		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM";
2232		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT";
2233		case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT";
2234		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
2235		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
2236		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
2237		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT";
2238		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
2239		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM";
2240		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM";
2241		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM:									return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM";
2242		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM:											return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM";
2243		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM:									return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM";
2244		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
2245		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
2246		case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:					return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
2247		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV";
2248		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV";
2249		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV";
2250		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV";
2251		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV";
2252		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV:							return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV";
2253		case VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV:							return "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV";
2254		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
2255		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR";
2256		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
2257		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
2258		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
2259		case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
2260		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT";
2261		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT";
2262		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT";
2263		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT";
2264		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT";
2265		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
2266		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:									return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
2267		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
2268		case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
2269		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG";
2270		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG";
2271		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
2272		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
2273		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
2274		case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:										return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
2275		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV";
2276		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV";
2277		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV";
2278		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV";
2279		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV";
2280		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:										return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV";
2281		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:					return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV";
2282		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
2283		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT";
2284		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID";
2285		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID";
2286		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID:			return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID";
2287		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR";
2288		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR";
2289		case VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR:												return "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR";
2290		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR:									return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR";
2291		case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR";
2292		case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR";
2293		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR";
2294		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT";
2295		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT";
2296		case VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT:												return "VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT";
2297		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
2298		case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:												return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
2299		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
2300		case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:										return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
2301		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM";
2302		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV";
2303		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV";
2304		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV";
2305		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV";
2306		case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT";
2307		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM";
2308		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM";
2309		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT";
2310		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT";
2311		case VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV:											return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV";
2312		case VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV:												return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV";
2313		case VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV:											return "VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV";
2314		case VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV:											return "VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV";
2315		case VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV:										return "VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV";
2316		case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV:									return "VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV";
2317		case VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV:										return "VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV";
2318		case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV";
2319		case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV:										return "VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV";
2320		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR";
2321		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
2322		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
2323		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM";
2324		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:			return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM";
2325		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR";
2326		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR";
2327		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR";
2328		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR";
2329		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR";
2330		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR";
2331		case VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR";
2332		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV";
2333		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM";
2334		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM";
2335		case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM:							return "VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM";
2336		case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM:								return "VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM";
2337		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM";
2338		case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM:									return "VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM";
2339		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM";
2340		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM:				return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM";
2341		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM";
2342		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT";
2343		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR";
2344		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR";
2345		case VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX";
2346		case VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX:									return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX";
2347		case VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX:										return "VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX";
2348		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX:													return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX";
2349		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX";
2350		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT";
2351		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR";
2352		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR";
2353		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR";
2354		case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR:												return "VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR";
2355		case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR:										return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR";
2356		case VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR:												return "VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR";
2357		case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR:										return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR";
2358		case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR";
2359		case VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT:								return "VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT";
2360		case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT:					return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT";
2361		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV";
2362		default:																					return DE_NULL;
2363	}
2364}
2365
2366const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
2367{
2368	switch (value)
2369	{
2370		case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:	return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
2371		case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:		return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
2372		case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:		return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
2373		case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:		return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
2374		case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:	return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
2375		default:									return DE_NULL;
2376	}
2377}
2378
2379const char* getInternalAllocationTypeName (VkInternalAllocationType value)
2380{
2381	switch (value)
2382	{
2383		case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:	return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
2384		default:										return DE_NULL;
2385	}
2386}
2387
2388const char* getSamplerAddressModeName (VkSamplerAddressMode value)
2389{
2390	switch (value)
2391	{
2392		case VK_SAMPLER_ADDRESS_MODE_REPEAT:				return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
2393		case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:		return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
2394		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:			return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
2395		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:		return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
2396		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:	return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
2397		default:											return DE_NULL;
2398	}
2399}
2400
2401const char* getFilterName (VkFilter value)
2402{
2403	switch (value)
2404	{
2405		case VK_FILTER_NEAREST:		return "VK_FILTER_NEAREST";
2406		case VK_FILTER_LINEAR:		return "VK_FILTER_LINEAR";
2407		case VK_FILTER_CUBIC_EXT:	return "VK_FILTER_CUBIC_EXT";
2408		default:					return DE_NULL;
2409	}
2410}
2411
2412const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
2413{
2414	switch (value)
2415	{
2416		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
2417		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
2418		default:								return DE_NULL;
2419	}
2420}
2421
2422const char* getVertexInputRateName (VkVertexInputRate value)
2423{
2424	switch (value)
2425	{
2426		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
2427		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
2428		default:							return DE_NULL;
2429	}
2430}
2431
2432tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2433{
2434	static const tcu::Format::BitDesc s_desc[] =
2435	{
2436		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,								"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2437		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,										"VK_PIPELINE_STAGE_NONE"),
2438		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2439		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2440		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2441		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,				"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2442		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2443		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,							"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2444		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,							"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2445		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2446		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,						"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2447		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2448		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,							"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2449		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,								"VK_PIPELINE_STAGE_TRANSFER_BIT"),
2450		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2451		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,									"VK_PIPELINE_STAGE_HOST_BIT"),
2452		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2453		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2454		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2455		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2456		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"),
2457		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"),
2458		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2459		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2460		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2461		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,					"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2462		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2463	};
2464	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2465}
2466
2467tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2468{
2469	static const tcu::Format::BitDesc s_desc[] =
2470	{
2471		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,			"VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2472		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,		"VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2473		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,	"VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2474	};
2475	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2476}
2477
2478tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2479{
2480	static const tcu::Format::BitDesc s_desc[] =
2481	{
2482		tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,		"VK_SAMPLE_COUNT_1_BIT"),
2483		tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,		"VK_SAMPLE_COUNT_2_BIT"),
2484		tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,		"VK_SAMPLE_COUNT_4_BIT"),
2485		tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,		"VK_SAMPLE_COUNT_8_BIT"),
2486		tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,	"VK_SAMPLE_COUNT_16_BIT"),
2487		tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,	"VK_SAMPLE_COUNT_32_BIT"),
2488		tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,	"VK_SAMPLE_COUNT_64_BIT"),
2489	};
2490	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2491}
2492
2493tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
2494{
2495	static const tcu::Format::BitDesc s_desc[] =
2496	{
2497		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,	"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
2498	};
2499	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2500}
2501
2502tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
2503{
2504	static const tcu::Format::BitDesc s_desc[] =
2505	{
2506		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,				"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
2507		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,				"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
2508		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,					"VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT"),
2509		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV,	"VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV"),
2510		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV,	"VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV"),
2511	};
2512	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2513}
2514
2515tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
2516{
2517	static const tcu::Format::BitDesc s_desc[] =
2518	{
2519		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
2520		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
2521		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
2522		tcu::Format::BitDesc(VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,	"VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"),
2523	};
2524	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2525}
2526
2527const char* getObjectTypeName (VkObjectType value)
2528{
2529	switch (value)
2530	{
2531		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
2532		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
2533		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
2534		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
2535		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
2536		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
2537		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
2538		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
2539		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
2540		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
2541		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
2542		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
2543		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
2544		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
2545		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
2546		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
2547		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
2548		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
2549		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
2550		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
2551		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
2552		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
2553		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
2554		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
2555		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
2556		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
2557		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
2558		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
2559		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
2560		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
2561		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
2562		case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:					return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
2563		case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:		return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
2564		case VK_OBJECT_TYPE_CU_MODULE_NVX:						return "VK_OBJECT_TYPE_CU_MODULE_NVX";
2565		case VK_OBJECT_TYPE_CU_FUNCTION_NVX:					return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
2566		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
2567		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
2568		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
2569		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
2570		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
2571		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
2572		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
2573		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
2574		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
2575		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:					return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
2576		case VK_OBJECT_TYPE_CUDA_MODULE_NV:						return "VK_OBJECT_TYPE_CUDA_MODULE_NV";
2577		case VK_OBJECT_TYPE_CUDA_FUNCTION_NV:					return "VK_OBJECT_TYPE_CUDA_FUNCTION_NV";
2578		case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:			return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
2579		case VK_OBJECT_TYPE_MICROMAP_EXT:						return "VK_OBJECT_TYPE_MICROMAP_EXT";
2580		case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV:			return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV";
2581		case VK_OBJECT_TYPE_SHADER_EXT:							return "VK_OBJECT_TYPE_SHADER_EXT";
2582		default:												return DE_NULL;
2583	}
2584}
2585
2586tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2587{
2588	static const tcu::Format::BitDesc s_desc[] =
2589	{
2590		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,	"VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
2591	};
2592	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2593}
2594
2595tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
2596{
2597	static const tcu::Format::BitDesc s_desc[] =
2598	{
2599		tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,	"VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
2600	};
2601	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2602}
2603
2604const char* getRayTracingInvocationReorderModeNVName (VkRayTracingInvocationReorderModeNV value)
2605{
2606	switch (value)
2607	{
2608		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV";
2609		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV";
2610		default:												return DE_NULL;
2611	}
2612}
2613
2614tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
2615{
2616	static const tcu::Format::BitDesc s_desc[] =
2617	{
2618		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
2619		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
2620		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
2621	};
2622	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2623}
2624
2625const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2626{
2627	switch (value)
2628	{
2629		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2630		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2631		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2632		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2633		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2634		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2635		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2636		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2637		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
2638		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV";
2639		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV";
2640		default:													return DE_NULL;
2641	}
2642}
2643
2644tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
2645{
2646	static const tcu::Format::BitDesc s_desc[] =
2647	{
2648		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
2649	};
2650	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2651}
2652
2653const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
2654{
2655	switch (value)
2656	{
2657		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:			return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
2658		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:	return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
2659		default:														return DE_NULL;
2660	}
2661}
2662
2663const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2664{
2665	switch (value)
2666	{
2667		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2668		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2669		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2670		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2671		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2672		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2673		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2674		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2675		default:											return DE_NULL;
2676	}
2677}
2678
2679const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2680{
2681	switch (value)
2682	{
2683		case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2684		case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2685		default:										return DE_NULL;
2686	}
2687}
2688
2689tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
2690{
2691	static const tcu::Format::BitDesc s_desc[] =
2692	{
2693		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,							"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
2694		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,						"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
2695		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
2696		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
2697		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"),
2698		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
2699		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
2700		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,						"VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"),
2701	};
2702	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2703}
2704
2705const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
2706{
2707	switch (value)
2708	{
2709		case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:		return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
2710		case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:	return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
2711		default:												return DE_NULL;
2712	}
2713}
2714
2715const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2716{
2717	switch (value)
2718	{
2719		case VK_COVERAGE_MODULATION_MODE_NONE_NV:	return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2720		case VK_COVERAGE_MODULATION_MODE_RGB_NV:	return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2721		case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:	return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2722		case VK_COVERAGE_MODULATION_MODE_RGBA_NV:	return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2723		default:									return DE_NULL;
2724	}
2725}
2726
2727const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2728{
2729	switch (value)
2730	{
2731		case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:		return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2732		case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:	return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2733		default:										return DE_NULL;
2734	}
2735}
2736
2737const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2738{
2739	switch (value)
2740	{
2741		case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:	return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2742		default:											return DE_NULL;
2743	}
2744}
2745
2746const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2747{
2748	switch (value)
2749	{
2750		case VK_SHADER_INFO_TYPE_STATISTICS_AMD:	return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2751		case VK_SHADER_INFO_TYPE_BINARY_AMD:		return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2752		case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:	return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2753		default:									return DE_NULL;
2754	}
2755}
2756
2757const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
2758{
2759	switch (value)
2760	{
2761		case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
2762		case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
2763		case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
2764		case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
2765		default:									return DE_NULL;
2766	}
2767}
2768
2769const char* getTimeDomainKHRName (VkTimeDomainKHR value)
2770{
2771	switch (value)
2772	{
2773		case VK_TIME_DOMAIN_DEVICE_KHR:						return "VK_TIME_DOMAIN_DEVICE_KHR";
2774		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR:			return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR";
2775		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR:		return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR";
2776		case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR:	return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR";
2777		default:											return DE_NULL;
2778	}
2779}
2780
2781const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2782{
2783	switch (value)
2784	{
2785		case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2786		case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2787		case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2788		default:													return DE_NULL;
2789	}
2790}
2791
2792tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
2793{
2794	static const tcu::Format::BitDesc s_desc[] =
2795	{
2796		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,									"VK_RESOLVE_MODE_NONE"),
2797		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,						"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
2798		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,							"VK_RESOLVE_MODE_AVERAGE_BIT"),
2799		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,								"VK_RESOLVE_MODE_MIN_BIT"),
2800		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,								"VK_RESOLVE_MODE_MAX_BIT"),
2801		tcu::Format::BitDesc(VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,	"VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID"),
2802	};
2803	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2804}
2805
2806tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
2807{
2808	static const tcu::Format::BitDesc s_desc[] =
2809	{
2810		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,			"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
2811		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,	"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
2812		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,				"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
2813		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,	"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
2814	};
2815	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2816}
2817
2818tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
2819{
2820	static const tcu::Format::BitDesc s_desc[] =
2821	{
2822		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,	"VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
2823	};
2824	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2825}
2826
2827const char* getSemaphoreTypeName (VkSemaphoreType value)
2828{
2829	switch (value)
2830	{
2831		case VK_SEMAPHORE_TYPE_BINARY:		return "VK_SEMAPHORE_TYPE_BINARY";
2832		case VK_SEMAPHORE_TYPE_TIMELINE:	return "VK_SEMAPHORE_TYPE_TIMELINE";
2833		default:							return DE_NULL;
2834	}
2835}
2836
2837tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
2838{
2839	static const tcu::Format::BitDesc s_desc[] =
2840	{
2841		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
2842		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
2843	};
2844	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2845}
2846
2847tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
2848{
2849	static const tcu::Format::BitDesc s_desc[] =
2850	{
2851		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
2852		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,			"VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
2853		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
2854		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,				"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
2855		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,	"VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"),
2856		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"),
2857	};
2858	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2859}
2860
2861tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
2862{
2863	static const tcu::Format::BitDesc s_desc[] =
2864	{
2865		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
2866		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
2867		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
2868		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
2869		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
2870		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,								"VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
2871		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,			"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"),
2872		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"),
2873		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"),
2874		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV"),
2875		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR"),
2876	};
2877	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2878}
2879
2880tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
2881{
2882	static const tcu::Format::BitDesc s_desc[] =
2883	{
2884		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
2885		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,							"VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
2886		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
2887	};
2888	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2889}
2890
2891const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2892{
2893	switch (value)
2894	{
2895		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2896		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2897		default:												return DE_NULL;
2898	}
2899}
2900
2901const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2902{
2903	switch (value)
2904	{
2905		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2906		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2907		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2908		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2909		default:													return DE_NULL;
2910	}
2911}
2912
2913const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2914{
2915	switch (value)
2916	{
2917		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2918		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2919		case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2920		default:												return DE_NULL;
2921	}
2922}
2923
2924const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2925{
2926	switch (value)
2927	{
2928		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2929		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
2930		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2931		default:								return DE_NULL;
2932	}
2933}
2934
2935const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2936{
2937	switch (value)
2938	{
2939		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2940		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2941		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2942		default:														return DE_NULL;
2943	}
2944}
2945
2946const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2947{
2948	switch (value)
2949	{
2950		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2951		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2952		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2953		default:																	return DE_NULL;
2954	}
2955}
2956
2957const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2958{
2959	switch (value)
2960	{
2961		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2962		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2963		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2964		default:														return DE_NULL;
2965	}
2966}
2967
2968const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2969{
2970	switch (value)
2971	{
2972		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2973		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2974		default:														return DE_NULL;
2975	}
2976}
2977
2978const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2979{
2980	switch (value)
2981	{
2982		case VK_SHADER_GROUP_SHADER_GENERAL_KHR:		return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2983		case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:	return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2984		case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:		return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2985		case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:	return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2986		default:										return DE_NULL;
2987	}
2988}
2989
2990const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2991{
2992	switch (value)
2993	{
2994		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2995		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2996		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2997		default:												return DE_NULL;
2998	}
2999}
3000
3001tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
3002{
3003	static const tcu::Format::BitDesc s_desc[] =
3004	{
3005		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
3006		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
3007		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
3008		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
3009	};
3010	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3011}
3012
3013tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
3014{
3015	static const tcu::Format::BitDesc s_desc[] =
3016	{
3017		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,							"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
3018		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,	"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
3019		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,		"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
3020	};
3021	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3022}
3023
3024const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
3025{
3026	switch (value)
3027	{
3028		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:	return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
3029		case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:		return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
3030		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
3031		default:												return DE_NULL;
3032	}
3033}
3034
3035const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
3036{
3037	switch (value)
3038	{
3039		case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
3040		case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
3041		case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
3042		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
3043		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:	return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
3044		case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
3045		case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
3046		case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
3047		case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
3048		case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
3049		case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
3050		default:												return DE_NULL;
3051	}
3052}
3053
3054const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
3055{
3056	switch (value)
3057	{
3058		case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
3059		case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
3060		case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
3061		case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
3062		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
3063		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
3064		default:											return DE_NULL;
3065	}
3066}
3067
3068tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3069{
3070	static const tcu::Format::BitDesc s_desc[] =
3071	{
3072		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3073		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3074	};
3075	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3076}
3077
3078tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3079{
3080	static const tcu::Format::BitDesc s_desc[] =
3081	{
3082		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,	"VK_SEMAPHORE_WAIT_ANY_BIT"),
3083	};
3084	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3085}
3086
3087const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
3088{
3089	switch (value)
3090	{
3091		case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:	return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
3092		default:																				return DE_NULL;
3093	}
3094}
3095
3096const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
3097{
3098	switch (value)
3099	{
3100		case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:	return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
3101		default:										return DE_NULL;
3102	}
3103}
3104
3105const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
3106{
3107	switch (value)
3108	{
3109		case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:		return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
3110		case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:	return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
3111		default:													return DE_NULL;
3112	}
3113}
3114
3115const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
3116{
3117	switch (value)
3118	{
3119		case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:		return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
3120		case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:	return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
3121		default:															return DE_NULL;
3122	}
3123}
3124
3125const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
3126{
3127	switch (value)
3128	{
3129		case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
3130		case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
3131		case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
3132		case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
3133		case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
3134		default:										return DE_NULL;
3135	}
3136}
3137
3138const char* getLineRasterizationModeKHRName (VkLineRasterizationModeKHR value)
3139{
3140	switch (value)
3141	{
3142		case VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR:			return "VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR";
3143		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR:		return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR";
3144		case VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR:			return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR";
3145		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR:	return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR";
3146		default:												return DE_NULL;
3147	}
3148}
3149
3150tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
3151{
3152	static const tcu::Format::BitDesc s_desc[] =
3153	{
3154		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,			"VK_TOOL_PURPOSE_VALIDATION_BIT"),
3155		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,				"VK_TOOL_PURPOSE_PROFILING_BIT"),
3156		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,				"VK_TOOL_PURPOSE_TRACING_BIT"),
3157		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,	"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
3158		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,	"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
3159		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,	"VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3160		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,		"VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3161	};
3162	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3163}
3164
3165const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
3166{
3167	switch (value)
3168	{
3169		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
3170		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
3171		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
3172		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
3173		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
3174		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
3175		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
3176		case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
3177		case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
3178		case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
3179		case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
3180		case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:				return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
3181		default:														return DE_NULL;
3182	}
3183}
3184
3185const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
3186{
3187	switch (value)
3188	{
3189		case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:	return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
3190		case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
3191		default:												return DE_NULL;
3192	}
3193}
3194
3195const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
3196{
3197	switch (value)
3198	{
3199		case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:									return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
3200		case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:								return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
3201		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
3202		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:				return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
3203		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
3204		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:						return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
3205		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
3206		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:	return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
3207		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
3208		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
3209		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
3210		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:		return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
3211		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
3212		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
3213		default:																	return DE_NULL;
3214	}
3215}
3216
3217tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
3218{
3219	static const tcu::Format::BitDesc s_desc[] =
3220	{
3221		tcu::Format::BitDesc(VK_ACCESS_2_NONE,											"VK_ACCESS_2_NONE"),
3222		tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
3223		tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,								"VK_ACCESS_2_INDEX_READ_BIT"),
3224		tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
3225		tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,								"VK_ACCESS_2_UNIFORM_READ_BIT"),
3226		tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
3227		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,								"VK_ACCESS_2_SHADER_READ_BIT"),
3228		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,								"VK_ACCESS_2_SHADER_WRITE_BIT"),
3229		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
3230		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,					"VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
3231		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
3232		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
3233		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,								"VK_ACCESS_2_TRANSFER_READ_BIT"),
3234		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,							"VK_ACCESS_2_TRANSFER_WRITE_BIT"),
3235		tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,									"VK_ACCESS_2_HOST_READ_BIT"),
3236		tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,								"VK_ACCESS_2_HOST_WRITE_BIT"),
3237		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,								"VK_ACCESS_2_MEMORY_READ_BIT"),
3238		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,								"VK_ACCESS_2_MEMORY_WRITE_BIT"),
3239		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
3240		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
3241		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
3242		tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,			"VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
3243		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
3244		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
3245		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
3246		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
3247		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
3248		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
3249		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
3250		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,						"VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
3251		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,						"VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
3252		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,						"VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
3253		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
3254		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
3255		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
3256		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
3257		tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,				"VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
3258		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,				"VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
3259		tcu::Format::BitDesc(VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,				"VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT"),
3260		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"),
3261		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"),
3262		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_READ_BIT_EXT,							"VK_ACCESS_2_MICROMAP_READ_BIT_EXT"),
3263		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,						"VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"),
3264	};
3265	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3266}
3267
3268tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
3269{
3270	static const tcu::Format::BitDesc s_desc[] =
3271	{
3272		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,										"VK_PIPELINE_STAGE_2_NONE"),
3273		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
3274		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
3275		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
3276		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
3277		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,			"VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
3278		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,		"VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
3279		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,						"VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
3280		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,						"VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
3281		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
3282		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
3283		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,				"VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
3284		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,						"VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
3285		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,							"VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
3286		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,						"VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
3287		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,									"VK_PIPELINE_STAGE_2_HOST_BIT"),
3288		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
3289		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
3290		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
3291		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3292		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"),
3293		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"),
3294		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,				"VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
3295		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3296		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3297		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,				"VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
3298		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3299		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
3300		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
3301		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
3302		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,						"VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"),
3303		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,					"VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"),
3304		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,									"VK_PIPELINE_STAGE_2_COPY_BIT"),
3305		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,								"VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
3306		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,									"VK_PIPELINE_STAGE_2_BLIT_BIT"),
3307		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,									"VK_PIPELINE_STAGE_2_CLEAR_BIT"),
3308		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
3309		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,				"VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
3310		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,				"VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
3311		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,					"VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI"),
3312		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,				"VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
3313		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI,			"VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"),
3314	};
3315	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3316}
3317
3318const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
3319{
3320	switch (value)
3321	{
3322		case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
3323		case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
3324		default:										return DE_NULL;
3325	}
3326}
3327
3328tcu::Format::Bitfield<32> getHostImageCopyFlagsEXTStr (VkHostImageCopyFlagsEXT value)
3329{
3330	static const tcu::Format::BitDesc s_desc[] =
3331	{
3332		tcu::Format::BitDesc(VK_HOST_IMAGE_COPY_MEMCPY_EXT,	"VK_HOST_IMAGE_COPY_MEMCPY_EXT"),
3333	};
3334	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3335}
3336
3337tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
3338{
3339	static const tcu::Format::BitDesc s_desc[] =
3340	{
3341		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
3342		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
3343		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
3344		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
3345		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
3346	};
3347	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3348}
3349
3350tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
3351{
3352	static const tcu::Format::BitDesc s_desc[] =
3353	{
3354		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
3355		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
3356		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
3357		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3358		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
3359		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
3360		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,																"VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
3361		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,															"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
3362		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
3363		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,													"VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
3364		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
3365		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
3366		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
3367		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
3368		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
3369		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
3370		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
3371		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
3372		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,								"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
3373		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,				"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
3374		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,				"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
3375		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,	"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
3376		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,																	"VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
3377		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
3378		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3379		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
3380		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
3381		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
3382		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
3383		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
3384		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,										"VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3385		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
3386		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
3387		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,											"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
3388		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,															"VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
3389		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,													"VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
3390		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,														"VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
3391		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,													"VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
3392		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,												"VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
3393		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"),
3394		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,													"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"),
3395		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"),
3396		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT,													"VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT"),
3397	};
3398	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3399}
3400
3401tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3402{
3403	static const tcu::Format::BitDesc s_desc[] =
3404	{
3405		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,	"VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3406		tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,							"VK_RENDERING_SUSPENDING_BIT"),
3407		tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,								"VK_RENDERING_RESUMING_BIT"),
3408		tcu::Format::BitDesc(VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,			"VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3409		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_INLINE_BIT_EXT,					"VK_RENDERING_CONTENTS_INLINE_BIT_EXT"),
3410	};
3411	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3412}
3413
3414tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3415{
3416	static const tcu::Format::BitDesc s_desc[] =
3417	{
3418		tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,	"VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
3419		tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,	"VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
3420	};
3421	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3422}
3423
3424tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3425{
3426	static const tcu::Format::BitDesc s_desc[] =
3427	{
3428		tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,	"VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"),
3429	};
3430	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3431}
3432
3433tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
3434{
3435	static const tcu::Format::BitDesc s_desc[] =
3436	{
3437		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,				"VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
3438		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
3439		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
3440		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,				"VK_IMAGE_COMPRESSION_DISABLED_EXT"),
3441	};
3442	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3443}
3444
3445tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
3446{
3447	static const tcu::Format::BitDesc s_desc[] =
3448	{
3449		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,		"VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
3450		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
3451		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
3452		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
3453		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
3454		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
3455		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
3456		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
3457		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
3458		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
3459		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
3460		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
3461		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
3462		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
3463		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
3464		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
3465		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
3466		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
3467		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
3468		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
3469		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
3470		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
3471		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
3472		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
3473		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
3474	};
3475	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3476}
3477
3478tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
3479{
3480	static const tcu::Format::BitDesc s_desc[] =
3481	{
3482		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
3483		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
3484		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
3485		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
3486		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,		"VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
3487		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
3488	};
3489	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3490}
3491
3492const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
3493{
3494	switch (value)
3495	{
3496		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:			return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
3497		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:				return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
3498		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
3499		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
3500		default:																return DE_NULL;
3501	}
3502}
3503
3504const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
3505{
3506	switch (value)
3507	{
3508		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:			return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
3509		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:				return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
3510		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:		return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
3511		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:	return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
3512		default:																return DE_NULL;
3513	}
3514}
3515
3516tcu::Format::Bitfield<32> getDeviceAddressBindingFlagsEXTStr (VkDeviceAddressBindingFlagsEXT value)
3517{
3518	static const tcu::Format::BitDesc s_desc[] =
3519	{
3520		tcu::Format::BitDesc(VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT,	"VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"),
3521	};
3522	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3523}
3524
3525const char* getDeviceAddressBindingTypeEXTName (VkDeviceAddressBindingTypeEXT value)
3526{
3527	switch (value)
3528	{
3529		case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT";
3530		case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT";
3531		default:										return DE_NULL;
3532	}
3533}
3534
3535const char* getMicromapTypeEXTName (VkMicromapTypeEXT value)
3536{
3537	switch (value)
3538	{
3539		case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT:		return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT";
3540		case VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV:	return "VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV";
3541		default:										return DE_NULL;
3542	}
3543}
3544
3545const char* getBuildMicromapModeEXTName (VkBuildMicromapModeEXT value)
3546{
3547	switch (value)
3548	{
3549		case VK_BUILD_MICROMAP_MODE_BUILD_EXT:	return "VK_BUILD_MICROMAP_MODE_BUILD_EXT";
3550		default:								return DE_NULL;
3551	}
3552}
3553
3554const char* getCopyMicromapModeEXTName (VkCopyMicromapModeEXT value)
3555{
3556	switch (value)
3557	{
3558		case VK_COPY_MICROMAP_MODE_CLONE_EXT:		return "VK_COPY_MICROMAP_MODE_CLONE_EXT";
3559		case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT";
3560		case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT";
3561		case VK_COPY_MICROMAP_MODE_COMPACT_EXT:		return "VK_COPY_MICROMAP_MODE_COMPACT_EXT";
3562		default:									return DE_NULL;
3563	}
3564}
3565
3566tcu::Format::Bitfield<32> getBuildMicromapFlagsEXTStr (VkBuildMicromapFlagsEXT value)
3567{
3568	static const tcu::Format::BitDesc s_desc[] =
3569	{
3570		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT"),
3571		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT"),
3572		tcu::Format::BitDesc(VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT,	"VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT"),
3573	};
3574	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3575}
3576
3577tcu::Format::Bitfield<32> getMicromapCreateFlagsEXTStr (VkMicromapCreateFlagsEXT value)
3578{
3579	static const tcu::Format::BitDesc s_desc[] =
3580	{
3581		tcu::Format::BitDesc(VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,	"VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3582	};
3583	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3584}
3585
3586const char* getOpacityMicromapFormatEXTName (VkOpacityMicromapFormatEXT value)
3587{
3588	switch (value)
3589	{
3590		case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT";
3591		case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT";
3592		default:										return DE_NULL;
3593	}
3594}
3595
3596const char* getOpacityMicromapSpecialIndexEXTName (VkOpacityMicromapSpecialIndexEXT value)
3597{
3598	switch (value)
3599	{
3600		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT:		return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT";
3601		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT:	return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT";
3602		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT:				return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT";
3603		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT:			return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT";
3604		default:																return DE_NULL;
3605	}
3606}
3607
3608const char* getDeviceFaultVendorBinaryHeaderVersionEXTName (VkDeviceFaultVendorBinaryHeaderVersionEXT value)
3609{
3610	switch (value)
3611	{
3612		case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT:	return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT";
3613		default:													return DE_NULL;
3614	}
3615}
3616
3617tcu::Format::Bitfield<32> getFrameBoundaryFlagsEXTStr (VkFrameBoundaryFlagsEXT value)
3618{
3619	static const tcu::Format::BitDesc s_desc[] =
3620	{
3621		tcu::Format::BitDesc(VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT,	"VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT"),
3622	};
3623	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3624}
3625
3626tcu::Format::Bitfield<64> getMemoryDecompressionMethodFlagsNVStr (VkMemoryDecompressionMethodFlagsNV value)
3627{
3628	static const tcu::Format::BitDesc s_desc[] =
3629	{
3630		tcu::Format::BitDesc(VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV,	"VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"),
3631	};
3632	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3633}
3634
3635const char* getDepthBiasRepresentationEXTName (VkDepthBiasRepresentationEXT value)
3636{
3637	switch (value)
3638	{
3639		case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT:			return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT";
3640		case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT:	return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT";
3641		case VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT:									return "VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT";
3642		default:																		return DE_NULL;
3643	}
3644}
3645
3646const char* getDirectDriverLoadingModeLUNARGName (VkDirectDriverLoadingModeLUNARG value)
3647{
3648	switch (value)
3649	{
3650		case VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG";
3651		case VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG";
3652		default:												return DE_NULL;
3653	}
3654}
3655
3656tcu::Format::Bitfield<64> getPipelineCreateFlags2KHRStr (VkPipelineCreateFlags2KHR value)
3657{
3658	static const tcu::Format::BitDesc s_desc[] =
3659	{
3660		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR,								"VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR"),
3661		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR,								"VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR"),
3662		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR,										"VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR"),
3663		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,						"VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
3664		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR,									"VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR"),
3665		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV,										"VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV"),
3666		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR"),
3667		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,					"VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3668		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR,				"VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR"),
3669		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR,							"VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR"),
3670		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT,							"VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT"),
3671		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR,											"VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR"),
3672		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3673		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3674		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,				"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
3675		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,			"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
3676		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,					"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
3677		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,			"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
3678		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV,									"VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV"),
3679		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,	"VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"),
3680		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV,							"VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
3681		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3682		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,		"VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3683		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,				"VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
3684		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,						"VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
3685		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,					"VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
3686		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
3687		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT,								"VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT"),
3688		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,					"VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"),
3689		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT,								"VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT"),
3690		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT,							"VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT"),
3691	};
3692	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3693}
3694
3695tcu::Format::Bitfield<64> getBufferUsageFlags2KHRStr (VkBufferUsageFlags2KHR value)
3696{
3697	static const tcu::Format::BitDesc s_desc[] =
3698	{
3699		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR,									"VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR"),
3700		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR,									"VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR"),
3701		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR,							"VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR"),
3702		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR,							"VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR"),
3703		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR,									"VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR"),
3704		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR,									"VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR"),
3705		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR,									"VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR"),
3706		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR,									"VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR"),
3707		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR,									"VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR"),
3708		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3709		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR"),
3710		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3711		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3712		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR"),
3713		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR"),
3714		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR"),
3715		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR"),
3716		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR,							"VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR"),
3717		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,	"VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"),
3718		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,					"VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3719		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"),
3720		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"),
3721		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,					"VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
3722		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT,								"VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT"),
3723		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,						"VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"),
3724		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"),
3725	};
3726	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3727}
3728
3729const char* getDisplacementMicromapFormatNVName (VkDisplacementMicromapFormatNV value)
3730{
3731	switch (value)
3732	{
3733		case VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV:		return "VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV";
3734		case VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV:	return "VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV";
3735		case VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV:	return "VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV";
3736		default:															return DE_NULL;
3737	}
3738}
3739
3740tcu::Format::Bitfield<32> getShaderCreateFlagsEXTStr (VkShaderCreateFlagsEXT value)
3741{
3742	static const tcu::Format::BitDesc s_desc[] =
3743	{
3744		tcu::Format::BitDesc(VK_SHADER_CREATE_LINK_STAGE_BIT_EXT,						"VK_SHADER_CREATE_LINK_STAGE_BIT_EXT"),
3745		tcu::Format::BitDesc(VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,		"VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
3746		tcu::Format::BitDesc(VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,			"VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3747		tcu::Format::BitDesc(VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,					"VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT"),
3748		tcu::Format::BitDesc(VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,					"VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT"),
3749		tcu::Format::BitDesc(VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,	"VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT"),
3750		tcu::Format::BitDesc(VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,	"VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3751	};
3752	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3753}
3754
3755const char* getShaderCodeTypeEXTName (VkShaderCodeTypeEXT value)
3756{
3757	switch (value)
3758	{
3759		case VK_SHADER_CODE_TYPE_BINARY_EXT:	return "VK_SHADER_CODE_TYPE_BINARY_EXT";
3760		case VK_SHADER_CODE_TYPE_SPIRV_EXT:		return "VK_SHADER_CODE_TYPE_SPIRV_EXT";
3761		default:								return DE_NULL;
3762	}
3763}
3764
3765const char* getScopeKHRName (VkScopeKHR value)
3766{
3767	switch (value)
3768	{
3769		case VK_SCOPE_DEVICE_KHR:		return "VK_SCOPE_DEVICE_KHR";
3770		case VK_SCOPE_WORKGROUP_KHR:	return "VK_SCOPE_WORKGROUP_KHR";
3771		case VK_SCOPE_SUBGROUP_KHR:		return "VK_SCOPE_SUBGROUP_KHR";
3772		case VK_SCOPE_QUEUE_FAMILY_KHR:	return "VK_SCOPE_QUEUE_FAMILY_KHR";
3773		default:						return DE_NULL;
3774	}
3775}
3776
3777const char* getComponentTypeKHRName (VkComponentTypeKHR value)
3778{
3779	switch (value)
3780	{
3781		case VK_COMPONENT_TYPE_FLOAT16_KHR:	return "VK_COMPONENT_TYPE_FLOAT16_KHR";
3782		case VK_COMPONENT_TYPE_FLOAT32_KHR:	return "VK_COMPONENT_TYPE_FLOAT32_KHR";
3783		case VK_COMPONENT_TYPE_FLOAT64_KHR:	return "VK_COMPONENT_TYPE_FLOAT64_KHR";
3784		case VK_COMPONENT_TYPE_SINT8_KHR:	return "VK_COMPONENT_TYPE_SINT8_KHR";
3785		case VK_COMPONENT_TYPE_SINT16_KHR:	return "VK_COMPONENT_TYPE_SINT16_KHR";
3786		case VK_COMPONENT_TYPE_SINT32_KHR:	return "VK_COMPONENT_TYPE_SINT32_KHR";
3787		case VK_COMPONENT_TYPE_SINT64_KHR:	return "VK_COMPONENT_TYPE_SINT64_KHR";
3788		case VK_COMPONENT_TYPE_UINT8_KHR:	return "VK_COMPONENT_TYPE_UINT8_KHR";
3789		case VK_COMPONENT_TYPE_UINT16_KHR:	return "VK_COMPONENT_TYPE_UINT16_KHR";
3790		case VK_COMPONENT_TYPE_UINT32_KHR:	return "VK_COMPONENT_TYPE_UINT32_KHR";
3791		case VK_COMPONENT_TYPE_UINT64_KHR:	return "VK_COMPONENT_TYPE_UINT64_KHR";
3792		default:							return DE_NULL;
3793	}
3794}
3795
3796const char* getCubicFilterWeightsQCOMName (VkCubicFilterWeightsQCOM value)
3797{
3798	switch (value)
3799	{
3800		case VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM:				return "VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM";
3801		case VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM:	return "VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM";
3802		case VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM:					return "VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM";
3803		case VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM:		return "VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM";
3804		default:													return DE_NULL;
3805	}
3806}
3807
3808const char* getBlockMatchWindowCompareModeQCOMName (VkBlockMatchWindowCompareModeQCOM value)
3809{
3810	switch (value)
3811	{
3812		case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM:	return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM";
3813		case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM:	return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM";
3814		default:											return DE_NULL;
3815	}
3816}
3817
3818const char* getLayeredDriverUnderlyingApiMSFTName (VkLayeredDriverUnderlyingApiMSFT value)
3819{
3820	switch (value)
3821	{
3822		case VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT:	return "VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT";
3823		case VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT:	return "VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT";
3824		default:											return DE_NULL;
3825	}
3826}
3827
3828const char* getColorSpaceKHRName (VkColorSpaceKHR value)
3829{
3830	switch (value)
3831	{
3832		case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:				return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
3833		case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:		return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
3834		case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:		return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
3835		case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:			return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
3836		case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:			return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
3837		case VK_COLOR_SPACE_BT709_LINEAR_EXT:				return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
3838		case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:			return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
3839		case VK_COLOR_SPACE_BT2020_LINEAR_EXT:				return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
3840		case VK_COLOR_SPACE_HDR10_ST2084_EXT:				return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
3841		case VK_COLOR_SPACE_DOLBYVISION_EXT:				return "VK_COLOR_SPACE_DOLBYVISION_EXT";
3842		case VK_COLOR_SPACE_HDR10_HLG_EXT:					return "VK_COLOR_SPACE_HDR10_HLG_EXT";
3843		case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
3844		case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
3845		case VK_COLOR_SPACE_PASS_THROUGH_EXT:				return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
3846		case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:	return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
3847		case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:				return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
3848		default:											return DE_NULL;
3849	}
3850}
3851
3852tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3853{
3854	static const tcu::Format::BitDesc s_desc[] =
3855	{
3856		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,				"VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3857		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,		"VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3858		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,	"VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3859		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,			"VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3860	};
3861	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3862}
3863
3864tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3865{
3866	static const tcu::Format::BitDesc s_desc[] =
3867	{
3868		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3869		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3870		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,					"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3871		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,	"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3872	};
3873	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3874}
3875
3876const char* getPresentModeKHRName (VkPresentModeKHR value)
3877{
3878	switch (value)
3879	{
3880		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
3881		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
3882		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
3883		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
3884		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
3885		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
3886		default:											return DE_NULL;
3887	}
3888}
3889
3890tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3891{
3892	static const tcu::Format::BitDesc s_desc[] =
3893	{
3894		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,						"VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3895		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3896		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3897		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3898		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,			"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3899		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3900		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3901		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3902		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,						"VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3903	};
3904	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3905}
3906
3907tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3908{
3909	static const tcu::Format::BitDesc s_desc[] =
3910	{
3911		tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,			"VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3912		tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,				"VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3913		tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,	"VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3914		tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,					"VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3915		tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,					"VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3916	};
3917	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3918}
3919
3920const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
3921{
3922	switch (value)
3923	{
3924		case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
3925		case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
3926		case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
3927		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
3928		case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
3929		case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
3930		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
3931		case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
3932		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
3933		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
3934		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
3935		case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
3936		case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
3937		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
3938		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
3939		case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
3940		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
3941		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
3942		case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
3943		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
3944		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
3945		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
3946		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
3947		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
3948		case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
3949		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
3950		case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
3951		case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
3952		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
3953		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
3954		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
3955		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
3956		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
3957		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
3958		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
3959		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
3960		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
3961		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
3962		case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT";
3963		case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT";
3964		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
3965		default:															return DE_NULL;
3966	}
3967}
3968
3969const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
3970{
3971	switch (value)
3972	{
3973		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
3974		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
3975		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
3976		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
3977		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:	return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
3978		default:														return DE_NULL;
3979	}
3980}
3981
3982const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
3983{
3984	switch (value)
3985	{
3986		case VK_RASTERIZATION_ORDER_STRICT_AMD:		return "VK_RASTERIZATION_ORDER_STRICT_AMD";
3987		case VK_RASTERIZATION_ORDER_RELAXED_AMD:	return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
3988		default:									return DE_NULL;
3989	}
3990}
3991
3992tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3993{
3994	static const tcu::Format::BitDesc s_desc[] =
3995	{
3996		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3997		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3998		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,			"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3999		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
4000	};
4001	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4002}
4003
4004tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
4005{
4006	static const tcu::Format::BitDesc s_desc[] =
4007	{
4008		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
4009		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
4010		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
4011	};
4012	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4013}
4014
4015const char* getValidationCheckEXTName (VkValidationCheckEXT value)
4016{
4017	switch (value)
4018	{
4019		case VK_VALIDATION_CHECK_ALL_EXT:		return "VK_VALIDATION_CHECK_ALL_EXT";
4020		case VK_VALIDATION_CHECK_SHADERS_EXT:	return "VK_VALIDATION_CHECK_SHADERS_EXT";
4021		default:								return DE_NULL;
4022	}
4023}
4024
4025const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
4026{
4027	switch (value)
4028	{
4029		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
4030		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
4031		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
4032		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
4033		case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:			return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
4034		default:																	return DE_NULL;
4035	}
4036}
4037
4038const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
4039{
4040	switch (value)
4041	{
4042		case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:						return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
4043		case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:					return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
4044		case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
4045		case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
4046		case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
4047		case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
4048		case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
4049		case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT:	return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
4050		default:														return DE_NULL;
4051	}
4052}
4053
4054tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
4055{
4056	static const tcu::Format::BitDesc s_desc[] =
4057	{
4058		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
4059		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4060		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4061		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
4062		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
4063		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
4064		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
4065		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
4066		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"),
4067		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
4068		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
4069		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
4070		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
4071		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX"),
4072	};
4073	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4074}
4075
4076tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
4077{
4078	static const tcu::Format::BitDesc s_desc[] =
4079	{
4080		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
4081		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
4082		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
4083	};
4084	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4085}
4086
4087tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
4088{
4089	static const tcu::Format::BitDesc s_desc[] =
4090	{
4091		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
4092		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4093		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4094		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
4095		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
4096		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
4097	};
4098	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4099}
4100
4101tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
4102{
4103	static const tcu::Format::BitDesc s_desc[] =
4104	{
4105		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
4106		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
4107	};
4108	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4109}
4110
4111tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
4112{
4113	static const tcu::Format::BitDesc s_desc[] =
4114	{
4115		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,	"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
4116	};
4117	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4118}
4119
4120tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
4121{
4122	static const tcu::Format::BitDesc s_desc[] =
4123	{
4124		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
4125		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4126		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,	"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4127		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
4128	};
4129	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4130}
4131
4132tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
4133{
4134	static const tcu::Format::BitDesc s_desc[] =
4135	{
4136		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
4137		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
4138	};
4139	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4140}
4141
4142tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
4143{
4144	static const tcu::Format::BitDesc s_desc[] =
4145	{
4146		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,	"VK_FENCE_IMPORT_TEMPORARY_BIT"),
4147	};
4148	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4149}
4150
4151tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
4152{
4153	static const tcu::Format::BitDesc s_desc[] =
4154	{
4155		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,	"VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
4156	};
4157	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4158}
4159
4160const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
4161{
4162	switch (value)
4163	{
4164		case VK_DISPLAY_POWER_STATE_OFF_EXT:		return "VK_DISPLAY_POWER_STATE_OFF_EXT";
4165		case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:	return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
4166		case VK_DISPLAY_POWER_STATE_ON_EXT:			return "VK_DISPLAY_POWER_STATE_ON_EXT";
4167		default:									return DE_NULL;
4168	}
4169}
4170
4171const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
4172{
4173	switch (value)
4174	{
4175		case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:	return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
4176		default:										return DE_NULL;
4177	}
4178}
4179
4180const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
4181{
4182	switch (value)
4183	{
4184		case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:	return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
4185		default:										return DE_NULL;
4186	}
4187}
4188
4189tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
4190{
4191	static const tcu::Format::BitDesc s_desc[] =
4192	{
4193		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
4194		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
4195		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
4196		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
4197	};
4198	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4199}
4200
4201tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
4202{
4203	static const tcu::Format::BitDesc s_desc[] =
4204	{
4205		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
4206		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
4207		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,	"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
4208	};
4209	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4210}
4211
4212tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
4213{
4214	static const tcu::Format::BitDesc s_desc[] =
4215	{
4216		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
4217		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
4218		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,					"VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
4219		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,	"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
4220	};
4221	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4222}
4223
4224tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
4225{
4226	static const tcu::Format::BitDesc s_desc[] =
4227	{
4228		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,	"VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
4229		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,						"VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
4230		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,				"VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
4231		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT,	"VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT"),
4232	};
4233	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4234}
4235
4236tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
4237{
4238	static const tcu::Format::BitDesc s_desc[] =
4239	{
4240		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,					"VK_SUBGROUP_FEATURE_BASIC_BIT"),
4241		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,					"VK_SUBGROUP_FEATURE_VOTE_BIT"),
4242		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,			"VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
4243		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,				"VK_SUBGROUP_FEATURE_BALLOT_BIT"),
4244		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,				"VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
4245		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,		"VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
4246		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,				"VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
4247		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,					"VK_SUBGROUP_FEATURE_QUAD_BIT"),
4248		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,		"VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
4249		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR,			"VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR"),
4250		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR,	"VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR"),
4251	};
4252	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4253}
4254
4255const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
4256{
4257	switch (value)
4258	{
4259		case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
4260		case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
4261		default:										return DE_NULL;
4262	}
4263}
4264
4265const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
4266{
4267	switch (value)
4268	{
4269		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
4270		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
4271		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
4272		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
4273		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
4274		default:												return DE_NULL;
4275	}
4276}
4277
4278const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
4279{
4280	switch (value)
4281	{
4282		case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:	return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
4283		case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:	return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
4284		default:								return DE_NULL;
4285	}
4286}
4287
4288const char* getChromaLocationName (VkChromaLocation value)
4289{
4290	switch (value)
4291	{
4292		case VK_CHROMA_LOCATION_COSITED_EVEN:	return "VK_CHROMA_LOCATION_COSITED_EVEN";
4293		case VK_CHROMA_LOCATION_MIDPOINT:		return "VK_CHROMA_LOCATION_MIDPOINT";
4294		default:								return DE_NULL;
4295	}
4296}
4297
4298const char* getSamplerReductionModeName (VkSamplerReductionMode value)
4299{
4300	switch (value)
4301	{
4302		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:					return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
4303		case VK_SAMPLER_REDUCTION_MODE_MIN:									return "VK_SAMPLER_REDUCTION_MODE_MIN";
4304		case VK_SAMPLER_REDUCTION_MODE_MAX:									return "VK_SAMPLER_REDUCTION_MODE_MAX";
4305		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM:	return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM";
4306		default:															return DE_NULL;
4307	}
4308}
4309
4310const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
4311{
4312	switch (value)
4313	{
4314		case VK_BLEND_OVERLAP_UNCORRELATED_EXT:	return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
4315		case VK_BLEND_OVERLAP_DISJOINT_EXT:		return "VK_BLEND_OVERLAP_DISJOINT_EXT";
4316		case VK_BLEND_OVERLAP_CONJOINT_EXT:		return "VK_BLEND_OVERLAP_CONJOINT_EXT";
4317		default:								return DE_NULL;
4318	}
4319}
4320
4321tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
4322{
4323	static const tcu::Format::BitDesc s_desc[] =
4324	{
4325		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
4326		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
4327		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
4328		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
4329	};
4330	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4331}
4332
4333tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
4334{
4335	static const tcu::Format::BitDesc s_desc[] =
4336	{
4337		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,					"VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
4338		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
4339		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
4340		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT"),
4341	};
4342	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4343}
4344
4345const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
4346{
4347	switch (value)
4348	{
4349		case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
4350		case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
4351		case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:				return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
4352		case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:	return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
4353		default:													return DE_NULL;
4354	}
4355}
4356
4357const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
4358{
4359	switch (value)
4360	{
4361		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
4362		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:			return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
4363		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:		return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
4364		default:												return DE_NULL;
4365	}
4366}
4367
4368const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
4369{
4370	switch (value)
4371	{
4372		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
4373		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
4374		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
4375		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
4376		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
4377		default:												return DE_NULL;
4378	}
4379}
4380
4381tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
4382{
4383	static const tcu::Format::BitDesc s_desc[] =
4384	{
4385		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,	"VK_SUBMIT_PROTECTED_BIT"),
4386	};
4387	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4388}
4389
4390tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
4391{
4392	static const tcu::Format::BitDesc s_desc[] =
4393	{
4394		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,		"VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
4395		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
4396		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,				"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
4397		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
4398	};
4399	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4400}
4401
4402tcu::Format::Bitfield<32> getOpticalFlowGridSizeFlagsNVStr (VkOpticalFlowGridSizeFlagsNV value)
4403{
4404	static const tcu::Format::BitDesc s_desc[] =
4405	{
4406		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"),
4407		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV"),
4408		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV"),
4409		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV"),
4410		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV"),
4411	};
4412	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4413}
4414
4415tcu::Format::Bitfield<32> getOpticalFlowUsageFlagsNVStr (VkOpticalFlowUsageFlagsNV value)
4416{
4417	static const tcu::Format::BitDesc s_desc[] =
4418	{
4419		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,			"VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"),
4420		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV"),
4421		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV"),
4422		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV"),
4423		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_COST_BIT_NV"),
4424		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV"),
4425	};
4426	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4427}
4428
4429const char* getOpticalFlowPerformanceLevelNVName (VkOpticalFlowPerformanceLevelNV value)
4430{
4431	switch (value)
4432	{
4433		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV";
4434		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV";
4435		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV";
4436		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV";
4437		default:											return DE_NULL;
4438	}
4439}
4440
4441const char* getOpticalFlowSessionBindingPointNVName (VkOpticalFlowSessionBindingPointNV value)
4442{
4443	switch (value)
4444	{
4445		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV";
4446		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV";
4447		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV";
4448		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV";
4449		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV";
4450		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV:	return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV";
4451		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV";
4452		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV:		return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV";
4453		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV";
4454		default:															return DE_NULL;
4455	}
4456}
4457
4458tcu::Format::Bitfield<32> getOpticalFlowSessionCreateFlagsNVStr (VkOpticalFlowSessionCreateFlagsNV value)
4459{
4460	static const tcu::Format::BitDesc s_desc[] =
4461	{
4462		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV"),
4463		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV"),
4464		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV"),
4465		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV"),
4466		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV"),
4467	};
4468	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4469}
4470
4471tcu::Format::Bitfield<32> getOpticalFlowExecuteFlagsNVStr (VkOpticalFlowExecuteFlagsNV value)
4472{
4473	static const tcu::Format::BitDesc s_desc[] =
4474	{
4475		tcu::Format::BitDesc(VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV,	"VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"),
4476	};
4477	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4478}
4479
4480const char* getDeviceFaultAddressTypeEXTName (VkDeviceFaultAddressTypeEXT value)
4481{
4482	switch (value)
4483	{
4484		case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT:							return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT";
4485		case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT:					return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT";
4486		case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT";
4487		case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT";
4488		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT";
4489		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT";
4490		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT";
4491		default:															return DE_NULL;
4492	}
4493}
4494
4495tcu::Format::Bitfield<32> getPresentScalingFlagsEXTStr (VkPresentScalingFlagsEXT value)
4496{
4497	static const tcu::Format::BitDesc s_desc[] =
4498	{
4499		tcu::Format::BitDesc(VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,				"VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT"),
4500		tcu::Format::BitDesc(VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,	"VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"),
4501		tcu::Format::BitDesc(VK_PRESENT_SCALING_STRETCH_BIT_EXT,				"VK_PRESENT_SCALING_STRETCH_BIT_EXT"),
4502	};
4503	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4504}
4505
4506tcu::Format::Bitfield<32> getPresentGravityFlagsEXTStr (VkPresentGravityFlagsEXT value)
4507{
4508	static const tcu::Format::BitDesc s_desc[] =
4509	{
4510		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MIN_BIT_EXT,		"VK_PRESENT_GRAVITY_MIN_BIT_EXT"),
4511		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MAX_BIT_EXT,		"VK_PRESENT_GRAVITY_MAX_BIT_EXT"),
4512		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_CENTERED_BIT_EXT,	"VK_PRESENT_GRAVITY_CENTERED_BIT_EXT"),
4513	};
4514	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4515}
4516
4517const char* getLayerSettingTypeEXTName (VkLayerSettingTypeEXT value)
4518{
4519	switch (value)
4520	{
4521		case VK_LAYER_SETTING_TYPE_BOOL32_EXT:	return "VK_LAYER_SETTING_TYPE_BOOL32_EXT";
4522		case VK_LAYER_SETTING_TYPE_INT32_EXT:	return "VK_LAYER_SETTING_TYPE_INT32_EXT";
4523		case VK_LAYER_SETTING_TYPE_INT64_EXT:	return "VK_LAYER_SETTING_TYPE_INT64_EXT";
4524		case VK_LAYER_SETTING_TYPE_UINT32_EXT:	return "VK_LAYER_SETTING_TYPE_UINT32_EXT";
4525		case VK_LAYER_SETTING_TYPE_UINT64_EXT:	return "VK_LAYER_SETTING_TYPE_UINT64_EXT";
4526		case VK_LAYER_SETTING_TYPE_FLOAT32_EXT:	return "VK_LAYER_SETTING_TYPE_FLOAT32_EXT";
4527		case VK_LAYER_SETTING_TYPE_FLOAT64_EXT:	return "VK_LAYER_SETTING_TYPE_FLOAT64_EXT";
4528		case VK_LAYER_SETTING_TYPE_STRING_EXT:	return "VK_LAYER_SETTING_TYPE_STRING_EXT";
4529		default:								return DE_NULL;
4530	}
4531}
4532
4533const char* getLatencyMarkerNVName (VkLatencyMarkerNV value)
4534{
4535	switch (value)
4536	{
4537		case VK_LATENCY_MARKER_SIMULATION_START_NV:					return "VK_LATENCY_MARKER_SIMULATION_START_NV";
4538		case VK_LATENCY_MARKER_SIMULATION_END_NV:					return "VK_LATENCY_MARKER_SIMULATION_END_NV";
4539		case VK_LATENCY_MARKER_RENDERSUBMIT_START_NV:				return "VK_LATENCY_MARKER_RENDERSUBMIT_START_NV";
4540		case VK_LATENCY_MARKER_RENDERSUBMIT_END_NV:					return "VK_LATENCY_MARKER_RENDERSUBMIT_END_NV";
4541		case VK_LATENCY_MARKER_PRESENT_START_NV:					return "VK_LATENCY_MARKER_PRESENT_START_NV";
4542		case VK_LATENCY_MARKER_PRESENT_END_NV:						return "VK_LATENCY_MARKER_PRESENT_END_NV";
4543		case VK_LATENCY_MARKER_INPUT_SAMPLE_NV:						return "VK_LATENCY_MARKER_INPUT_SAMPLE_NV";
4544		case VK_LATENCY_MARKER_TRIGGER_FLASH_NV:					return "VK_LATENCY_MARKER_TRIGGER_FLASH_NV";
4545		case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV:	return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV";
4546		case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV:		return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV";
4547		case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV:		return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV";
4548		case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV:			return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV";
4549		default:													return DE_NULL;
4550	}
4551}
4552
4553const char* getOutOfBandQueueTypeNVName (VkOutOfBandQueueTypeNV value)
4554{
4555	switch (value)
4556	{
4557		case VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV:	return "VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV";
4558		case VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV:	return "VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV";
4559		default:									return DE_NULL;
4560	}
4561}
4562
4563tcu::Format::Bitfield<64> getPhysicalDeviceSchedulingControlsFlagsARMStr (VkPhysicalDeviceSchedulingControlsFlagsARM value)
4564{
4565	static const tcu::Format::BitDesc s_desc[] =
4566	{
4567		tcu::Format::BitDesc(VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM,	"VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM"),
4568	};
4569	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4570}
4571
4572const char* getVendorIdName (VkVendorId value)
4573{
4574	switch (value)
4575	{
4576		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
4577		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
4578		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
4579		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
4580		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
4581		case VK_VENDOR_ID_POCL:		return "VK_VENDOR_ID_POCL";
4582		case VK_VENDOR_ID_MOBILEYE:	return "VK_VENDOR_ID_MOBILEYE";
4583		default:					return DE_NULL;
4584	}
4585}
4586
4587const char* getDriverIdName (VkDriverId value)
4588{
4589	switch (value)
4590	{
4591		case VK_DRIVER_ID_AMD_PROPRIETARY:				return "VK_DRIVER_ID_AMD_PROPRIETARY";
4592		case VK_DRIVER_ID_AMD_OPEN_SOURCE:				return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
4593		case VK_DRIVER_ID_MESA_RADV:					return "VK_DRIVER_ID_MESA_RADV";
4594		case VK_DRIVER_ID_NVIDIA_PROPRIETARY:			return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
4595		case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:	return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
4596		case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:		return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
4597		case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:		return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
4598		case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:			return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
4599		case VK_DRIVER_ID_ARM_PROPRIETARY:				return "VK_DRIVER_ID_ARM_PROPRIETARY";
4600		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
4601		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
4602		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
4603		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
4604		case VK_DRIVER_ID_MOLTENVK:						return "VK_DRIVER_ID_MOLTENVK";
4605		case VK_DRIVER_ID_COREAVI_PROPRIETARY:			return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
4606		case VK_DRIVER_ID_JUICE_PROPRIETARY:			return "VK_DRIVER_ID_JUICE_PROPRIETARY";
4607		case VK_DRIVER_ID_VERISILICON_PROPRIETARY:		return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
4608		case VK_DRIVER_ID_MESA_TURNIP:					return "VK_DRIVER_ID_MESA_TURNIP";
4609		case VK_DRIVER_ID_MESA_V3DV:					return "VK_DRIVER_ID_MESA_V3DV";
4610		case VK_DRIVER_ID_MESA_PANVK:					return "VK_DRIVER_ID_MESA_PANVK";
4611		case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:			return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
4612		case VK_DRIVER_ID_MESA_VENUS:					return "VK_DRIVER_ID_MESA_VENUS";
4613		case VK_DRIVER_ID_MESA_DOZEN:					return "VK_DRIVER_ID_MESA_DOZEN";
4614		case VK_DRIVER_ID_MESA_NVK:						return "VK_DRIVER_ID_MESA_NVK";
4615		case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA:	return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
4616		case VK_DRIVER_ID_MESA_AGXV:					return "VK_DRIVER_ID_MESA_AGXV";
4617		default:										return DE_NULL;
4618	}
4619}
4620
4621const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
4622{
4623	switch (value)
4624	{
4625		case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:				return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
4626		case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
4627		case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
4628		case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
4629		case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
4630		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
4631		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
4632		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
4633		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
4634		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
4635		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
4636		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
4637		default:															return DE_NULL;
4638	}
4639}
4640
4641const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
4642{
4643	switch (value)
4644	{
4645		case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
4646		case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:			return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
4647		case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
4648		case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
4649		default:											return DE_NULL;
4650	}
4651}
4652
4653const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
4654{
4655	switch (value)
4656	{
4657		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
4658		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:		return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
4659		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
4660		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
4661		default:													return DE_NULL;
4662	}
4663}
4664
4665tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4666{
4667	static const tcu::Format::BitDesc s_desc[] =
4668	{
4669		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_NONE_KHR,				"VK_VIDEO_CODEC_OPERATION_NONE_KHR"),
4670		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR"),
4671		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR"),
4672		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR"),
4673		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR"),
4674		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR"),
4675	};
4676	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4677}
4678
4679tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4680{
4681	static const tcu::Format::BitDesc s_desc[] =
4682	{
4683		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"),
4684		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,	"VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4685		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4686		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4687		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4688	};
4689	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4690}
4691
4692tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4693{
4694	static const tcu::Format::BitDesc s_desc[] =
4695	{
4696		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4697		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4698		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4699		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4700	};
4701	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4702}
4703
4704tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4705{
4706	static const tcu::Format::BitDesc s_desc[] =
4707	{
4708		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,			"VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4709		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,	"VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4710	};
4711	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4712}
4713
4714tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4715{
4716	static const tcu::Format::BitDesc s_desc[] =
4717	{
4718		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,						"VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4719		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR"),
4720		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR,						"VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR"),
4721	};
4722	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4723}
4724
4725tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4726{
4727	static const tcu::Format::BitDesc s_desc[] =
4728	{
4729		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,					"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4730		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,	"VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"),
4731		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR,	"VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR"),
4732	};
4733	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4734}
4735
4736const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
4737{
4738	switch (value)
4739	{
4740		case VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR:	return "VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR";
4741		case VK_QUERY_RESULT_STATUS_ERROR_KHR:									return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
4742		case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:								return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
4743		case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:								return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
4744		default:																return DE_NULL;
4745	}
4746}
4747
4748tcu::Format::Bitfield<32> getVideoDecodeUsageFlagsKHRStr (VkVideoDecodeUsageFlagsKHR value)
4749{
4750	static const tcu::Format::BitDesc s_desc[] =
4751	{
4752		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,			"VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"),
4753		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"),
4754		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,		"VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"),
4755		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"),
4756	};
4757	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4758}
4759
4760tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
4761{
4762	static const tcu::Format::BitDesc s_desc[] =
4763	{
4764		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
4765		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
4766	};
4767	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4768}
4769
4770tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsKHRStr (VkVideoDecodeH264PictureLayoutFlagsKHR value)
4771{
4772	static const tcu::Format::BitDesc s_desc[] =
4773	{
4774		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,						"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"),
4775		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR,	"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR"),
4776		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR,	"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR"),
4777	};
4778	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4779}
4780
4781tcu::Format::Bitfield<32> getVideoEncodeUsageFlagsKHRStr (VkVideoEncodeUsageFlagsKHR value)
4782{
4783	static const tcu::Format::BitDesc s_desc[] =
4784	{
4785		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,				"VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"),
4786		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"),
4787		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"),
4788		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"),
4789		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,	"VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"),
4790	};
4791	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4792}
4793
4794tcu::Format::Bitfield<32> getVideoEncodeContentFlagsKHRStr (VkVideoEncodeContentFlagsKHR value)
4795{
4796	static const tcu::Format::BitDesc s_desc[] =
4797	{
4798		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,		"VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"),
4799		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"),
4800		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"),
4801		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"),
4802	};
4803	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4804}
4805
4806const char* getVideoEncodeTuningModeKHRName (VkVideoEncodeTuningModeKHR value)
4807{
4808	switch (value)
4809	{
4810		case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
4811		case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
4812		case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
4813		case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR:	return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
4814		case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
4815		default:												return DE_NULL;
4816	}
4817}
4818
4819tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
4820{
4821	static const tcu::Format::BitDesc s_desc[] =
4822	{
4823		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,				"VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
4824		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR,	"VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR"),
4825	};
4826	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4827}
4828
4829tcu::Format::Bitfield<32> getVideoEncodeFeedbackFlagsKHRStr (VkVideoEncodeFeedbackFlagsKHR value)
4830{
4831	static const tcu::Format::BitDesc s_desc[] =
4832	{
4833		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR"),
4834		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR"),
4835		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR"),
4836	};
4837	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4838}
4839
4840tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4841{
4842	static const tcu::Format::BitDesc s_desc[] =
4843	{
4844		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR"),
4845		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR"),
4846		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4847		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4848	};
4849	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4850}
4851
4852tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsKHRStr (VkVideoEncodeH264CapabilityFlagsKHR value)
4853{
4854	static const tcu::Format::BitDesc s_desc[] =
4855	{
4856		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,					"VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"),
4857		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,	"VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"),
4858		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR"),
4859		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR"),
4860		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"),
4861		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"),
4862		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"),
4863		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR"),
4864		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR"),
4865	};
4866	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4867}
4868
4869tcu::Format::Bitfield<32> getVideoEncodeH264StdFlagsKHRStr (VkVideoEncodeH264StdFlagsKHR value)
4870{
4871	static const tcu::Format::BitDesc s_desc[] =
4872	{
4873		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"),
4874		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR"),
4875		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR"),
4876		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR"),
4877		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR"),
4878		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR,						"VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR"),
4879		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"),
4880		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR"),
4881		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR"),
4882		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR"),
4883		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR,		"VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR"),
4884		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR"),
4885		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR"),
4886		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR"),
4887		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"),
4888		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR"),
4889		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR"),
4890		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR"),
4891		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR,							"VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR"),
4892		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"),
4893	};
4894	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4895}
4896
4897tcu::Format::Bitfield<32> getVideoEncodeH264RateControlFlagsKHRStr (VkVideoEncodeH264RateControlFlagsKHR value)
4898{
4899	static const tcu::Format::BitDesc s_desc[] =
4900	{
4901		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,			"VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"),
4902		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR,						"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR"),
4903		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,			"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"),
4904		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,		"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"),
4905		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR,	"VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR"),
4906	};
4907	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4908}
4909
4910tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsKHRStr (VkVideoEncodeH265CapabilityFlagsKHR value)
4911{
4912	static const tcu::Format::BitDesc s_desc[] =
4913	{
4914		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,					"VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"),
4915		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"),
4916		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR"),
4917		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR"),
4918		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"),
4919		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"),
4920		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"),
4921		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR"),
4922		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR"),
4923		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR"),
4924	};
4925	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4926}
4927
4928tcu::Format::Bitfield<32> getVideoEncodeH265StdFlagsKHRStr (VkVideoEncodeH265StdFlagsKHR value)
4929{
4930	static const tcu::Format::BitDesc s_desc[] =
4931	{
4932		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"),
4933		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR,		"VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR"),
4934		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR"),
4935		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR,							"VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR"),
4936		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR"),
4937		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR,								"VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR"),
4938		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"),
4939		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR"),
4940		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR"),
4941		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR"),
4942		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR"),
4943		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR"),
4944		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR"),
4945		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR"),
4946		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"),
4947		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR"),
4948		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR"),
4949		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR"),
4950		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR"),
4951		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR,								"VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR"),
4952		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"),
4953	};
4954	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4955}
4956
4957tcu::Format::Bitfield<32> getVideoEncodeH265RateControlFlagsKHRStr (VkVideoEncodeH265RateControlFlagsKHR value)
4958{
4959	static const tcu::Format::BitDesc s_desc[] =
4960	{
4961		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"),
4962		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR,							"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR"),
4963		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"),
4964		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,			"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"),
4965		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR,	"VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR"),
4966	};
4967	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4968}
4969
4970tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsKHRStr (VkVideoEncodeH265CtbSizeFlagsKHR value)
4971{
4972	static const tcu::Format::BitDesc s_desc[] =
4973	{
4974		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR"),
4975		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR"),
4976		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR"),
4977	};
4978	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4979}
4980
4981tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsKHRStr (VkVideoEncodeH265TransformBlockSizeFlagsKHR value)
4982{
4983	static const tcu::Format::BitDesc s_desc[] =
4984	{
4985		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR"),
4986		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR"),
4987		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR"),
4988		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR"),
4989	};
4990	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4991}
4992
4993const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
4994{
4995	switch (value)
4996	{
4997		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:			return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
4998		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:	return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
4999		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:		return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
5000		default:																return DE_NULL;
5001	}
5002}
5003
5004const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
5005{
5006	switch (value)
5007	{
5008		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
5009		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
5010		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
5011		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
5012		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
5013		default:											return DE_NULL;
5014	}
5015}
5016
5017const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
5018{
5019	switch (value)
5020	{
5021		case STD_VIDEO_H264_PROFILE_IDC_BASELINE:				return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
5022		case STD_VIDEO_H264_PROFILE_IDC_MAIN:					return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
5023		case STD_VIDEO_H264_PROFILE_IDC_HIGH:					return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
5024		case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:	return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
5025		case STD_VIDEO_H264_PROFILE_IDC_INVALID:				return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
5026		default:												return DE_NULL;
5027	}
5028}
5029
5030const char* getdVideoH264LevelIdcName (StdVideoH264LevelIdc value)
5031{
5032	switch (value)
5033	{
5034		case STD_VIDEO_H264_LEVEL_IDC_1_0:		return "STD_VIDEO_H264_LEVEL_IDC_1_0";
5035		case STD_VIDEO_H264_LEVEL_IDC_1_1:		return "STD_VIDEO_H264_LEVEL_IDC_1_1";
5036		case STD_VIDEO_H264_LEVEL_IDC_1_2:		return "STD_VIDEO_H264_LEVEL_IDC_1_2";
5037		case STD_VIDEO_H264_LEVEL_IDC_1_3:		return "STD_VIDEO_H264_LEVEL_IDC_1_3";
5038		case STD_VIDEO_H264_LEVEL_IDC_2_0:		return "STD_VIDEO_H264_LEVEL_IDC_2_0";
5039		case STD_VIDEO_H264_LEVEL_IDC_2_1:		return "STD_VIDEO_H264_LEVEL_IDC_2_1";
5040		case STD_VIDEO_H264_LEVEL_IDC_2_2:		return "STD_VIDEO_H264_LEVEL_IDC_2_2";
5041		case STD_VIDEO_H264_LEVEL_IDC_3_0:		return "STD_VIDEO_H264_LEVEL_IDC_3_0";
5042		case STD_VIDEO_H264_LEVEL_IDC_3_1:		return "STD_VIDEO_H264_LEVEL_IDC_3_1";
5043		case STD_VIDEO_H264_LEVEL_IDC_3_2:		return "STD_VIDEO_H264_LEVEL_IDC_3_2";
5044		case STD_VIDEO_H264_LEVEL_IDC_4_0:		return "STD_VIDEO_H264_LEVEL_IDC_4_0";
5045		case STD_VIDEO_H264_LEVEL_IDC_4_1:		return "STD_VIDEO_H264_LEVEL_IDC_4_1";
5046		case STD_VIDEO_H264_LEVEL_IDC_4_2:		return "STD_VIDEO_H264_LEVEL_IDC_4_2";
5047		case STD_VIDEO_H264_LEVEL_IDC_5_0:		return "STD_VIDEO_H264_LEVEL_IDC_5_0";
5048		case STD_VIDEO_H264_LEVEL_IDC_5_1:		return "STD_VIDEO_H264_LEVEL_IDC_5_1";
5049		case STD_VIDEO_H264_LEVEL_IDC_5_2:		return "STD_VIDEO_H264_LEVEL_IDC_5_2";
5050		case STD_VIDEO_H264_LEVEL_IDC_6_0:		return "STD_VIDEO_H264_LEVEL_IDC_6_0";
5051		case STD_VIDEO_H264_LEVEL_IDC_6_1:		return "STD_VIDEO_H264_LEVEL_IDC_6_1";
5052		case STD_VIDEO_H264_LEVEL_IDC_6_2:		return "STD_VIDEO_H264_LEVEL_IDC_6_2";
5053		case STD_VIDEO_H264_LEVEL_IDC_INVALID:	return "STD_VIDEO_H264_LEVEL_IDC_INVALID";
5054		default:								return DE_NULL;
5055	}
5056}
5057
5058const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
5059{
5060	switch (value)
5061	{
5062		case STD_VIDEO_H264_POC_TYPE_0:			return "STD_VIDEO_H264_POC_TYPE_0";
5063		case STD_VIDEO_H264_POC_TYPE_1:			return "STD_VIDEO_H264_POC_TYPE_1";
5064		case STD_VIDEO_H264_POC_TYPE_2:			return "STD_VIDEO_H264_POC_TYPE_2";
5065		case STD_VIDEO_H264_POC_TYPE_INVALID:	return "STD_VIDEO_H264_POC_TYPE_INVALID";
5066		default:								return DE_NULL;
5067	}
5068}
5069
5070const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
5071{
5072	switch (value)
5073	{
5074		case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
5075		case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
5076		case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
5077		case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
5078		case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
5079		case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
5080		case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
5081		case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
5082		case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
5083		case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
5084		case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
5085		case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
5086		case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
5087		case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
5088		case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
5089		case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
5090		case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
5091		case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
5092		case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
5093		default:											return DE_NULL;
5094	}
5095}
5096
5097const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
5098{
5099	switch (value)
5100	{
5101		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
5102		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
5103		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
5104		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
5105		default:											return DE_NULL;
5106	}
5107}
5108
5109const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
5110{
5111	switch (value)
5112	{
5113		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:	return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
5114		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:		return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
5115		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
5116		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:					return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
5117		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
5118		default:																return DE_NULL;
5119	}
5120}
5121
5122const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
5123{
5124	switch (value)
5125	{
5126		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:						return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
5127		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
5128		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
5129		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:				return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
5130		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";
5131		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
5132		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";
5133		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
5134		default:															return DE_NULL;
5135	}
5136}
5137
5138const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
5139{
5140	switch (value)
5141	{
5142		case STD_VIDEO_H264_CABAC_INIT_IDC_0:		return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
5143		case STD_VIDEO_H264_CABAC_INIT_IDC_1:		return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
5144		case STD_VIDEO_H264_CABAC_INIT_IDC_2:		return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
5145		case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:	return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
5146		default:									return DE_NULL;
5147	}
5148}
5149
5150const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
5151{
5152	switch (value)
5153	{
5154		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
5155		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
5156		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
5157		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
5158		default:													return DE_NULL;
5159	}
5160}
5161
5162const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
5163{
5164	switch (value)
5165	{
5166		case STD_VIDEO_H264_SLICE_TYPE_P:		return "STD_VIDEO_H264_SLICE_TYPE_P";
5167		case STD_VIDEO_H264_SLICE_TYPE_B:		return "STD_VIDEO_H264_SLICE_TYPE_B";
5168		case STD_VIDEO_H264_SLICE_TYPE_I:		return "STD_VIDEO_H264_SLICE_TYPE_I";
5169		case STD_VIDEO_H264_SLICE_TYPE_INVALID:	return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
5170		default:								return DE_NULL;
5171	}
5172}
5173
5174const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
5175{
5176	switch (value)
5177	{
5178		case STD_VIDEO_H264_PICTURE_TYPE_P:			return "STD_VIDEO_H264_PICTURE_TYPE_P";
5179		case STD_VIDEO_H264_PICTURE_TYPE_B:			return "STD_VIDEO_H264_PICTURE_TYPE_B";
5180		case STD_VIDEO_H264_PICTURE_TYPE_I:			return "STD_VIDEO_H264_PICTURE_TYPE_I";
5181		case STD_VIDEO_H264_PICTURE_TYPE_IDR:		return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
5182		case STD_VIDEO_H264_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
5183		default:									return DE_NULL;
5184	}
5185}
5186
5187const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
5188{
5189	switch (value)
5190	{
5191		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
5192		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
5193		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
5194		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
5195		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
5196		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
5197		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
5198		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
5199		default:												return DE_NULL;
5200	}
5201}
5202
5203const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
5204{
5205	switch (value)
5206	{
5207		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:		return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
5208		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
5209		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
5210		default:												return DE_NULL;
5211	}
5212}
5213
5214const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
5215{
5216	switch (value)
5217	{
5218		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
5219		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
5220		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
5221		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
5222		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
5223		default:											return DE_NULL;
5224	}
5225}
5226
5227const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
5228{
5229	switch (value)
5230	{
5231		case STD_VIDEO_H265_PROFILE_IDC_MAIN:						return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
5232		case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:					return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
5233		case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:			return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
5234		case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:	return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
5235		case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:				return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
5236		case STD_VIDEO_H265_PROFILE_IDC_INVALID:					return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
5237		default:													return DE_NULL;
5238	}
5239}
5240
5241const char* getdVideoH265LevelIdcName (StdVideoH265LevelIdc value)
5242{
5243	switch (value)
5244	{
5245		case STD_VIDEO_H265_LEVEL_IDC_1_0:		return "STD_VIDEO_H265_LEVEL_IDC_1_0";
5246		case STD_VIDEO_H265_LEVEL_IDC_2_0:		return "STD_VIDEO_H265_LEVEL_IDC_2_0";
5247		case STD_VIDEO_H265_LEVEL_IDC_2_1:		return "STD_VIDEO_H265_LEVEL_IDC_2_1";
5248		case STD_VIDEO_H265_LEVEL_IDC_3_0:		return "STD_VIDEO_H265_LEVEL_IDC_3_0";
5249		case STD_VIDEO_H265_LEVEL_IDC_3_1:		return "STD_VIDEO_H265_LEVEL_IDC_3_1";
5250		case STD_VIDEO_H265_LEVEL_IDC_4_0:		return "STD_VIDEO_H265_LEVEL_IDC_4_0";
5251		case STD_VIDEO_H265_LEVEL_IDC_4_1:		return "STD_VIDEO_H265_LEVEL_IDC_4_1";
5252		case STD_VIDEO_H265_LEVEL_IDC_5_0:		return "STD_VIDEO_H265_LEVEL_IDC_5_0";
5253		case STD_VIDEO_H265_LEVEL_IDC_5_1:		return "STD_VIDEO_H265_LEVEL_IDC_5_1";
5254		case STD_VIDEO_H265_LEVEL_IDC_5_2:		return "STD_VIDEO_H265_LEVEL_IDC_5_2";
5255		case STD_VIDEO_H265_LEVEL_IDC_6_0:		return "STD_VIDEO_H265_LEVEL_IDC_6_0";
5256		case STD_VIDEO_H265_LEVEL_IDC_6_1:		return "STD_VIDEO_H265_LEVEL_IDC_6_1";
5257		case STD_VIDEO_H265_LEVEL_IDC_6_2:		return "STD_VIDEO_H265_LEVEL_IDC_6_2";
5258		case STD_VIDEO_H265_LEVEL_IDC_INVALID:	return "STD_VIDEO_H265_LEVEL_IDC_INVALID";
5259		default:								return DE_NULL;
5260	}
5261}
5262
5263const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
5264{
5265	switch (value)
5266	{
5267		case STD_VIDEO_H265_SLICE_TYPE_B:		return "STD_VIDEO_H265_SLICE_TYPE_B";
5268		case STD_VIDEO_H265_SLICE_TYPE_P:		return "STD_VIDEO_H265_SLICE_TYPE_P";
5269		case STD_VIDEO_H265_SLICE_TYPE_I:		return "STD_VIDEO_H265_SLICE_TYPE_I";
5270		case STD_VIDEO_H265_SLICE_TYPE_INVALID:	return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
5271		default:								return DE_NULL;
5272	}
5273}
5274
5275const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
5276{
5277	switch (value)
5278	{
5279		case STD_VIDEO_H265_PICTURE_TYPE_P:			return "STD_VIDEO_H265_PICTURE_TYPE_P";
5280		case STD_VIDEO_H265_PICTURE_TYPE_B:			return "STD_VIDEO_H265_PICTURE_TYPE_B";
5281		case STD_VIDEO_H265_PICTURE_TYPE_I:			return "STD_VIDEO_H265_PICTURE_TYPE_I";
5282		case STD_VIDEO_H265_PICTURE_TYPE_IDR:		return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
5283		case STD_VIDEO_H265_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
5284		default:									return DE_NULL;
5285	}
5286}
5287
5288const char* getdVideoH265AspectRatioIdcName (StdVideoH265AspectRatioIdc value)
5289{
5290	switch (value)
5291	{
5292		case STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED";
5293		case STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE";
5294		case STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11";
5295		case STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11";
5296		case STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11";
5297		case STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33";
5298		case STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11";
5299		case STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11";
5300		case STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11";
5301		case STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33";
5302		case STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11";
5303		case STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11";
5304		case STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33";
5305		case STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99";
5306		case STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3";
5307		case STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2";
5308		case STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1";
5309		case STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR";
5310		case STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID";
5311		default:											return DE_NULL;
5312	}
5313}
5314
5315const char* getdVideoAV1ProfileName (StdVideoAV1Profile value)
5316{
5317	switch (value)
5318	{
5319		case STD_VIDEO_AV1_PROFILE_MAIN:			return "STD_VIDEO_AV1_PROFILE_MAIN";
5320		case STD_VIDEO_AV1_PROFILE_HIGH:			return "STD_VIDEO_AV1_PROFILE_HIGH";
5321		case STD_VIDEO_AV1_PROFILE_PROFESSIONAL:	return "STD_VIDEO_AV1_PROFILE_PROFESSIONAL";
5322		case STD_VIDEO_AV1_PROFILE_INVALID:			return "STD_VIDEO_AV1_PROFILE_INVALID";
5323		default:									return DE_NULL;
5324	}
5325}
5326
5327const char* getdVideoAV1LevelName (StdVideoAV1Level value)
5328{
5329	switch (value)
5330	{
5331		case STD_VIDEO_AV1_LEVEL_2_0:		return "STD_VIDEO_AV1_LEVEL_2_0";
5332		case STD_VIDEO_AV1_LEVEL_2_1:		return "STD_VIDEO_AV1_LEVEL_2_1";
5333		case STD_VIDEO_AV1_LEVEL_2_2:		return "STD_VIDEO_AV1_LEVEL_2_2";
5334		case STD_VIDEO_AV1_LEVEL_2_3:		return "STD_VIDEO_AV1_LEVEL_2_3";
5335		case STD_VIDEO_AV1_LEVEL_3_0:		return "STD_VIDEO_AV1_LEVEL_3_0";
5336		case STD_VIDEO_AV1_LEVEL_3_1:		return "STD_VIDEO_AV1_LEVEL_3_1";
5337		case STD_VIDEO_AV1_LEVEL_3_2:		return "STD_VIDEO_AV1_LEVEL_3_2";
5338		case STD_VIDEO_AV1_LEVEL_3_3:		return "STD_VIDEO_AV1_LEVEL_3_3";
5339		case STD_VIDEO_AV1_LEVEL_4_0:		return "STD_VIDEO_AV1_LEVEL_4_0";
5340		case STD_VIDEO_AV1_LEVEL_4_1:		return "STD_VIDEO_AV1_LEVEL_4_1";
5341		case STD_VIDEO_AV1_LEVEL_4_2:		return "STD_VIDEO_AV1_LEVEL_4_2";
5342		case STD_VIDEO_AV1_LEVEL_4_3:		return "STD_VIDEO_AV1_LEVEL_4_3";
5343		case STD_VIDEO_AV1_LEVEL_5_0:		return "STD_VIDEO_AV1_LEVEL_5_0";
5344		case STD_VIDEO_AV1_LEVEL_5_1:		return "STD_VIDEO_AV1_LEVEL_5_1";
5345		case STD_VIDEO_AV1_LEVEL_5_2:		return "STD_VIDEO_AV1_LEVEL_5_2";
5346		case STD_VIDEO_AV1_LEVEL_5_3:		return "STD_VIDEO_AV1_LEVEL_5_3";
5347		case STD_VIDEO_AV1_LEVEL_6_0:		return "STD_VIDEO_AV1_LEVEL_6_0";
5348		case STD_VIDEO_AV1_LEVEL_6_1:		return "STD_VIDEO_AV1_LEVEL_6_1";
5349		case STD_VIDEO_AV1_LEVEL_6_2:		return "STD_VIDEO_AV1_LEVEL_6_2";
5350		case STD_VIDEO_AV1_LEVEL_6_3:		return "STD_VIDEO_AV1_LEVEL_6_3";
5351		case STD_VIDEO_AV1_LEVEL_7_0:		return "STD_VIDEO_AV1_LEVEL_7_0";
5352		case STD_VIDEO_AV1_LEVEL_7_1:		return "STD_VIDEO_AV1_LEVEL_7_1";
5353		case STD_VIDEO_AV1_LEVEL_7_2:		return "STD_VIDEO_AV1_LEVEL_7_2";
5354		case STD_VIDEO_AV1_LEVEL_7_3:		return "STD_VIDEO_AV1_LEVEL_7_3";
5355		case STD_VIDEO_AV1_LEVEL_INVALID:	return "STD_VIDEO_AV1_LEVEL_INVALID";
5356		default:							return DE_NULL;
5357	}
5358}
5359
5360const char* getdVideoAV1FrameTypeName (StdVideoAV1FrameType value)
5361{
5362	switch (value)
5363	{
5364		case STD_VIDEO_AV1_FRAME_TYPE_KEY:			return "STD_VIDEO_AV1_FRAME_TYPE_KEY";
5365		case STD_VIDEO_AV1_FRAME_TYPE_INTER:		return "STD_VIDEO_AV1_FRAME_TYPE_INTER";
5366		case STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY:	return "STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY";
5367		case STD_VIDEO_AV1_FRAME_TYPE_SWITCH:		return "STD_VIDEO_AV1_FRAME_TYPE_SWITCH";
5368		case STD_VIDEO_AV1_FRAME_TYPE_INVALID:		return "STD_VIDEO_AV1_FRAME_TYPE_INVALID";
5369		default:									return DE_NULL;
5370	}
5371}
5372
5373const char* getdVideoAV1ReferenceNameName (StdVideoAV1ReferenceName value)
5374{
5375	switch (value)
5376	{
5377		case STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME";
5378		case STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME";
5379		case STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME";
5380		case STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME";
5381		case STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME";
5382		case STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME";
5383		case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME:	return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME";
5384		case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME";
5385		case STD_VIDEO_AV1_REFERENCE_NAME_INVALID:			return "STD_VIDEO_AV1_REFERENCE_NAME_INVALID";
5386		default:											return DE_NULL;
5387	}
5388}
5389
5390const char* getdVideoAV1InterpolationFilterName (StdVideoAV1InterpolationFilter value)
5391{
5392	switch (value)
5393	{
5394		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP";
5395		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH:	return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH";
5396		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP:		return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP";
5397		case STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR";
5398		case STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE";
5399		case STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID";
5400		default:													return DE_NULL;
5401	}
5402}
5403
5404const char* getdVideoAV1TxModeName (StdVideoAV1TxMode value)
5405{
5406	switch (value)
5407	{
5408		case STD_VIDEO_AV1_TX_MODE_ONLY_4X4:	return "STD_VIDEO_AV1_TX_MODE_ONLY_4X4";
5409		case STD_VIDEO_AV1_TX_MODE_LARGEST:		return "STD_VIDEO_AV1_TX_MODE_LARGEST";
5410		case STD_VIDEO_AV1_TX_MODE_SELECT:		return "STD_VIDEO_AV1_TX_MODE_SELECT";
5411		case STD_VIDEO_AV1_TX_MODE_INVALID:		return "STD_VIDEO_AV1_TX_MODE_INVALID";
5412		default:								return DE_NULL;
5413	}
5414}
5415
5416const char* getdVideoAV1FrameRestorationTypeName (StdVideoAV1FrameRestorationType value)
5417{
5418	switch (value)
5419	{
5420		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE:			return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE";
5421		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER";
5422		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ";
5423		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE:	return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE";
5424		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID";
5425		default:												return DE_NULL;
5426	}
5427}
5428
5429tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
5430{
5431	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5432}
5433
5434tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
5435{
5436	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5437}
5438
5439tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
5440{
5441	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5442}
5443
5444tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
5445{
5446	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5447}
5448
5449tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
5450{
5451	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5452}
5453
5454tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
5455{
5456	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5457}
5458
5459tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
5460{
5461	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5462}
5463
5464tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
5465{
5466	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5467}
5468
5469tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
5470{
5471	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5472}
5473
5474tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
5475{
5476	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5477}
5478
5479tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
5480{
5481	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5482}
5483
5484tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
5485{
5486	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5487}
5488
5489tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
5490{
5491	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5492}
5493
5494tcu::Format::Bitfield<32> getMemoryUnmapFlagsKHRStr (VkMemoryUnmapFlagsKHR value)
5495{
5496	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5497}
5498
5499tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
5500{
5501	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5502}
5503
5504tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
5505{
5506	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5507}
5508
5509tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
5510{
5511	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5512}
5513
5514tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
5515{
5516	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5517}
5518
5519tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
5520{
5521	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5522}
5523
5524tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
5525{
5526	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5527}
5528
5529tcu::Format::Bitfield<32> getRefreshObjectFlagsKHRStr (VkRefreshObjectFlagsKHR value)
5530{
5531	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5532}
5533
5534tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
5535{
5536	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5537}
5538
5539tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
5540{
5541	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5542}
5543
5544tcu::Format::Bitfield<32> getDirectDriverLoadingFlagsLUNARGStr (VkDirectDriverLoadingFlagsLUNARG value)
5545{
5546	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5547}
5548
5549tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
5550{
5551	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5552}
5553
5554tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
5555{
5556	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5557}
5558
5559tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
5560{
5561	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5562}
5563
5564tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
5565{
5566	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5567}
5568
5569tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
5570{
5571	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5572}
5573
5574tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
5575{
5576	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5577}
5578
5579tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
5580{
5581	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5582}
5583
5584tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
5585{
5586	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5587}
5588
5589tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
5590{
5591	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5592}
5593
5594tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
5595{
5596	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5597}
5598
5599tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
5600{
5601	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5602}
5603
5604tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
5605{
5606	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5607}
5608
5609tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
5610{
5611	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5612}
5613
5614tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
5615{
5616	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5617}
5618
5619tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
5620{
5621	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5622}
5623
5624tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
5625{
5626	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5627}
5628
5629tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
5630{
5631	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5632}
5633
5634tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
5635{
5636	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5637}
5638
5639tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
5640{
5641	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5642}
5643
5644tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
5645{
5646	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5647}
5648
5649tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
5650{
5651	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5652}
5653
5654tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
5655{
5656	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5657}
5658
5659tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
5660{
5661	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5662}
5663
5664tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
5665{
5666	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5667}
5668
5669tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
5670{
5671	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5672}
5673
5674tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
5675{
5676	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5677}
5678
5679tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
5680{
5681	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5682}
5683
5684tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
5685{
5686	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5687}
5688
5689tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
5690{
5691	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5692}
5693
5694tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
5695{
5696	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5697}
5698
5699tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
5700{
5701	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5702}
5703
5704tcu::Format::Bitfield<32> getVideoSessionParametersCreateFlagsKHRStr (VkVideoSessionParametersCreateFlagsKHR value)
5705{
5706	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5707}
5708
5709tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
5710{
5711	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5712}
5713
5714tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
5715{
5716	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5717}
5718
5719tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
5720{
5721	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5722}
5723
5724tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
5725{
5726	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5727}
5728
5729tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
5730{
5731	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5732}
5733
5734std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
5735{
5736	s << "VkBaseOutStructure = {\n";
5737	s << "\tsType = " << value.sType << '\n';
5738	s << "\tpNext = " << value.pNext << '\n';
5739	s << '}';
5740	return s;
5741}
5742
5743std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
5744{
5745	s << "VkBaseInStructure = {\n";
5746	s << "\tsType = " << value.sType << '\n';
5747	s << "\tpNext = " << value.pNext << '\n';
5748	s << '}';
5749	return s;
5750}
5751
5752std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
5753{
5754	s << "VkOffset2D = {\n";
5755	s << "\tx = " << value.x << '\n';
5756	s << "\ty = " << value.y << '\n';
5757	s << '}';
5758	return s;
5759}
5760
5761std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
5762{
5763	s << "VkOffset3D = {\n";
5764	s << "\tx = " << value.x << '\n';
5765	s << "\ty = " << value.y << '\n';
5766	s << "\tz = " << value.z << '\n';
5767	s << '}';
5768	return s;
5769}
5770
5771std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
5772{
5773	s << "VkExtent2D = {\n";
5774	s << "\twidth = " << value.width << '\n';
5775	s << "\theight = " << value.height << '\n';
5776	s << '}';
5777	return s;
5778}
5779
5780std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
5781{
5782	s << "VkExtent3D = {\n";
5783	s << "\twidth = " << value.width << '\n';
5784	s << "\theight = " << value.height << '\n';
5785	s << "\tdepth = " << value.depth << '\n';
5786	s << '}';
5787	return s;
5788}
5789
5790std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5791{
5792	s << "VkViewport = {\n";
5793	s << "\tx = " << value.x << '\n';
5794	s << "\ty = " << value.y << '\n';
5795	s << "\twidth = " << value.width << '\n';
5796	s << "\theight = " << value.height << '\n';
5797	s << "\tminDepth = " << value.minDepth << '\n';
5798	s << "\tmaxDepth = " << value.maxDepth << '\n';
5799	s << '}';
5800	return s;
5801}
5802
5803std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
5804{
5805	s << "VkRect2D = {\n";
5806	s << "\toffset = " << value.offset << '\n';
5807	s << "\textent = " << value.extent << '\n';
5808	s << '}';
5809	return s;
5810}
5811
5812std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
5813{
5814	s << "VkClearRect = {\n";
5815	s << "\trect = " << value.rect << '\n';
5816	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5817	s << "\tlayerCount = " << value.layerCount << '\n';
5818	s << '}';
5819	return s;
5820}
5821
5822std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5823{
5824	s << "VkComponentMapping = {\n";
5825	s << "\tr = " << value.r << '\n';
5826	s << "\tg = " << value.g << '\n';
5827	s << "\tb = " << value.b << '\n';
5828	s << "\ta = " << value.a << '\n';
5829	s << '}';
5830	return s;
5831}
5832
5833std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
5834{
5835	s << "VkPhysicalDeviceProperties = {\n";
5836	s << "\tapiVersion = " << value.apiVersion << '\n';
5837	s << "\tdriverVersion = " << value.driverVersion << '\n';
5838	s << "\tvendorID = " << value.vendorID << '\n';
5839	s << "\tdeviceID = " << value.deviceID << '\n';
5840	s << "\tdeviceType = " << value.deviceType << '\n';
5841	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
5842	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';
5843	s << "\tlimits = " << value.limits << '\n';
5844	s << "\tsparseProperties = " << value.sparseProperties << '\n';
5845	s << '}';
5846	return s;
5847}
5848
5849std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
5850{
5851	s << "VkExtensionProperties = {\n";
5852	s << "\textensionName = " << (const char*)value.extensionName << '\n';
5853	s << "\tspecVersion = " << value.specVersion << '\n';
5854	s << '}';
5855	return s;
5856}
5857
5858std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
5859{
5860	s << "VkLayerProperties = {\n";
5861	s << "\tlayerName = " << (const char*)value.layerName << '\n';
5862	s << "\tspecVersion = " << value.specVersion << '\n';
5863	s << "\timplementationVersion = " << value.implementationVersion << '\n';
5864	s << "\tdescription = " << (const char*)value.description << '\n';
5865	s << '}';
5866	return s;
5867}
5868
5869std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
5870{
5871	s << "VkApplicationInfo = {\n";
5872	s << "\tsType = " << value.sType << '\n';
5873	s << "\tpNext = " << value.pNext << '\n';
5874	s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
5875	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
5876	s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
5877	s << "\tengineVersion = " << value.engineVersion << '\n';
5878	s << "\tapiVersion = " << value.apiVersion << '\n';
5879	s << '}';
5880	return s;
5881}
5882
5883std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
5884{
5885	s << "VkAllocationCallbacks = {\n";
5886	s << "\tpUserData = " << value.pUserData << '\n';
5887	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
5888	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
5889	s << "\tpfnFree = " << value.pfnFree << '\n';
5890	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
5891	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
5892	s << '}';
5893	return s;
5894}
5895
5896std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
5897{
5898	s << "VkDeviceQueueCreateInfo = {\n";
5899	s << "\tsType = " << value.sType << '\n';
5900	s << "\tpNext = " << value.pNext << '\n';
5901	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
5902	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5903	s << "\tqueueCount = " << value.queueCount << '\n';
5904	s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
5905	s << '}';
5906	return s;
5907}
5908
5909std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
5910{
5911	s << "VkDeviceCreateInfo = {\n";
5912	s << "\tsType = " << value.sType << '\n';
5913	s << "\tpNext = " << value.pNext << '\n';
5914	s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
5915	s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
5916	s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
5917	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5918	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5919	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5920	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5921	s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
5922	s << '}';
5923	return s;
5924}
5925
5926std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
5927{
5928	s << "VkInstanceCreateInfo = {\n";
5929	s << "\tsType = " << value.sType << '\n';
5930	s << "\tpNext = " << value.pNext << '\n';
5931	s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
5932	s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
5933	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5934	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5935	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5936	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5937	s << '}';
5938	return s;
5939}
5940
5941std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
5942{
5943	s << "VkQueueFamilyProperties = {\n";
5944	s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
5945	s << "\tqueueCount = " << value.queueCount << '\n';
5946	s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
5947	s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5948	s << '}';
5949	return s;
5950}
5951
5952std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5953{
5954	s << "VkPhysicalDeviceMemoryProperties = {\n";
5955	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5956	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5957	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5958	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5959	s << '}';
5960	return s;
5961}
5962
5963std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5964{
5965	s << "VkMemoryAllocateInfo = {\n";
5966	s << "\tsType = " << value.sType << '\n';
5967	s << "\tpNext = " << value.pNext << '\n';
5968	s << "\tallocationSize = " << value.allocationSize << '\n';
5969	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5970	s << '}';
5971	return s;
5972}
5973
5974std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5975{
5976	s << "VkMemoryRequirements = {\n";
5977	s << "\tsize = " << value.size << '\n';
5978	s << "\talignment = " << value.alignment << '\n';
5979	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5980	s << '}';
5981	return s;
5982}
5983
5984std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5985{
5986	s << "VkSparseImageFormatProperties = {\n";
5987	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5988	s << "\timageGranularity = " << value.imageGranularity << '\n';
5989	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5990	s << '}';
5991	return s;
5992}
5993
5994std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5995{
5996	s << "VkSparseImageMemoryRequirements = {\n";
5997	s << "\tformatProperties = " << value.formatProperties << '\n';
5998	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5999	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
6000	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
6001	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
6002	s << '}';
6003	return s;
6004}
6005
6006std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
6007{
6008	s << "VkMemoryType = {\n";
6009	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
6010	s << "\theapIndex = " << value.heapIndex << '\n';
6011	s << '}';
6012	return s;
6013}
6014
6015std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
6016{
6017	s << "VkMemoryHeap = {\n";
6018	s << "\tsize = " << value.size << '\n';
6019	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
6020	s << '}';
6021	return s;
6022}
6023
6024std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
6025{
6026	s << "VkMappedMemoryRange = {\n";
6027	s << "\tsType = " << value.sType << '\n';
6028	s << "\tpNext = " << value.pNext << '\n';
6029	s << "\tmemory = " << value.memory << '\n';
6030	s << "\toffset = " << value.offset << '\n';
6031	s << "\tsize = " << value.size << '\n';
6032	s << '}';
6033	return s;
6034}
6035
6036std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
6037{
6038	s << "VkFormatProperties = {\n";
6039	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
6040	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
6041	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
6042	s << '}';
6043	return s;
6044}
6045
6046std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
6047{
6048	s << "VkImageFormatProperties = {\n";
6049	s << "\tmaxExtent = " << value.maxExtent << '\n';
6050	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
6051	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
6052	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
6053	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
6054	s << '}';
6055	return s;
6056}
6057
6058std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
6059{
6060	s << "VkDescriptorBufferInfo = {\n";
6061	s << "\tbuffer = " << value.buffer << '\n';
6062	s << "\toffset = " << value.offset << '\n';
6063	s << "\trange = " << value.range << '\n';
6064	s << '}';
6065	return s;
6066}
6067
6068std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
6069{
6070	s << "VkDescriptorImageInfo = {\n";
6071	s << "\tsampler = " << value.sampler << '\n';
6072	s << "\timageView = " << value.imageView << '\n';
6073	s << "\timageLayout = " << value.imageLayout << '\n';
6074	s << '}';
6075	return s;
6076}
6077
6078std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
6079{
6080	s << "VkWriteDescriptorSet = {\n";
6081	s << "\tsType = " << value.sType << '\n';
6082	s << "\tpNext = " << value.pNext << '\n';
6083	s << "\tdstSet = " << value.dstSet << '\n';
6084	s << "\tdstBinding = " << value.dstBinding << '\n';
6085	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6086	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6087	s << "\tdescriptorType = " << value.descriptorType << '\n';
6088	s << "\tpImageInfo = " << value.pImageInfo << '\n';
6089	s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
6090	s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
6091	s << '}';
6092	return s;
6093}
6094
6095std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
6096{
6097	s << "VkCopyDescriptorSet = {\n";
6098	s << "\tsType = " << value.sType << '\n';
6099	s << "\tpNext = " << value.pNext << '\n';
6100	s << "\tsrcSet = " << value.srcSet << '\n';
6101	s << "\tsrcBinding = " << value.srcBinding << '\n';
6102	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
6103	s << "\tdstSet = " << value.dstSet << '\n';
6104	s << "\tdstBinding = " << value.dstBinding << '\n';
6105	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6106	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6107	s << '}';
6108	return s;
6109}
6110
6111std::ostream& operator<< (std::ostream& s, const VkBufferUsageFlags2CreateInfoKHR& value)
6112{
6113	s << "VkBufferUsageFlags2CreateInfoKHR = {\n";
6114	s << "\tsType = " << value.sType << '\n';
6115	s << "\tpNext = " << value.pNext << '\n';
6116	s << "\tusage = " << getBufferUsageFlags2KHRStr(value.usage) << '\n';
6117	s << '}';
6118	return s;
6119}
6120
6121std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
6122{
6123	s << "VkBufferCreateInfo = {\n";
6124	s << "\tsType = " << value.sType << '\n';
6125	s << "\tpNext = " << value.pNext << '\n';
6126	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6127	s << "\tsize = " << value.size << '\n';
6128	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6129	s << "\tsharingMode = " << value.sharingMode << '\n';
6130	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6131	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6132	s << '}';
6133	return s;
6134}
6135
6136std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
6137{
6138	s << "VkBufferViewCreateInfo = {\n";
6139	s << "\tsType = " << value.sType << '\n';
6140	s << "\tpNext = " << value.pNext << '\n';
6141	s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
6142	s << "\tbuffer = " << value.buffer << '\n';
6143	s << "\tformat = " << value.format << '\n';
6144	s << "\toffset = " << value.offset << '\n';
6145	s << "\trange = " << value.range << '\n';
6146	s << '}';
6147	return s;
6148}
6149
6150std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
6151{
6152	s << "VkImageSubresource = {\n";
6153	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6154	s << "\tmipLevel = " << value.mipLevel << '\n';
6155	s << "\tarrayLayer = " << value.arrayLayer << '\n';
6156	s << '}';
6157	return s;
6158}
6159
6160std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
6161{
6162	s << "VkImageSubresourceLayers = {\n";
6163	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6164	s << "\tmipLevel = " << value.mipLevel << '\n';
6165	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6166	s << "\tlayerCount = " << value.layerCount << '\n';
6167	s << '}';
6168	return s;
6169}
6170
6171std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
6172{
6173	s << "VkImageSubresourceRange = {\n";
6174	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6175	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
6176	s << "\tlevelCount = " << value.levelCount << '\n';
6177	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6178	s << "\tlayerCount = " << value.layerCount << '\n';
6179	s << '}';
6180	return s;
6181}
6182
6183std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
6184{
6185	s << "VkMemoryBarrier = {\n";
6186	s << "\tsType = " << value.sType << '\n';
6187	s << "\tpNext = " << value.pNext << '\n';
6188	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6189	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6190	s << '}';
6191	return s;
6192}
6193
6194std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
6195{
6196	s << "VkBufferMemoryBarrier = {\n";
6197	s << "\tsType = " << value.sType << '\n';
6198	s << "\tpNext = " << value.pNext << '\n';
6199	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6200	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6201	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
6202	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
6203	s << "\tbuffer = " << value.buffer << '\n';
6204	s << "\toffset = " << value.offset << '\n';
6205	s << "\tsize = " << value.size << '\n';
6206	s << '}';
6207	return s;
6208}
6209
6210std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
6211{
6212	s << "VkImageMemoryBarrier = {\n";
6213	s << "\tsType = " << value.sType << '\n';
6214	s << "\tpNext = " << value.pNext << '\n';
6215	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6216	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6217	s << "\toldLayout = " << value.oldLayout << '\n';
6218	s << "\tnewLayout = " << value.newLayout << '\n';
6219	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
6220	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
6221	s << "\timage = " << value.image << '\n';
6222	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
6223	s << '}';
6224	return s;
6225}
6226
6227std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
6228{
6229	s << "VkImageCreateInfo = {\n";
6230	s << "\tsType = " << value.sType << '\n';
6231	s << "\tpNext = " << value.pNext << '\n';
6232	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6233	s << "\timageType = " << value.imageType << '\n';
6234	s << "\tformat = " << value.format << '\n';
6235	s << "\textent = " << value.extent << '\n';
6236	s << "\tmipLevels = " << value.mipLevels << '\n';
6237	s << "\tarrayLayers = " << value.arrayLayers << '\n';
6238	s << "\tsamples = " << value.samples << '\n';
6239	s << "\ttiling = " << value.tiling << '\n';
6240	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6241	s << "\tsharingMode = " << value.sharingMode << '\n';
6242	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6243	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6244	s << "\tinitialLayout = " << value.initialLayout << '\n';
6245	s << '}';
6246	return s;
6247}
6248
6249std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
6250{
6251	s << "VkSubresourceLayout = {\n";
6252	s << "\toffset = " << value.offset << '\n';
6253	s << "\tsize = " << value.size << '\n';
6254	s << "\trowPitch = " << value.rowPitch << '\n';
6255	s << "\tarrayPitch = " << value.arrayPitch << '\n';
6256	s << "\tdepthPitch = " << value.depthPitch << '\n';
6257	s << '}';
6258	return s;
6259}
6260
6261std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
6262{
6263	s << "VkImageViewCreateInfo = {\n";
6264	s << "\tsType = " << value.sType << '\n';
6265	s << "\tpNext = " << value.pNext << '\n';
6266	s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
6267	s << "\timage = " << value.image << '\n';
6268	s << "\tviewType = " << value.viewType << '\n';
6269	s << "\tformat = " << value.format << '\n';
6270	s << "\tcomponents = " << value.components << '\n';
6271	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
6272	s << '}';
6273	return s;
6274}
6275
6276std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
6277{
6278	s << "VkBufferCopy = {\n";
6279	s << "\tsrcOffset = " << value.srcOffset << '\n';
6280	s << "\tdstOffset = " << value.dstOffset << '\n';
6281	s << "\tsize = " << value.size << '\n';
6282	s << '}';
6283	return s;
6284}
6285
6286std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
6287{
6288	s << "VkSparseMemoryBind = {\n";
6289	s << "\tresourceOffset = " << value.resourceOffset << '\n';
6290	s << "\tsize = " << value.size << '\n';
6291	s << "\tmemory = " << value.memory << '\n';
6292	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6293	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
6294	s << '}';
6295	return s;
6296}
6297
6298std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
6299{
6300	s << "VkSparseImageMemoryBind = {\n";
6301	s << "\tsubresource = " << value.subresource << '\n';
6302	s << "\toffset = " << value.offset << '\n';
6303	s << "\textent = " << value.extent << '\n';
6304	s << "\tmemory = " << value.memory << '\n';
6305	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6306	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
6307	s << '}';
6308	return s;
6309}
6310
6311std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
6312{
6313	s << "VkSparseBufferMemoryBindInfo = {\n";
6314	s << "\tbuffer = " << value.buffer << '\n';
6315	s << "\tbindCount = " << value.bindCount << '\n';
6316	s << "\tpBinds = " << value.pBinds << '\n';
6317	s << '}';
6318	return s;
6319}
6320
6321std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
6322{
6323	s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
6324	s << "\timage = " << value.image << '\n';
6325	s << "\tbindCount = " << value.bindCount << '\n';
6326	s << "\tpBinds = " << value.pBinds << '\n';
6327	s << '}';
6328	return s;
6329}
6330
6331std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
6332{
6333	s << "VkSparseImageMemoryBindInfo = {\n";
6334	s << "\timage = " << value.image << '\n';
6335	s << "\tbindCount = " << value.bindCount << '\n';
6336	s << "\tpBinds = " << value.pBinds << '\n';
6337	s << '}';
6338	return s;
6339}
6340
6341std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
6342{
6343	s << "VkBindSparseInfo = {\n";
6344	s << "\tsType = " << value.sType << '\n';
6345	s << "\tpNext = " << value.pNext << '\n';
6346	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6347	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6348	s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
6349	s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
6350	s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
6351	s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
6352	s << "\timageBindCount = " << value.imageBindCount << '\n';
6353	s << "\tpImageBinds = " << value.pImageBinds << '\n';
6354	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6355	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
6356	s << '}';
6357	return s;
6358}
6359
6360std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
6361{
6362	s << "VkImageCopy = {\n";
6363	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6364	s << "\tsrcOffset = " << value.srcOffset << '\n';
6365	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6366	s << "\tdstOffset = " << value.dstOffset << '\n';
6367	s << "\textent = " << value.extent << '\n';
6368	s << '}';
6369	return s;
6370}
6371
6372std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
6373{
6374	s << "VkImageBlit = {\n";
6375	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6376	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
6377	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6378	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
6379	s << '}';
6380	return s;
6381}
6382
6383std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
6384{
6385	s << "VkBufferImageCopy = {\n";
6386	s << "\tbufferOffset = " << value.bufferOffset << '\n';
6387	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6388	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6389	s << "\timageSubresource = " << value.imageSubresource << '\n';
6390	s << "\timageOffset = " << value.imageOffset << '\n';
6391	s << "\timageExtent = " << value.imageExtent << '\n';
6392	s << '}';
6393	return s;
6394}
6395
6396std::ostream& operator<< (std::ostream& s, const VkCopyMemoryIndirectCommandNV& value)
6397{
6398	s << "VkCopyMemoryIndirectCommandNV = {\n";
6399	s << "\tsrcAddress = " << value.srcAddress << '\n';
6400	s << "\tdstAddress = " << value.dstAddress << '\n';
6401	s << "\tsize = " << value.size << '\n';
6402	s << '}';
6403	return s;
6404}
6405
6406std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToImageIndirectCommandNV& value)
6407{
6408	s << "VkCopyMemoryToImageIndirectCommandNV = {\n";
6409	s << "\tsrcAddress = " << value.srcAddress << '\n';
6410	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6411	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6412	s << "\timageSubresource = " << value.imageSubresource << '\n';
6413	s << "\timageOffset = " << value.imageOffset << '\n';
6414	s << "\timageExtent = " << value.imageExtent << '\n';
6415	s << '}';
6416	return s;
6417}
6418
6419std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
6420{
6421	s << "VkImageResolve = {\n";
6422	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6423	s << "\tsrcOffset = " << value.srcOffset << '\n';
6424	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6425	s << "\tdstOffset = " << value.dstOffset << '\n';
6426	s << "\textent = " << value.extent << '\n';
6427	s << '}';
6428	return s;
6429}
6430
6431std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
6432{
6433	s << "VkShaderModuleCreateInfo = {\n";
6434	s << "\tsType = " << value.sType << '\n';
6435	s << "\tpNext = " << value.pNext << '\n';
6436	s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
6437	s << "\tcodeSize = " << value.codeSize << '\n';
6438	s << "\tpCode = " << value.pCode << '\n';
6439	s << '}';
6440	return s;
6441}
6442
6443std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
6444{
6445	s << "VkDescriptorSetLayoutBinding = {\n";
6446	s << "\tbinding = " << value.binding << '\n';
6447	s << "\tdescriptorType = " << value.descriptorType << '\n';
6448	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6449	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6450	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
6451	s << '}';
6452	return s;
6453}
6454
6455std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
6456{
6457	s << "VkDescriptorSetLayoutCreateInfo = {\n";
6458	s << "\tsType = " << value.sType << '\n';
6459	s << "\tpNext = " << value.pNext << '\n';
6460	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
6461	s << "\tbindingCount = " << value.bindingCount << '\n';
6462	s << "\tpBindings = " << value.pBindings << '\n';
6463	s << '}';
6464	return s;
6465}
6466
6467std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
6468{
6469	s << "VkDescriptorPoolSize = {\n";
6470	s << "\ttype = " << value.type << '\n';
6471	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6472	s << '}';
6473	return s;
6474}
6475
6476std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
6477{
6478	s << "VkDescriptorPoolCreateInfo = {\n";
6479	s << "\tsType = " << value.sType << '\n';
6480	s << "\tpNext = " << value.pNext << '\n';
6481	s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
6482	s << "\tmaxSets = " << value.maxSets << '\n';
6483	s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
6484	s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
6485	s << '}';
6486	return s;
6487}
6488
6489std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
6490{
6491	s << "VkDescriptorSetAllocateInfo = {\n";
6492	s << "\tsType = " << value.sType << '\n';
6493	s << "\tpNext = " << value.pNext << '\n';
6494	s << "\tdescriptorPool = " << value.descriptorPool << '\n';
6495	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
6496	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6497	s << '}';
6498	return s;
6499}
6500
6501std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
6502{
6503	s << "VkSpecializationMapEntry = {\n";
6504	s << "\tconstantID = " << value.constantID << '\n';
6505	s << "\toffset = " << value.offset << '\n';
6506	s << "\tsize = " << value.size << '\n';
6507	s << '}';
6508	return s;
6509}
6510
6511std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
6512{
6513	s << "VkSpecializationInfo = {\n";
6514	s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
6515	s << "\tpMapEntries = " << value.pMapEntries << '\n';
6516	s << "\tdataSize = " << value.dataSize << '\n';
6517	s << "\tpData = " << value.pData << '\n';
6518	s << '}';
6519	return s;
6520}
6521
6522std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
6523{
6524	s << "VkPipelineShaderStageCreateInfo = {\n";
6525	s << "\tsType = " << value.sType << '\n';
6526	s << "\tpNext = " << value.pNext << '\n';
6527	s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
6528	s << "\tstage = " << value.stage << '\n';
6529	s << "\tmodule = " << value.module << '\n';
6530	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
6531	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
6532	s << '}';
6533	return s;
6534}
6535
6536std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
6537{
6538	s << "VkComputePipelineCreateInfo = {\n";
6539	s << "\tsType = " << value.sType << '\n';
6540	s << "\tpNext = " << value.pNext << '\n';
6541	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6542	s << "\tstage = " << value.stage << '\n';
6543	s << "\tlayout = " << value.layout << '\n';
6544	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6545	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6546	s << '}';
6547	return s;
6548}
6549
6550std::ostream& operator<< (std::ostream& s, const VkComputePipelineIndirectBufferInfoNV& value)
6551{
6552	s << "VkComputePipelineIndirectBufferInfoNV = {\n";
6553	s << "\tsType = " << value.sType << '\n';
6554	s << "\tpNext = " << value.pNext << '\n';
6555	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
6556	s << "\tsize = " << value.size << '\n';
6557	s << "\tpipelineDeviceAddressCaptureReplay = " << value.pipelineDeviceAddressCaptureReplay << '\n';
6558	s << '}';
6559	return s;
6560}
6561
6562std::ostream& operator<< (std::ostream& s, const VkPipelineCreateFlags2CreateInfoKHR& value)
6563{
6564	s << "VkPipelineCreateFlags2CreateInfoKHR = {\n";
6565	s << "\tsType = " << value.sType << '\n';
6566	s << "\tpNext = " << value.pNext << '\n';
6567	s << "\tflags = " << getPipelineCreateFlags2KHRStr(value.flags) << '\n';
6568	s << '}';
6569	return s;
6570}
6571
6572std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
6573{
6574	s << "VkVertexInputBindingDescription = {\n";
6575	s << "\tbinding = " << value.binding << '\n';
6576	s << "\tstride = " << value.stride << '\n';
6577	s << "\tinputRate = " << value.inputRate << '\n';
6578	s << '}';
6579	return s;
6580}
6581
6582std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
6583{
6584	s << "VkVertexInputAttributeDescription = {\n";
6585	s << "\tlocation = " << value.location << '\n';
6586	s << "\tbinding = " << value.binding << '\n';
6587	s << "\tformat = " << value.format << '\n';
6588	s << "\toffset = " << value.offset << '\n';
6589	s << '}';
6590	return s;
6591}
6592
6593std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
6594{
6595	s << "VkPipelineVertexInputStateCreateInfo = {\n";
6596	s << "\tsType = " << value.sType << '\n';
6597	s << "\tpNext = " << value.pNext << '\n';
6598	s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
6599	s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
6600	s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
6601	s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
6602	s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
6603	s << '}';
6604	return s;
6605}
6606
6607std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
6608{
6609	s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
6610	s << "\tsType = " << value.sType << '\n';
6611	s << "\tpNext = " << value.pNext << '\n';
6612	s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
6613	s << "\ttopology = " << value.topology << '\n';
6614	s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
6615	s << '}';
6616	return s;
6617}
6618
6619std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
6620{
6621	s << "VkPipelineTessellationStateCreateInfo = {\n";
6622	s << "\tsType = " << value.sType << '\n';
6623	s << "\tpNext = " << value.pNext << '\n';
6624	s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
6625	s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
6626	s << '}';
6627	return s;
6628}
6629
6630std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
6631{
6632	s << "VkPipelineViewportStateCreateInfo = {\n";
6633	s << "\tsType = " << value.sType << '\n';
6634	s << "\tpNext = " << value.pNext << '\n';
6635	s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
6636	s << "\tviewportCount = " << value.viewportCount << '\n';
6637	s << "\tpViewports = " << value.pViewports << '\n';
6638	s << "\tscissorCount = " << value.scissorCount << '\n';
6639	s << "\tpScissors = " << value.pScissors << '\n';
6640	s << '}';
6641	return s;
6642}
6643
6644std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
6645{
6646	s << "VkPipelineRasterizationStateCreateInfo = {\n";
6647	s << "\tsType = " << value.sType << '\n';
6648	s << "\tpNext = " << value.pNext << '\n';
6649	s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
6650	s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
6651	s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
6652	s << "\tpolygonMode = " << value.polygonMode << '\n';
6653	s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
6654	s << "\tfrontFace = " << value.frontFace << '\n';
6655	s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
6656	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
6657	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
6658	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
6659	s << "\tlineWidth = " << value.lineWidth << '\n';
6660	s << '}';
6661	return s;
6662}
6663
6664std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
6665{
6666	s << "VkPipelineMultisampleStateCreateInfo = {\n";
6667	s << "\tsType = " << value.sType << '\n';
6668	s << "\tpNext = " << value.pNext << '\n';
6669	s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
6670	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
6671	s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
6672	s << "\tminSampleShading = " << value.minSampleShading << '\n';
6673	s << "\tpSampleMask = " << value.pSampleMask << '\n';
6674	s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
6675	s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
6676	s << '}';
6677	return s;
6678}
6679
6680std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
6681{
6682	s << "VkPipelineColorBlendAttachmentState = {\n";
6683	s << "\tblendEnable = " << value.blendEnable << '\n';
6684	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
6685	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
6686	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
6687	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
6688	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
6689	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
6690	s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
6691	s << '}';
6692	return s;
6693}
6694
6695std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
6696{
6697	s << "VkPipelineColorBlendStateCreateInfo = {\n";
6698	s << "\tsType = " << value.sType << '\n';
6699	s << "\tpNext = " << value.pNext << '\n';
6700	s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
6701	s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
6702	s << "\tlogicOp = " << value.logicOp << '\n';
6703	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6704	s << "\tpAttachments = " << value.pAttachments << '\n';
6705	s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
6706	s << '}';
6707	return s;
6708}
6709
6710std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
6711{
6712	s << "VkPipelineDynamicStateCreateInfo = {\n";
6713	s << "\tsType = " << value.sType << '\n';
6714	s << "\tpNext = " << value.pNext << '\n';
6715	s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
6716	s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
6717	s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
6718	s << '}';
6719	return s;
6720}
6721
6722std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
6723{
6724	s << "VkStencilOpState = {\n";
6725	s << "\tfailOp = " << value.failOp << '\n';
6726	s << "\tpassOp = " << value.passOp << '\n';
6727	s << "\tdepthFailOp = " << value.depthFailOp << '\n';
6728	s << "\tcompareOp = " << value.compareOp << '\n';
6729	s << "\tcompareMask = " << value.compareMask << '\n';
6730	s << "\twriteMask = " << value.writeMask << '\n';
6731	s << "\treference = " << value.reference << '\n';
6732	s << '}';
6733	return s;
6734}
6735
6736std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
6737{
6738	s << "VkPipelineDepthStencilStateCreateInfo = {\n";
6739	s << "\tsType = " << value.sType << '\n';
6740	s << "\tpNext = " << value.pNext << '\n';
6741	s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
6742	s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
6743	s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
6744	s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
6745	s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
6746	s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
6747	s << "\tfront = " << value.front << '\n';
6748	s << "\tback = " << value.back << '\n';
6749	s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
6750	s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
6751	s << '}';
6752	return s;
6753}
6754
6755std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
6756{
6757	s << "VkGraphicsPipelineCreateInfo = {\n";
6758	s << "\tsType = " << value.sType << '\n';
6759	s << "\tpNext = " << value.pNext << '\n';
6760	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6761	s << "\tstageCount = " << value.stageCount << '\n';
6762	s << "\tpStages = " << value.pStages << '\n';
6763	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
6764	s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
6765	s << "\tpTessellationState = " << value.pTessellationState << '\n';
6766	s << "\tpViewportState = " << value.pViewportState << '\n';
6767	s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
6768	s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
6769	s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
6770	s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
6771	s << "\tpDynamicState = " << value.pDynamicState << '\n';
6772	s << "\tlayout = " << value.layout << '\n';
6773	s << "\trenderPass = " << value.renderPass << '\n';
6774	s << "\tsubpass = " << value.subpass << '\n';
6775	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6776	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6777	s << '}';
6778	return s;
6779}
6780
6781std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
6782{
6783	s << "VkPipelineCacheCreateInfo = {\n";
6784	s << "\tsType = " << value.sType << '\n';
6785	s << "\tpNext = " << value.pNext << '\n';
6786	s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
6787	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
6788	s << "\tpInitialData = " << value.pInitialData << '\n';
6789	s << '}';
6790	return s;
6791}
6792
6793std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
6794{
6795	s << "VkPipelineCacheHeaderVersionOne = {\n";
6796	s << "\theaderSize = " << value.headerSize << '\n';
6797	s << "\theaderVersion = " << value.headerVersion << '\n';
6798	s << "\tvendorID = " << value.vendorID << '\n';
6799	s << "\tdeviceID = " << value.deviceID << '\n';
6800	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';
6801	s << '}';
6802	return s;
6803}
6804
6805std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
6806{
6807	s << "VkPushConstantRange = {\n";
6808	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6809	s << "\toffset = " << value.offset << '\n';
6810	s << "\tsize = " << value.size << '\n';
6811	s << '}';
6812	return s;
6813}
6814
6815std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
6816{
6817	s << "VkPipelineLayoutCreateInfo = {\n";
6818	s << "\tsType = " << value.sType << '\n';
6819	s << "\tpNext = " << value.pNext << '\n';
6820	s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
6821	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
6822	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6823	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
6824	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
6825	s << '}';
6826	return s;
6827}
6828
6829std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
6830{
6831	s << "VkSamplerCreateInfo = {\n";
6832	s << "\tsType = " << value.sType << '\n';
6833	s << "\tpNext = " << value.pNext << '\n';
6834	s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
6835	s << "\tmagFilter = " << value.magFilter << '\n';
6836	s << "\tminFilter = " << value.minFilter << '\n';
6837	s << "\tmipmapMode = " << value.mipmapMode << '\n';
6838	s << "\taddressModeU = " << value.addressModeU << '\n';
6839	s << "\taddressModeV = " << value.addressModeV << '\n';
6840	s << "\taddressModeW = " << value.addressModeW << '\n';
6841	s << "\tmipLodBias = " << value.mipLodBias << '\n';
6842	s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
6843	s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
6844	s << "\tcompareEnable = " << value.compareEnable << '\n';
6845	s << "\tcompareOp = " << value.compareOp << '\n';
6846	s << "\tminLod = " << value.minLod << '\n';
6847	s << "\tmaxLod = " << value.maxLod << '\n';
6848	s << "\tborderColor = " << value.borderColor << '\n';
6849	s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
6850	s << '}';
6851	return s;
6852}
6853
6854std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
6855{
6856	s << "VkCommandPoolCreateInfo = {\n";
6857	s << "\tsType = " << value.sType << '\n';
6858	s << "\tpNext = " << value.pNext << '\n';
6859	s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
6860	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6861	s << '}';
6862	return s;
6863}
6864
6865std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
6866{
6867	s << "VkCommandBufferAllocateInfo = {\n";
6868	s << "\tsType = " << value.sType << '\n';
6869	s << "\tpNext = " << value.pNext << '\n';
6870	s << "\tcommandPool = " << value.commandPool << '\n';
6871	s << "\tlevel = " << value.level << '\n';
6872	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6873	s << '}';
6874	return s;
6875}
6876
6877std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
6878{
6879	s << "VkCommandBufferInheritanceInfo = {\n";
6880	s << "\tsType = " << value.sType << '\n';
6881	s << "\tpNext = " << value.pNext << '\n';
6882	s << "\trenderPass = " << value.renderPass << '\n';
6883	s << "\tsubpass = " << value.subpass << '\n';
6884	s << "\tframebuffer = " << value.framebuffer << '\n';
6885	s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
6886	s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
6887	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6888	s << '}';
6889	return s;
6890}
6891
6892std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
6893{
6894	s << "VkCommandBufferBeginInfo = {\n";
6895	s << "\tsType = " << value.sType << '\n';
6896	s << "\tpNext = " << value.pNext << '\n';
6897	s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
6898	s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
6899	s << '}';
6900	return s;
6901}
6902
6903std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
6904{
6905	s << "VkRenderPassBeginInfo = {\n";
6906	s << "\tsType = " << value.sType << '\n';
6907	s << "\tpNext = " << value.pNext << '\n';
6908	s << "\trenderPass = " << value.renderPass << '\n';
6909	s << "\tframebuffer = " << value.framebuffer << '\n';
6910	s << "\trenderArea = " << value.renderArea << '\n';
6911	s << "\tclearValueCount = " << value.clearValueCount << '\n';
6912	s << "\tpClearValues = " << value.pClearValues << '\n';
6913	s << '}';
6914	return s;
6915}
6916
6917std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
6918{
6919	s << "VkClearColorValue = {\n";
6920	s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
6921	s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
6922	s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
6923	s << '}';
6924	return s;
6925}
6926
6927std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
6928{
6929	s << "VkClearDepthStencilValue = {\n";
6930	s << "\tdepth = " << value.depth << '\n';
6931	s << "\tstencil = " << value.stencil << '\n';
6932	s << '}';
6933	return s;
6934}
6935
6936std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
6937{
6938	s << "VkClearValue = {\n";
6939	s << "\tcolor = " << value.color << '\n';
6940	s << "\tdepthStencil = " << value.depthStencil << '\n';
6941	s << '}';
6942	return s;
6943}
6944
6945std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
6946{
6947	s << "VkClearAttachment = {\n";
6948	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6949	s << "\tcolorAttachment = " << value.colorAttachment << '\n';
6950	s << "\tclearValue = " << value.clearValue << '\n';
6951	s << '}';
6952	return s;
6953}
6954
6955std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
6956{
6957	s << "VkAttachmentDescription = {\n";
6958	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6959	s << "\tformat = " << value.format << '\n';
6960	s << "\tsamples = " << value.samples << '\n';
6961	s << "\tloadOp = " << value.loadOp << '\n';
6962	s << "\tstoreOp = " << value.storeOp << '\n';
6963	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6964	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6965	s << "\tinitialLayout = " << value.initialLayout << '\n';
6966	s << "\tfinalLayout = " << value.finalLayout << '\n';
6967	s << '}';
6968	return s;
6969}
6970
6971std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
6972{
6973	s << "VkAttachmentReference = {\n";
6974	s << "\tattachment = " << value.attachment << '\n';
6975	s << "\tlayout = " << value.layout << '\n';
6976	s << '}';
6977	return s;
6978}
6979
6980std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
6981{
6982	s << "VkSubpassDescription = {\n";
6983	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6984	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6985	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6986	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6987	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6988	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6989	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6990	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6991	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6992	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6993	s << '}';
6994	return s;
6995}
6996
6997std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
6998{
6999	s << "VkSubpassDependency = {\n";
7000	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
7001	s << "\tdstSubpass = " << value.dstSubpass << '\n';
7002	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
7003	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
7004	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
7005	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
7006	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
7007	s << '}';
7008	return s;
7009}
7010
7011std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
7012{
7013	s << "VkRenderPassCreateInfo = {\n";
7014	s << "\tsType = " << value.sType << '\n';
7015	s << "\tpNext = " << value.pNext << '\n';
7016	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
7017	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7018	s << "\tpAttachments = " << value.pAttachments << '\n';
7019	s << "\tsubpassCount = " << value.subpassCount << '\n';
7020	s << "\tpSubpasses = " << value.pSubpasses << '\n';
7021	s << "\tdependencyCount = " << value.dependencyCount << '\n';
7022	s << "\tpDependencies = " << value.pDependencies << '\n';
7023	s << '}';
7024	return s;
7025}
7026
7027std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
7028{
7029	s << "VkEventCreateInfo = {\n";
7030	s << "\tsType = " << value.sType << '\n';
7031	s << "\tpNext = " << value.pNext << '\n';
7032	s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
7033	s << '}';
7034	return s;
7035}
7036
7037std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
7038{
7039	s << "VkFenceCreateInfo = {\n";
7040	s << "\tsType = " << value.sType << '\n';
7041	s << "\tpNext = " << value.pNext << '\n';
7042	s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
7043	s << '}';
7044	return s;
7045}
7046
7047std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
7048{
7049	s << "VkPhysicalDeviceFeatures = {\n";
7050	s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
7051	s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
7052	s << "\timageCubeArray = " << value.imageCubeArray << '\n';
7053	s << "\tindependentBlend = " << value.independentBlend << '\n';
7054	s << "\tgeometryShader = " << value.geometryShader << '\n';
7055	s << "\ttessellationShader = " << value.tessellationShader << '\n';
7056	s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
7057	s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
7058	s << "\tlogicOp = " << value.logicOp << '\n';
7059	s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
7060	s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
7061	s << "\tdepthClamp = " << value.depthClamp << '\n';
7062	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
7063	s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
7064	s << "\tdepthBounds = " << value.depthBounds << '\n';
7065	s << "\twideLines = " << value.wideLines << '\n';
7066	s << "\tlargePoints = " << value.largePoints << '\n';
7067	s << "\talphaToOne = " << value.alphaToOne << '\n';
7068	s << "\tmultiViewport = " << value.multiViewport << '\n';
7069	s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
7070	s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
7071	s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
7072	s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
7073	s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
7074	s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
7075	s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
7076	s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
7077	s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
7078	s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
7079	s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
7080	s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
7081	s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
7082	s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
7083	s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
7084	s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
7085	s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
7086	s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
7087	s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
7088	s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
7089	s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
7090	s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
7091	s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
7092	s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
7093	s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
7094	s << "\tsparseBinding = " << value.sparseBinding << '\n';
7095	s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
7096	s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
7097	s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
7098	s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
7099	s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
7100	s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
7101	s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
7102	s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
7103	s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
7104	s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
7105	s << '}';
7106	return s;
7107}
7108
7109std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
7110{
7111	s << "VkPhysicalDeviceSparseProperties = {\n";
7112	s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
7113	s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
7114	s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
7115	s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
7116	s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
7117	s << '}';
7118	return s;
7119}
7120
7121std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
7122{
7123	s << "VkPhysicalDeviceLimits = {\n";
7124	s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
7125	s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
7126	s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
7127	s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
7128	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7129	s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
7130	s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
7131	s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
7132	s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
7133	s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
7134	s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
7135	s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
7136	s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
7137	s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
7138	s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
7139	s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
7140	s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
7141	s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
7142	s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
7143	s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
7144	s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
7145	s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
7146	s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
7147	s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
7148	s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
7149	s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
7150	s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
7151	s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
7152	s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
7153	s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
7154	s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
7155	s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
7156	s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
7157	s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
7158	s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
7159	s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
7160	s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
7161	s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
7162	s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
7163	s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
7164	s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
7165	s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
7166	s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
7167	s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
7168	s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
7169	s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
7170	s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
7171	s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
7172	s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
7173	s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
7174	s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
7175	s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
7176	s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
7177	s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
7178	s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
7179	s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
7180	s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
7181	s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
7182	s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
7183	s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
7184	s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
7185	s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
7186	s << "\tmaxViewports = " << value.maxViewports << '\n';
7187	s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
7188	s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
7189	s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
7190	s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
7191	s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
7192	s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
7193	s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
7194	s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
7195	s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
7196	s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
7197	s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
7198	s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
7199	s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
7200	s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
7201	s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
7202	s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
7203	s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
7204	s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
7205	s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
7206	s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
7207	s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
7208	s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
7209	s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
7210	s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
7211	s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
7212	s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
7213	s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
7214	s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
7215	s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
7216	s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
7217	s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
7218	s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
7219	s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
7220	s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
7221	s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
7222	s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
7223	s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
7224	s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
7225	s << "\tstrictLines = " << value.strictLines << '\n';
7226	s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
7227	s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
7228	s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
7229	s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
7230	s << '}';
7231	return s;
7232}
7233
7234std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
7235{
7236	s << "VkSemaphoreCreateInfo = {\n";
7237	s << "\tsType = " << value.sType << '\n';
7238	s << "\tpNext = " << value.pNext << '\n';
7239	s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
7240	s << '}';
7241	return s;
7242}
7243
7244std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
7245{
7246	s << "VkQueryPoolCreateInfo = {\n";
7247	s << "\tsType = " << value.sType << '\n';
7248	s << "\tpNext = " << value.pNext << '\n';
7249	s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
7250	s << "\tqueryType = " << value.queryType << '\n';
7251	s << "\tqueryCount = " << value.queryCount << '\n';
7252	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
7253	s << '}';
7254	return s;
7255}
7256
7257std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
7258{
7259	s << "VkFramebufferCreateInfo = {\n";
7260	s << "\tsType = " << value.sType << '\n';
7261	s << "\tpNext = " << value.pNext << '\n';
7262	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
7263	s << "\trenderPass = " << value.renderPass << '\n';
7264	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7265	s << "\tpAttachments = " << value.pAttachments << '\n';
7266	s << "\twidth = " << value.width << '\n';
7267	s << "\theight = " << value.height << '\n';
7268	s << "\tlayers = " << value.layers << '\n';
7269	s << '}';
7270	return s;
7271}
7272
7273std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
7274{
7275	s << "VkDrawIndirectCommand = {\n";
7276	s << "\tvertexCount = " << value.vertexCount << '\n';
7277	s << "\tinstanceCount = " << value.instanceCount << '\n';
7278	s << "\tfirstVertex = " << value.firstVertex << '\n';
7279	s << "\tfirstInstance = " << value.firstInstance << '\n';
7280	s << '}';
7281	return s;
7282}
7283
7284std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
7285{
7286	s << "VkDrawIndexedIndirectCommand = {\n";
7287	s << "\tindexCount = " << value.indexCount << '\n';
7288	s << "\tinstanceCount = " << value.instanceCount << '\n';
7289	s << "\tfirstIndex = " << value.firstIndex << '\n';
7290	s << "\tvertexOffset = " << value.vertexOffset << '\n';
7291	s << "\tfirstInstance = " << value.firstInstance << '\n';
7292	s << '}';
7293	return s;
7294}
7295
7296std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
7297{
7298	s << "VkDispatchIndirectCommand = {\n";
7299	s << "\tx = " << value.x << '\n';
7300	s << "\ty = " << value.y << '\n';
7301	s << "\tz = " << value.z << '\n';
7302	s << '}';
7303	return s;
7304}
7305
7306std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
7307{
7308	s << "VkMultiDrawInfoEXT = {\n";
7309	s << "\tfirstVertex = " << value.firstVertex << '\n';
7310	s << "\tvertexCount = " << value.vertexCount << '\n';
7311	s << '}';
7312	return s;
7313}
7314
7315std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
7316{
7317	s << "VkMultiDrawIndexedInfoEXT = {\n";
7318	s << "\tfirstIndex = " << value.firstIndex << '\n';
7319	s << "\tindexCount = " << value.indexCount << '\n';
7320	s << "\tvertexOffset = " << value.vertexOffset << '\n';
7321	s << '}';
7322	return s;
7323}
7324
7325std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
7326{
7327	s << "VkSubmitInfo = {\n";
7328	s << "\tsType = " << value.sType << '\n';
7329	s << "\tpNext = " << value.pNext << '\n';
7330	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7331	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7332	s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
7333	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
7334	s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
7335	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
7336	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
7337	s << '}';
7338	return s;
7339}
7340
7341std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
7342{
7343	s << "VkDisplayPropertiesKHR = {\n";
7344	s << "\tdisplay = " << value.display << '\n';
7345	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
7346	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
7347	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
7348	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7349	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
7350	s << "\tpersistentContent = " << value.persistentContent << '\n';
7351	s << '}';
7352	return s;
7353}
7354
7355std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
7356{
7357	s << "VkDisplayPlanePropertiesKHR = {\n";
7358	s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
7359	s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
7360	s << '}';
7361	return s;
7362}
7363
7364std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
7365{
7366	s << "VkDisplayModeParametersKHR = {\n";
7367	s << "\tvisibleRegion = " << value.visibleRegion << '\n';
7368	s << "\trefreshRate = " << value.refreshRate << '\n';
7369	s << '}';
7370	return s;
7371}
7372
7373std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
7374{
7375	s << "VkDisplayModePropertiesKHR = {\n";
7376	s << "\tdisplayMode = " << value.displayMode << '\n';
7377	s << "\tparameters = " << value.parameters << '\n';
7378	s << '}';
7379	return s;
7380}
7381
7382std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
7383{
7384	s << "VkDisplayModeCreateInfoKHR = {\n";
7385	s << "\tsType = " << value.sType << '\n';
7386	s << "\tpNext = " << value.pNext << '\n';
7387	s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
7388	s << "\tparameters = " << value.parameters << '\n';
7389	s << '}';
7390	return s;
7391}
7392
7393std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
7394{
7395	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
7396	s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
7397	s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
7398	s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
7399	s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
7400	s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
7401	s << "\tminDstPosition = " << value.minDstPosition << '\n';
7402	s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
7403	s << "\tminDstExtent = " << value.minDstExtent << '\n';
7404	s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
7405	s << '}';
7406	return s;
7407}
7408
7409std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
7410{
7411	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
7412	s << "\tsType = " << value.sType << '\n';
7413	s << "\tpNext = " << value.pNext << '\n';
7414	s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
7415	s << "\tdisplayMode = " << value.displayMode << '\n';
7416	s << "\tplaneIndex = " << value.planeIndex << '\n';
7417	s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
7418	s << "\ttransform = " << value.transform << '\n';
7419	s << "\tglobalAlpha = " << value.globalAlpha << '\n';
7420	s << "\talphaMode = " << value.alphaMode << '\n';
7421	s << "\timageExtent = " << value.imageExtent << '\n';
7422	s << '}';
7423	return s;
7424}
7425
7426std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
7427{
7428	s << "VkDisplayPresentInfoKHR = {\n";
7429	s << "\tsType = " << value.sType << '\n';
7430	s << "\tpNext = " << value.pNext << '\n';
7431	s << "\tsrcRect = " << value.srcRect << '\n';
7432	s << "\tdstRect = " << value.dstRect << '\n';
7433	s << "\tpersistent = " << value.persistent << '\n';
7434	s << '}';
7435	return s;
7436}
7437
7438std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
7439{
7440	s << "VkSurfaceCapabilitiesKHR = {\n";
7441	s << "\tminImageCount = " << value.minImageCount << '\n';
7442	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7443	s << "\tcurrentExtent = " << value.currentExtent << '\n';
7444	s << "\tminImageExtent = " << value.minImageExtent << '\n';
7445	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7446	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7447	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7448	s << "\tcurrentTransform = " << value.currentTransform << '\n';
7449	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7450	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7451	s << '}';
7452	return s;
7453}
7454
7455std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
7456{
7457	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
7458	s << "\tsType = " << value.sType << '\n';
7459	s << "\tpNext = " << value.pNext << '\n';
7460	s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7461	s << "\twindow = " << value.window << '\n';
7462	s << '}';
7463	return s;
7464}
7465
7466std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
7467{
7468	s << "VkViSurfaceCreateInfoNN = {\n";
7469	s << "\tsType = " << value.sType << '\n';
7470	s << "\tpNext = " << value.pNext << '\n';
7471	s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
7472	s << "\twindow = " << value.window << '\n';
7473	s << '}';
7474	return s;
7475}
7476
7477std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
7478{
7479	s << "VkWaylandSurfaceCreateInfoKHR = {\n";
7480	s << "\tsType = " << value.sType << '\n';
7481	s << "\tpNext = " << value.pNext << '\n';
7482	s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7483	s << "\tdisplay = " << value.display << '\n';
7484	s << "\tsurface = " << value.surface << '\n';
7485	s << '}';
7486	return s;
7487}
7488
7489std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
7490{
7491	s << "VkWin32SurfaceCreateInfoKHR = {\n";
7492	s << "\tsType = " << value.sType << '\n';
7493	s << "\tpNext = " << value.pNext << '\n';
7494	s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
7495	s << "\thinstance = " << value.hinstance << '\n';
7496	s << "\thwnd = " << value.hwnd << '\n';
7497	s << '}';
7498	return s;
7499}
7500
7501std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
7502{
7503	s << "VkXlibSurfaceCreateInfoKHR = {\n";
7504	s << "\tsType = " << value.sType << '\n';
7505	s << "\tpNext = " << value.pNext << '\n';
7506	s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7507	s << "\tdpy = " << value.dpy << '\n';
7508	s << "\twindow = " << value.window << '\n';
7509	s << '}';
7510	return s;
7511}
7512
7513std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
7514{
7515	s << "VkXcbSurfaceCreateInfoKHR = {\n";
7516	s << "\tsType = " << value.sType << '\n';
7517	s << "\tpNext = " << value.pNext << '\n';
7518	s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7519	s << "\tconnection = " << value.connection << '\n';
7520	s << "\twindow = " << value.window << '\n';
7521	s << '}';
7522	return s;
7523}
7524
7525std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
7526{
7527	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
7528	s << "\tsType = " << value.sType << '\n';
7529	s << "\tpNext = " << value.pNext << '\n';
7530	s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
7531	s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
7532	s << '}';
7533	return s;
7534}
7535
7536std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
7537{
7538	s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
7539	s << "\tsType = " << value.sType << '\n';
7540	s << "\tpNext = " << value.pNext << '\n';
7541	s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
7542	s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
7543	s << '}';
7544	return s;
7545}
7546
7547std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
7548{
7549	s << "VkScreenSurfaceCreateInfoQNX = {\n";
7550	s << "\tsType = " << value.sType << '\n';
7551	s << "\tpNext = " << value.pNext << '\n';
7552	s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
7553	s << "\tcontext = " << value.context << '\n';
7554	s << "\twindow = " << value.window << '\n';
7555	s << '}';
7556	return s;
7557}
7558
7559std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
7560{
7561	s << "VkSurfaceFormatKHR = {\n";
7562	s << "\tformat = " << value.format << '\n';
7563	s << "\tcolorSpace = " << value.colorSpace << '\n';
7564	s << '}';
7565	return s;
7566}
7567
7568std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
7569{
7570	s << "VkSwapchainCreateInfoKHR = {\n";
7571	s << "\tsType = " << value.sType << '\n';
7572	s << "\tpNext = " << value.pNext << '\n';
7573	s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
7574	s << "\tsurface = " << value.surface << '\n';
7575	s << "\tminImageCount = " << value.minImageCount << '\n';
7576	s << "\timageFormat = " << value.imageFormat << '\n';
7577	s << "\timageColorSpace = " << value.imageColorSpace << '\n';
7578	s << "\timageExtent = " << value.imageExtent << '\n';
7579	s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
7580	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
7581	s << "\timageSharingMode = " << value.imageSharingMode << '\n';
7582	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
7583	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
7584	s << "\tpreTransform = " << value.preTransform << '\n';
7585	s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
7586	s << "\tpresentMode = " << value.presentMode << '\n';
7587	s << "\tclipped = " << value.clipped << '\n';
7588	s << "\toldSwapchain = " << value.oldSwapchain << '\n';
7589	s << '}';
7590	return s;
7591}
7592
7593std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
7594{
7595	s << "VkPresentInfoKHR = {\n";
7596	s << "\tsType = " << value.sType << '\n';
7597	s << "\tpNext = " << value.pNext << '\n';
7598	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7599	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7600	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7601	s << "\tpSwapchains = " << value.pSwapchains << '\n';
7602	s << "\tpImageIndices = " << value.pImageIndices << '\n';
7603	s << "\tpResults = " << value.pResults << '\n';
7604	s << '}';
7605	return s;
7606}
7607
7608std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
7609{
7610	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
7611	s << "\tsType = " << value.sType << '\n';
7612	s << "\tpNext = " << value.pNext << '\n';
7613	s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
7614	s << "\tpfnCallback = " << value.pfnCallback << '\n';
7615	s << "\tpUserData = " << value.pUserData << '\n';
7616	s << '}';
7617	return s;
7618}
7619
7620std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
7621{
7622	s << "VkValidationFlagsEXT = {\n";
7623	s << "\tsType = " << value.sType << '\n';
7624	s << "\tpNext = " << value.pNext << '\n';
7625	s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
7626	s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
7627	s << '}';
7628	return s;
7629}
7630
7631std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
7632{
7633	s << "VkValidationFeaturesEXT = {\n";
7634	s << "\tsType = " << value.sType << '\n';
7635	s << "\tpNext = " << value.pNext << '\n';
7636	s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
7637	s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
7638	s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
7639	s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
7640	s << '}';
7641	return s;
7642}
7643
7644std::ostream& operator<< (std::ostream& s, const VkLayerSettingsCreateInfoEXT& value)
7645{
7646	s << "VkLayerSettingsCreateInfoEXT = {\n";
7647	s << "\tsType = " << value.sType << '\n';
7648	s << "\tpNext = " << value.pNext << '\n';
7649	s << "\tsettingCount = " << value.settingCount << '\n';
7650	s << "\tpSettings = " << value.pSettings << '\n';
7651	s << '}';
7652	return s;
7653}
7654
7655std::ostream& operator<< (std::ostream& s, const VkLayerSettingEXT& value)
7656{
7657	s << "VkLayerSettingEXT = {\n";
7658	s << "\tpLayerName = " << getCharPtrStr(value.pLayerName) << '\n';
7659	s << "\tpSettingName = " << getCharPtrStr(value.pSettingName) << '\n';
7660	s << "\ttype = " << value.type << '\n';
7661	s << "\tvalueCount = " << value.valueCount << '\n';
7662	s << "\tpValues = " << value.pValues << '\n';
7663	s << '}';
7664	return s;
7665}
7666
7667std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
7668{
7669	s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
7670	s << "\tsType = " << value.sType << '\n';
7671	s << "\tpNext = " << value.pNext << '\n';
7672	s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
7673	s << '}';
7674	return s;
7675}
7676
7677std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
7678{
7679	s << "VkDebugMarkerObjectNameInfoEXT = {\n";
7680	s << "\tsType = " << value.sType << '\n';
7681	s << "\tpNext = " << value.pNext << '\n';
7682	s << "\tobjectType = " << value.objectType << '\n';
7683	s << "\tobject = " << value.object << '\n';
7684	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
7685	s << '}';
7686	return s;
7687}
7688
7689std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
7690{
7691	s << "VkDebugMarkerObjectTagInfoEXT = {\n";
7692	s << "\tsType = " << value.sType << '\n';
7693	s << "\tpNext = " << value.pNext << '\n';
7694	s << "\tobjectType = " << value.objectType << '\n';
7695	s << "\tobject = " << value.object << '\n';
7696	s << "\ttagName = " << value.tagName << '\n';
7697	s << "\ttagSize = " << value.tagSize << '\n';
7698	s << "\tpTag = " << value.pTag << '\n';
7699	s << '}';
7700	return s;
7701}
7702
7703std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
7704{
7705	s << "VkDebugMarkerMarkerInfoEXT = {\n";
7706	s << "\tsType = " << value.sType << '\n';
7707	s << "\tpNext = " << value.pNext << '\n';
7708	s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
7709	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
7710	s << '}';
7711	return s;
7712}
7713
7714std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
7715{
7716	s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
7717	s << "\tsType = " << value.sType << '\n';
7718	s << "\tpNext = " << value.pNext << '\n';
7719	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7720	s << '}';
7721	return s;
7722}
7723
7724std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
7725{
7726	s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
7727	s << "\tsType = " << value.sType << '\n';
7728	s << "\tpNext = " << value.pNext << '\n';
7729	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7730	s << '}';
7731	return s;
7732}
7733
7734std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
7735{
7736	s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
7737	s << "\tsType = " << value.sType << '\n';
7738	s << "\tpNext = " << value.pNext << '\n';
7739	s << "\timage = " << value.image << '\n';
7740	s << "\tbuffer = " << value.buffer << '\n';
7741	s << '}';
7742	return s;
7743}
7744
7745std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
7746{
7747	s << "VkExternalImageFormatPropertiesNV = {\n";
7748	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7749	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
7750	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
7751	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
7752	s << '}';
7753	return s;
7754}
7755
7756std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
7757{
7758	s << "VkExternalMemoryImageCreateInfoNV = {\n";
7759	s << "\tsType = " << value.sType << '\n';
7760	s << "\tpNext = " << value.pNext << '\n';
7761	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7762	s << '}';
7763	return s;
7764}
7765
7766std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
7767{
7768	s << "VkExportMemoryAllocateInfoNV = {\n";
7769	s << "\tsType = " << value.sType << '\n';
7770	s << "\tpNext = " << value.pNext << '\n';
7771	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7772	s << '}';
7773	return s;
7774}
7775
7776std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
7777{
7778	s << "VkImportMemoryWin32HandleInfoNV = {\n";
7779	s << "\tsType = " << value.sType << '\n';
7780	s << "\tpNext = " << value.pNext << '\n';
7781	s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
7782	s << "\thandle = " << value.handle << '\n';
7783	s << '}';
7784	return s;
7785}
7786
7787std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
7788{
7789	s << "VkExportMemoryWin32HandleInfoNV = {\n";
7790	s << "\tsType = " << value.sType << '\n';
7791	s << "\tpNext = " << value.pNext << '\n';
7792	s << "\tpAttributes = " << value.pAttributes << '\n';
7793	s << "\tdwAccess = " << value.dwAccess << '\n';
7794	s << '}';
7795	return s;
7796}
7797
7798std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
7799{
7800	s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
7801	s << "\tsType = " << value.sType << '\n';
7802	s << "\tpNext = " << value.pNext << '\n';
7803	s << "\tacquireCount = " << value.acquireCount << '\n';
7804	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7805	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7806	s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
7807	s << "\treleaseCount = " << value.releaseCount << '\n';
7808	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7809	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7810	s << '}';
7811	return s;
7812}
7813
7814std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
7815{
7816	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
7817	s << "\tsType = " << value.sType << '\n';
7818	s << "\tpNext = " << value.pNext << '\n';
7819	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
7820	s << '}';
7821	return s;
7822}
7823
7824std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& value)
7825{
7826	s << "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = {\n";
7827	s << "\tsType = " << value.sType << '\n';
7828	s << "\tpNext = " << value.pNext << '\n';
7829	s << "\tdeviceGeneratedCompute = " << value.deviceGeneratedCompute << '\n';
7830	s << "\tdeviceGeneratedComputePipelines = " << value.deviceGeneratedComputePipelines << '\n';
7831	s << "\tdeviceGeneratedComputeCaptureReplay = " << value.deviceGeneratedComputeCaptureReplay << '\n';
7832	s << '}';
7833	return s;
7834}
7835
7836std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
7837{
7838	s << "VkDevicePrivateDataCreateInfo = {\n";
7839	s << "\tsType = " << value.sType << '\n';
7840	s << "\tpNext = " << value.pNext << '\n';
7841	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
7842	s << '}';
7843	return s;
7844}
7845
7846std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
7847{
7848	s << "VkPrivateDataSlotCreateInfo = {\n";
7849	s << "\tsType = " << value.sType << '\n';
7850	s << "\tpNext = " << value.pNext << '\n';
7851	s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
7852	s << '}';
7853	return s;
7854}
7855
7856std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
7857{
7858	s << "VkPhysicalDevicePrivateDataFeatures = {\n";
7859	s << "\tsType = " << value.sType << '\n';
7860	s << "\tpNext = " << value.pNext << '\n';
7861	s << "\tprivateData = " << value.privateData << '\n';
7862	s << '}';
7863	return s;
7864}
7865
7866std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
7867{
7868	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
7869	s << "\tsType = " << value.sType << '\n';
7870	s << "\tpNext = " << value.pNext << '\n';
7871	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
7872	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
7873	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
7874	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
7875	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
7876	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
7877	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
7878	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
7879	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
7880	s << '}';
7881	return s;
7882}
7883
7884std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
7885{
7886	s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
7887	s << "\tsType = " << value.sType << '\n';
7888	s << "\tpNext = " << value.pNext << '\n';
7889	s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
7890	s << '}';
7891	return s;
7892}
7893
7894std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
7895{
7896	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
7897	s << "\tsType = " << value.sType << '\n';
7898	s << "\tpNext = " << value.pNext << '\n';
7899	s << "\tstageCount = " << value.stageCount << '\n';
7900	s << "\tpStages = " << value.pStages << '\n';
7901	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
7902	s << "\tpTessellationState = " << value.pTessellationState << '\n';
7903	s << '}';
7904	return s;
7905}
7906
7907std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
7908{
7909	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
7910	s << "\tsType = " << value.sType << '\n';
7911	s << "\tpNext = " << value.pNext << '\n';
7912	s << "\tgroupCount = " << value.groupCount << '\n';
7913	s << "\tpGroups = " << value.pGroups << '\n';
7914	s << "\tpipelineCount = " << value.pipelineCount << '\n';
7915	s << "\tpPipelines = " << value.pPipelines << '\n';
7916	s << '}';
7917	return s;
7918}
7919
7920std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
7921{
7922	s << "VkBindShaderGroupIndirectCommandNV = {\n";
7923	s << "\tgroupIndex = " << value.groupIndex << '\n';
7924	s << '}';
7925	return s;
7926}
7927
7928std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
7929{
7930	s << "VkBindIndexBufferIndirectCommandNV = {\n";
7931	s << "\tbufferAddress = " << value.bufferAddress << '\n';
7932	s << "\tsize = " << value.size << '\n';
7933	s << "\tindexType = " << value.indexType << '\n';
7934	s << '}';
7935	return s;
7936}
7937
7938std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
7939{
7940	s << "VkBindVertexBufferIndirectCommandNV = {\n";
7941	s << "\tbufferAddress = " << value.bufferAddress << '\n';
7942	s << "\tsize = " << value.size << '\n';
7943	s << "\tstride = " << value.stride << '\n';
7944	s << '}';
7945	return s;
7946}
7947
7948std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
7949{
7950	s << "VkSetStateFlagsIndirectCommandNV = {\n";
7951	s << "\tdata = " << value.data << '\n';
7952	s << '}';
7953	return s;
7954}
7955
7956std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
7957{
7958	s << "VkIndirectCommandsStreamNV = {\n";
7959	s << "\tbuffer = " << value.buffer << '\n';
7960	s << "\toffset = " << value.offset << '\n';
7961	s << '}';
7962	return s;
7963}
7964
7965std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
7966{
7967	s << "VkIndirectCommandsLayoutTokenNV = {\n";
7968	s << "\tsType = " << value.sType << '\n';
7969	s << "\tpNext = " << value.pNext << '\n';
7970	s << "\ttokenType = " << value.tokenType << '\n';
7971	s << "\tstream = " << value.stream << '\n';
7972	s << "\toffset = " << value.offset << '\n';
7973	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
7974	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
7975	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
7976	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
7977	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
7978	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
7979	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
7980	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
7981	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
7982	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
7983	s << '}';
7984	return s;
7985}
7986
7987std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
7988{
7989	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
7990	s << "\tsType = " << value.sType << '\n';
7991	s << "\tpNext = " << value.pNext << '\n';
7992	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
7993	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7994	s << "\ttokenCount = " << value.tokenCount << '\n';
7995	s << "\tpTokens = " << value.pTokens << '\n';
7996	s << "\tstreamCount = " << value.streamCount << '\n';
7997	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
7998	s << '}';
7999	return s;
8000}
8001
8002std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
8003{
8004	s << "VkGeneratedCommandsInfoNV = {\n";
8005	s << "\tsType = " << value.sType << '\n';
8006	s << "\tpNext = " << value.pNext << '\n';
8007	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8008	s << "\tpipeline = " << value.pipeline << '\n';
8009	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
8010	s << "\tstreamCount = " << value.streamCount << '\n';
8011	s << "\tpStreams = " << value.pStreams << '\n';
8012	s << "\tsequencesCount = " << value.sequencesCount << '\n';
8013	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
8014	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
8015	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
8016	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
8017	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
8018	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
8019	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
8020	s << '}';
8021	return s;
8022}
8023
8024std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
8025{
8026	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
8027	s << "\tsType = " << value.sType << '\n';
8028	s << "\tpNext = " << value.pNext << '\n';
8029	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8030	s << "\tpipeline = " << value.pipeline << '\n';
8031	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
8032	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
8033	s << '}';
8034	return s;
8035}
8036
8037std::ostream& operator<< (std::ostream& s, const VkPipelineIndirectDeviceAddressInfoNV& value)
8038{
8039	s << "VkPipelineIndirectDeviceAddressInfoNV = {\n";
8040	s << "\tsType = " << value.sType << '\n';
8041	s << "\tpNext = " << value.pNext << '\n';
8042	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8043	s << "\tpipeline = " << value.pipeline << '\n';
8044	s << '}';
8045	return s;
8046}
8047
8048std::ostream& operator<< (std::ostream& s, const VkBindPipelineIndirectCommandNV& value)
8049{
8050	s << "VkBindPipelineIndirectCommandNV = {\n";
8051	s << "\tpipelineAddress = " << value.pipelineAddress << '\n';
8052	s << '}';
8053	return s;
8054}
8055
8056std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
8057{
8058	s << "VkPhysicalDeviceFeatures2 = {\n";
8059	s << "\tsType = " << value.sType << '\n';
8060	s << "\tpNext = " << value.pNext << '\n';
8061	s << "\tfeatures = " << value.features << '\n';
8062	s << '}';
8063	return s;
8064}
8065
8066std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
8067{
8068	s << "VkPhysicalDeviceProperties2 = {\n";
8069	s << "\tsType = " << value.sType << '\n';
8070	s << "\tpNext = " << value.pNext << '\n';
8071	s << "\tproperties = " << value.properties << '\n';
8072	s << '}';
8073	return s;
8074}
8075
8076std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
8077{
8078	s << "VkFormatProperties2 = {\n";
8079	s << "\tsType = " << value.sType << '\n';
8080	s << "\tpNext = " << value.pNext << '\n';
8081	s << "\tformatProperties = " << value.formatProperties << '\n';
8082	s << '}';
8083	return s;
8084}
8085
8086std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
8087{
8088	s << "VkImageFormatProperties2 = {\n";
8089	s << "\tsType = " << value.sType << '\n';
8090	s << "\tpNext = " << value.pNext << '\n';
8091	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
8092	s << '}';
8093	return s;
8094}
8095
8096std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
8097{
8098	s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
8099	s << "\tsType = " << value.sType << '\n';
8100	s << "\tpNext = " << value.pNext << '\n';
8101	s << "\tformat = " << value.format << '\n';
8102	s << "\ttype = " << value.type << '\n';
8103	s << "\ttiling = " << value.tiling << '\n';
8104	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8105	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
8106	s << '}';
8107	return s;
8108}
8109
8110std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
8111{
8112	s << "VkQueueFamilyProperties2 = {\n";
8113	s << "\tsType = " << value.sType << '\n';
8114	s << "\tpNext = " << value.pNext << '\n';
8115	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
8116	s << '}';
8117	return s;
8118}
8119
8120std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
8121{
8122	s << "VkPhysicalDeviceMemoryProperties2 = {\n";
8123	s << "\tsType = " << value.sType << '\n';
8124	s << "\tpNext = " << value.pNext << '\n';
8125	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
8126	s << '}';
8127	return s;
8128}
8129
8130std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
8131{
8132	s << "VkSparseImageFormatProperties2 = {\n";
8133	s << "\tsType = " << value.sType << '\n';
8134	s << "\tpNext = " << value.pNext << '\n';
8135	s << "\tproperties = " << value.properties << '\n';
8136	s << '}';
8137	return s;
8138}
8139
8140std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
8141{
8142	s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
8143	s << "\tsType = " << value.sType << '\n';
8144	s << "\tpNext = " << value.pNext << '\n';
8145	s << "\tformat = " << value.format << '\n';
8146	s << "\ttype = " << value.type << '\n';
8147	s << "\tsamples = " << value.samples << '\n';
8148	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8149	s << "\ttiling = " << value.tiling << '\n';
8150	s << '}';
8151	return s;
8152}
8153
8154std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
8155{
8156	s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
8157	s << "\tsType = " << value.sType << '\n';
8158	s << "\tpNext = " << value.pNext << '\n';
8159	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
8160	s << '}';
8161	return s;
8162}
8163
8164std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
8165{
8166	s << "VkConformanceVersion = {\n";
8167	s << "\tmajor = " << value.major << '\n';
8168	s << "\tminor = " << value.minor << '\n';
8169	s << "\tsubminor = " << value.subminor << '\n';
8170	s << "\tpatch = " << value.patch << '\n';
8171	s << '}';
8172	return s;
8173}
8174
8175std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
8176{
8177	s << "VkPhysicalDeviceDriverProperties = {\n";
8178	s << "\tsType = " << value.sType << '\n';
8179	s << "\tpNext = " << value.pNext << '\n';
8180	s << "\tdriverID = " << value.driverID << '\n';
8181	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
8182	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
8183	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
8184	s << '}';
8185	return s;
8186}
8187
8188std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
8189{
8190	s << "VkPresentRegionsKHR = {\n";
8191	s << "\tsType = " << value.sType << '\n';
8192	s << "\tpNext = " << value.pNext << '\n';
8193	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8194	s << "\tpRegions = " << value.pRegions << '\n';
8195	s << '}';
8196	return s;
8197}
8198
8199std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
8200{
8201	s << "VkPresentRegionKHR = {\n";
8202	s << "\trectangleCount = " << value.rectangleCount << '\n';
8203	s << "\tpRectangles = " << value.pRectangles << '\n';
8204	s << '}';
8205	return s;
8206}
8207
8208std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
8209{
8210	s << "VkRectLayerKHR = {\n";
8211	s << "\toffset = " << value.offset << '\n';
8212	s << "\textent = " << value.extent << '\n';
8213	s << "\tlayer = " << value.layer << '\n';
8214	s << '}';
8215	return s;
8216}
8217
8218std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
8219{
8220	s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
8221	s << "\tsType = " << value.sType << '\n';
8222	s << "\tpNext = " << value.pNext << '\n';
8223	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
8224	s << "\tvariablePointers = " << value.variablePointers << '\n';
8225	s << '}';
8226	return s;
8227}
8228
8229std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
8230{
8231	s << "VkExternalMemoryProperties = {\n";
8232	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
8233	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8234	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8235	s << '}';
8236	return s;
8237}
8238
8239std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
8240{
8241	s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
8242	s << "\tsType = " << value.sType << '\n';
8243	s << "\tpNext = " << value.pNext << '\n';
8244	s << "\thandleType = " << value.handleType << '\n';
8245	s << '}';
8246	return s;
8247}
8248
8249std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
8250{
8251	s << "VkExternalImageFormatProperties = {\n";
8252	s << "\tsType = " << value.sType << '\n';
8253	s << "\tpNext = " << value.pNext << '\n';
8254	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
8255	s << '}';
8256	return s;
8257}
8258
8259std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
8260{
8261	s << "VkPhysicalDeviceExternalBufferInfo = {\n";
8262	s << "\tsType = " << value.sType << '\n';
8263	s << "\tpNext = " << value.pNext << '\n';
8264	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
8265	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
8266	s << "\thandleType = " << value.handleType << '\n';
8267	s << '}';
8268	return s;
8269}
8270
8271std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
8272{
8273	s << "VkExternalBufferProperties = {\n";
8274	s << "\tsType = " << value.sType << '\n';
8275	s << "\tpNext = " << value.pNext << '\n';
8276	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
8277	s << '}';
8278	return s;
8279}
8280
8281std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
8282{
8283	s << "VkPhysicalDeviceIDProperties = {\n";
8284	s << "\tsType = " << value.sType << '\n';
8285	s << "\tpNext = " << value.pNext << '\n';
8286	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';
8287	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';
8288	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';
8289	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
8290	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
8291	s << '}';
8292	return s;
8293}
8294
8295std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
8296{
8297	s << "VkExternalMemoryImageCreateInfo = {\n";
8298	s << "\tsType = " << value.sType << '\n';
8299	s << "\tpNext = " << value.pNext << '\n';
8300	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8301	s << '}';
8302	return s;
8303}
8304
8305std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
8306{
8307	s << "VkExternalMemoryBufferCreateInfo = {\n";
8308	s << "\tsType = " << value.sType << '\n';
8309	s << "\tpNext = " << value.pNext << '\n';
8310	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8311	s << '}';
8312	return s;
8313}
8314
8315std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
8316{
8317	s << "VkExportMemoryAllocateInfo = {\n";
8318	s << "\tsType = " << value.sType << '\n';
8319	s << "\tpNext = " << value.pNext << '\n';
8320	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8321	s << '}';
8322	return s;
8323}
8324
8325std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
8326{
8327	s << "VkImportMemoryWin32HandleInfoKHR = {\n";
8328	s << "\tsType = " << value.sType << '\n';
8329	s << "\tpNext = " << value.pNext << '\n';
8330	s << "\thandleType = " << value.handleType << '\n';
8331	s << "\thandle = " << value.handle << '\n';
8332	s << "\tname = " << getWStr(value.name) << '\n';
8333	s << '}';
8334	return s;
8335}
8336
8337std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
8338{
8339	s << "VkExportMemoryWin32HandleInfoKHR = {\n";
8340	s << "\tsType = " << value.sType << '\n';
8341	s << "\tpNext = " << value.pNext << '\n';
8342	s << "\tpAttributes = " << value.pAttributes << '\n';
8343	s << "\tdwAccess = " << value.dwAccess << '\n';
8344	s << "\tname = " << getWStr(value.name) << '\n';
8345	s << '}';
8346	return s;
8347}
8348
8349std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
8350{
8351	s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
8352	s << "\tsType = " << value.sType << '\n';
8353	s << "\tpNext = " << value.pNext << '\n';
8354	s << "\thandleType = " << value.handleType << '\n';
8355	s << "\thandle = " << value.handle << '\n';
8356	s << '}';
8357	return s;
8358}
8359
8360std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
8361{
8362	s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
8363	s << "\tsType = " << value.sType << '\n';
8364	s << "\tpNext = " << value.pNext << '\n';
8365	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8366	s << '}';
8367	return s;
8368}
8369
8370std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
8371{
8372	s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
8373	s << "\tsType = " << value.sType << '\n';
8374	s << "\tpNext = " << value.pNext << '\n';
8375	s << "\tmemory = " << value.memory << '\n';
8376	s << "\thandleType = " << value.handleType << '\n';
8377	s << '}';
8378	return s;
8379}
8380
8381std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
8382{
8383	s << "VkMemoryWin32HandlePropertiesKHR = {\n";
8384	s << "\tsType = " << value.sType << '\n';
8385	s << "\tpNext = " << value.pNext << '\n';
8386	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8387	s << '}';
8388	return s;
8389}
8390
8391std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
8392{
8393	s << "VkMemoryGetWin32HandleInfoKHR = {\n";
8394	s << "\tsType = " << value.sType << '\n';
8395	s << "\tpNext = " << value.pNext << '\n';
8396	s << "\tmemory = " << value.memory << '\n';
8397	s << "\thandleType = " << value.handleType << '\n';
8398	s << '}';
8399	return s;
8400}
8401
8402std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
8403{
8404	s << "VkImportMemoryFdInfoKHR = {\n";
8405	s << "\tsType = " << value.sType << '\n';
8406	s << "\tpNext = " << value.pNext << '\n';
8407	s << "\thandleType = " << value.handleType << '\n';
8408	s << "\tfd = " << value.fd << '\n';
8409	s << '}';
8410	return s;
8411}
8412
8413std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
8414{
8415	s << "VkMemoryFdPropertiesKHR = {\n";
8416	s << "\tsType = " << value.sType << '\n';
8417	s << "\tpNext = " << value.pNext << '\n';
8418	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8419	s << '}';
8420	return s;
8421}
8422
8423std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
8424{
8425	s << "VkMemoryGetFdInfoKHR = {\n";
8426	s << "\tsType = " << value.sType << '\n';
8427	s << "\tpNext = " << value.pNext << '\n';
8428	s << "\tmemory = " << value.memory << '\n';
8429	s << "\thandleType = " << value.handleType << '\n';
8430	s << '}';
8431	return s;
8432}
8433
8434std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
8435{
8436	s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
8437	s << "\tsType = " << value.sType << '\n';
8438	s << "\tpNext = " << value.pNext << '\n';
8439	s << "\tacquireCount = " << value.acquireCount << '\n';
8440	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
8441	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
8442	s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
8443	s << "\treleaseCount = " << value.releaseCount << '\n';
8444	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
8445	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
8446	s << '}';
8447	return s;
8448}
8449
8450std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
8451{
8452	s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
8453	s << "\tsType = " << value.sType << '\n';
8454	s << "\tpNext = " << value.pNext << '\n';
8455	s << "\thandleType = " << value.handleType << '\n';
8456	s << '}';
8457	return s;
8458}
8459
8460std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
8461{
8462	s << "VkExternalSemaphoreProperties = {\n";
8463	s << "\tsType = " << value.sType << '\n';
8464	s << "\tpNext = " << value.pNext << '\n';
8465	s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8466	s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8467	s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
8468	s << '}';
8469	return s;
8470}
8471
8472std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
8473{
8474	s << "VkExportSemaphoreCreateInfo = {\n";
8475	s << "\tsType = " << value.sType << '\n';
8476	s << "\tpNext = " << value.pNext << '\n';
8477	s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
8478	s << '}';
8479	return s;
8480}
8481
8482std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
8483{
8484	s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
8485	s << "\tsType = " << value.sType << '\n';
8486	s << "\tpNext = " << value.pNext << '\n';
8487	s << "\tsemaphore = " << value.semaphore << '\n';
8488	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8489	s << "\thandleType = " << value.handleType << '\n';
8490	s << "\thandle = " << value.handle << '\n';
8491	s << "\tname = " << getWStr(value.name) << '\n';
8492	s << '}';
8493	return s;
8494}
8495
8496std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
8497{
8498	s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
8499	s << "\tsType = " << value.sType << '\n';
8500	s << "\tpNext = " << value.pNext << '\n';
8501	s << "\tpAttributes = " << value.pAttributes << '\n';
8502	s << "\tdwAccess = " << value.dwAccess << '\n';
8503	s << "\tname = " << getWStr(value.name) << '\n';
8504	s << '}';
8505	return s;
8506}
8507
8508std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
8509{
8510	s << "VkD3D12FenceSubmitInfoKHR = {\n";
8511	s << "\tsType = " << value.sType << '\n';
8512	s << "\tpNext = " << value.pNext << '\n';
8513	s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
8514	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
8515	s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
8516	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
8517	s << '}';
8518	return s;
8519}
8520
8521std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
8522{
8523	s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
8524	s << "\tsType = " << value.sType << '\n';
8525	s << "\tpNext = " << value.pNext << '\n';
8526	s << "\tsemaphore = " << value.semaphore << '\n';
8527	s << "\thandleType = " << value.handleType << '\n';
8528	s << '}';
8529	return s;
8530}
8531
8532std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
8533{
8534	s << "VkImportSemaphoreFdInfoKHR = {\n";
8535	s << "\tsType = " << value.sType << '\n';
8536	s << "\tpNext = " << value.pNext << '\n';
8537	s << "\tsemaphore = " << value.semaphore << '\n';
8538	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8539	s << "\thandleType = " << value.handleType << '\n';
8540	s << "\tfd = " << value.fd << '\n';
8541	s << '}';
8542	return s;
8543}
8544
8545std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
8546{
8547	s << "VkSemaphoreGetFdInfoKHR = {\n";
8548	s << "\tsType = " << value.sType << '\n';
8549	s << "\tpNext = " << value.pNext << '\n';
8550	s << "\tsemaphore = " << value.semaphore << '\n';
8551	s << "\thandleType = " << value.handleType << '\n';
8552	s << '}';
8553	return s;
8554}
8555
8556std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
8557{
8558	s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
8559	s << "\tsType = " << value.sType << '\n';
8560	s << "\tpNext = " << value.pNext << '\n';
8561	s << "\tsemaphore = " << value.semaphore << '\n';
8562	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8563	s << "\thandleType = " << value.handleType << '\n';
8564	s << "\tzirconHandle = " << value.zirconHandle << '\n';
8565	s << '}';
8566	return s;
8567}
8568
8569std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
8570{
8571	s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
8572	s << "\tsType = " << value.sType << '\n';
8573	s << "\tpNext = " << value.pNext << '\n';
8574	s << "\tsemaphore = " << value.semaphore << '\n';
8575	s << "\thandleType = " << value.handleType << '\n';
8576	s << '}';
8577	return s;
8578}
8579
8580std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
8581{
8582	s << "VkPhysicalDeviceExternalFenceInfo = {\n";
8583	s << "\tsType = " << value.sType << '\n';
8584	s << "\tpNext = " << value.pNext << '\n';
8585	s << "\thandleType = " << value.handleType << '\n';
8586	s << '}';
8587	return s;
8588}
8589
8590std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
8591{
8592	s << "VkExternalFenceProperties = {\n";
8593	s << "\tsType = " << value.sType << '\n';
8594	s << "\tpNext = " << value.pNext << '\n';
8595	s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8596	s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8597	s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
8598	s << '}';
8599	return s;
8600}
8601
8602std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
8603{
8604	s << "VkExportFenceCreateInfo = {\n";
8605	s << "\tsType = " << value.sType << '\n';
8606	s << "\tpNext = " << value.pNext << '\n';
8607	s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
8608	s << '}';
8609	return s;
8610}
8611
8612std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
8613{
8614	s << "VkImportFenceWin32HandleInfoKHR = {\n";
8615	s << "\tsType = " << value.sType << '\n';
8616	s << "\tpNext = " << value.pNext << '\n';
8617	s << "\tfence = " << value.fence << '\n';
8618	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
8619	s << "\thandleType = " << value.handleType << '\n';
8620	s << "\thandle = " << value.handle << '\n';
8621	s << "\tname = " << getWStr(value.name) << '\n';
8622	s << '}';
8623	return s;
8624}
8625
8626std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
8627{
8628	s << "VkExportFenceWin32HandleInfoKHR = {\n";
8629	s << "\tsType = " << value.sType << '\n';
8630	s << "\tpNext = " << value.pNext << '\n';
8631	s << "\tpAttributes = " << value.pAttributes << '\n';
8632	s << "\tdwAccess = " << value.dwAccess << '\n';
8633	s << "\tname = " << getWStr(value.name) << '\n';
8634	s << '}';
8635	return s;
8636}
8637
8638std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
8639{
8640	s << "VkFenceGetWin32HandleInfoKHR = {\n";
8641	s << "\tsType = " << value.sType << '\n';
8642	s << "\tpNext = " << value.pNext << '\n';
8643	s << "\tfence = " << value.fence << '\n';
8644	s << "\thandleType = " << value.handleType << '\n';
8645	s << '}';
8646	return s;
8647}
8648
8649std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
8650{
8651	s << "VkImportFenceFdInfoKHR = {\n";
8652	s << "\tsType = " << value.sType << '\n';
8653	s << "\tpNext = " << value.pNext << '\n';
8654	s << "\tfence = " << value.fence << '\n';
8655	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
8656	s << "\thandleType = " << value.handleType << '\n';
8657	s << "\tfd = " << value.fd << '\n';
8658	s << '}';
8659	return s;
8660}
8661
8662std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
8663{
8664	s << "VkFenceGetFdInfoKHR = {\n";
8665	s << "\tsType = " << value.sType << '\n';
8666	s << "\tpNext = " << value.pNext << '\n';
8667	s << "\tfence = " << value.fence << '\n';
8668	s << "\thandleType = " << value.handleType << '\n';
8669	s << '}';
8670	return s;
8671}
8672
8673std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
8674{
8675	s << "VkPhysicalDeviceMultiviewFeatures = {\n";
8676	s << "\tsType = " << value.sType << '\n';
8677	s << "\tpNext = " << value.pNext << '\n';
8678	s << "\tmultiview = " << value.multiview << '\n';
8679	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
8680	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
8681	s << '}';
8682	return s;
8683}
8684
8685std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
8686{
8687	s << "VkPhysicalDeviceMultiviewProperties = {\n";
8688	s << "\tsType = " << value.sType << '\n';
8689	s << "\tpNext = " << value.pNext << '\n';
8690	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
8691	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
8692	s << '}';
8693	return s;
8694}
8695
8696std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
8697{
8698	s << "VkRenderPassMultiviewCreateInfo = {\n";
8699	s << "\tsType = " << value.sType << '\n';
8700	s << "\tpNext = " << value.pNext << '\n';
8701	s << "\tsubpassCount = " << value.subpassCount << '\n';
8702	s << "\tpViewMasks = " << value.pViewMasks << '\n';
8703	s << "\tdependencyCount = " << value.dependencyCount << '\n';
8704	s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
8705	s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
8706	s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
8707	s << '}';
8708	return s;
8709}
8710
8711std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
8712{
8713	s << "VkSurfaceCapabilities2EXT = {\n";
8714	s << "\tsType = " << value.sType << '\n';
8715	s << "\tpNext = " << value.pNext << '\n';
8716	s << "\tminImageCount = " << value.minImageCount << '\n';
8717	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8718	s << "\tcurrentExtent = " << value.currentExtent << '\n';
8719	s << "\tminImageExtent = " << value.minImageExtent << '\n';
8720	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8721	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8722	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8723	s << "\tcurrentTransform = " << value.currentTransform << '\n';
8724	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8725	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8726	s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
8727	s << '}';
8728	return s;
8729}
8730
8731std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
8732{
8733	s << "VkDisplayPowerInfoEXT = {\n";
8734	s << "\tsType = " << value.sType << '\n';
8735	s << "\tpNext = " << value.pNext << '\n';
8736	s << "\tpowerState = " << value.powerState << '\n';
8737	s << '}';
8738	return s;
8739}
8740
8741std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
8742{
8743	s << "VkDeviceEventInfoEXT = {\n";
8744	s << "\tsType = " << value.sType << '\n';
8745	s << "\tpNext = " << value.pNext << '\n';
8746	s << "\tdeviceEvent = " << value.deviceEvent << '\n';
8747	s << '}';
8748	return s;
8749}
8750
8751std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
8752{
8753	s << "VkDisplayEventInfoEXT = {\n";
8754	s << "\tsType = " << value.sType << '\n';
8755	s << "\tpNext = " << value.pNext << '\n';
8756	s << "\tdisplayEvent = " << value.displayEvent << '\n';
8757	s << '}';
8758	return s;
8759}
8760
8761std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
8762{
8763	s << "VkSwapchainCounterCreateInfoEXT = {\n";
8764	s << "\tsType = " << value.sType << '\n';
8765	s << "\tpNext = " << value.pNext << '\n';
8766	s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
8767	s << '}';
8768	return s;
8769}
8770
8771std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
8772{
8773	s << "VkPhysicalDeviceGroupProperties = {\n";
8774	s << "\tsType = " << value.sType << '\n';
8775	s << "\tpNext = " << value.pNext << '\n';
8776	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8777	s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
8778	s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
8779	s << '}';
8780	return s;
8781}
8782
8783std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
8784{
8785	s << "VkMemoryAllocateFlagsInfo = {\n";
8786	s << "\tsType = " << value.sType << '\n';
8787	s << "\tpNext = " << value.pNext << '\n';
8788	s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
8789	s << "\tdeviceMask = " << value.deviceMask << '\n';
8790	s << '}';
8791	return s;
8792}
8793
8794std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
8795{
8796	s << "VkBindBufferMemoryInfo = {\n";
8797	s << "\tsType = " << value.sType << '\n';
8798	s << "\tpNext = " << value.pNext << '\n';
8799	s << "\tbuffer = " << value.buffer << '\n';
8800	s << "\tmemory = " << value.memory << '\n';
8801	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8802	s << '}';
8803	return s;
8804}
8805
8806std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
8807{
8808	s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
8809	s << "\tsType = " << value.sType << '\n';
8810	s << "\tpNext = " << value.pNext << '\n';
8811	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8812	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8813	s << '}';
8814	return s;
8815}
8816
8817std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
8818{
8819	s << "VkBindImageMemoryInfo = {\n";
8820	s << "\tsType = " << value.sType << '\n';
8821	s << "\tpNext = " << value.pNext << '\n';
8822	s << "\timage = " << value.image << '\n';
8823	s << "\tmemory = " << value.memory << '\n';
8824	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8825	s << '}';
8826	return s;
8827}
8828
8829std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
8830{
8831	s << "VkBindImageMemoryDeviceGroupInfo = {\n";
8832	s << "\tsType = " << value.sType << '\n';
8833	s << "\tpNext = " << value.pNext << '\n';
8834	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8835	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8836	s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
8837	s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
8838	s << '}';
8839	return s;
8840}
8841
8842std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
8843{
8844	s << "VkDeviceGroupRenderPassBeginInfo = {\n";
8845	s << "\tsType = " << value.sType << '\n';
8846	s << "\tpNext = " << value.pNext << '\n';
8847	s << "\tdeviceMask = " << value.deviceMask << '\n';
8848	s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
8849	s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
8850	s << '}';
8851	return s;
8852}
8853
8854std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
8855{
8856	s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
8857	s << "\tsType = " << value.sType << '\n';
8858	s << "\tpNext = " << value.pNext << '\n';
8859	s << "\tdeviceMask = " << value.deviceMask << '\n';
8860	s << '}';
8861	return s;
8862}
8863
8864std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
8865{
8866	s << "VkDeviceGroupSubmitInfo = {\n";
8867	s << "\tsType = " << value.sType << '\n';
8868	s << "\tpNext = " << value.pNext << '\n';
8869	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8870	s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
8871	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
8872	s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
8873	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
8874	s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
8875	s << '}';
8876	return s;
8877}
8878
8879std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
8880{
8881	s << "VkDeviceGroupBindSparseInfo = {\n";
8882	s << "\tsType = " << value.sType << '\n';
8883	s << "\tpNext = " << value.pNext << '\n';
8884	s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
8885	s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
8886	s << '}';
8887	return s;
8888}
8889
8890std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
8891{
8892	s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
8893	s << "\tsType = " << value.sType << '\n';
8894	s << "\tpNext = " << value.pNext << '\n';
8895	s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
8896	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8897	s << '}';
8898	return s;
8899}
8900
8901std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
8902{
8903	s << "VkImageSwapchainCreateInfoKHR = {\n";
8904	s << "\tsType = " << value.sType << '\n';
8905	s << "\tpNext = " << value.pNext << '\n';
8906	s << "\tswapchain = " << value.swapchain << '\n';
8907	s << '}';
8908	return s;
8909}
8910
8911std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
8912{
8913	s << "VkBindImageMemorySwapchainInfoKHR = {\n";
8914	s << "\tsType = " << value.sType << '\n';
8915	s << "\tpNext = " << value.pNext << '\n';
8916	s << "\tswapchain = " << value.swapchain << '\n';
8917	s << "\timageIndex = " << value.imageIndex << '\n';
8918	s << '}';
8919	return s;
8920}
8921
8922std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
8923{
8924	s << "VkAcquireNextImageInfoKHR = {\n";
8925	s << "\tsType = " << value.sType << '\n';
8926	s << "\tpNext = " << value.pNext << '\n';
8927	s << "\tswapchain = " << value.swapchain << '\n';
8928	s << "\ttimeout = " << value.timeout << '\n';
8929	s << "\tsemaphore = " << value.semaphore << '\n';
8930	s << "\tfence = " << value.fence << '\n';
8931	s << "\tdeviceMask = " << value.deviceMask << '\n';
8932	s << '}';
8933	return s;
8934}
8935
8936std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
8937{
8938	s << "VkDeviceGroupPresentInfoKHR = {\n";
8939	s << "\tsType = " << value.sType << '\n';
8940	s << "\tpNext = " << value.pNext << '\n';
8941	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8942	s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
8943	s << "\tmode = " << value.mode << '\n';
8944	s << '}';
8945	return s;
8946}
8947
8948std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
8949{
8950	s << "VkDeviceGroupDeviceCreateInfo = {\n";
8951	s << "\tsType = " << value.sType << '\n';
8952	s << "\tpNext = " << value.pNext << '\n';
8953	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8954	s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
8955	s << '}';
8956	return s;
8957}
8958
8959std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
8960{
8961	s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
8962	s << "\tsType = " << value.sType << '\n';
8963	s << "\tpNext = " << value.pNext << '\n';
8964	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8965	s << '}';
8966	return s;
8967}
8968
8969std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
8970{
8971	s << "VkDescriptorUpdateTemplateEntry = {\n";
8972	s << "\tdstBinding = " << value.dstBinding << '\n';
8973	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
8974	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
8975	s << "\tdescriptorType = " << value.descriptorType << '\n';
8976	s << "\toffset = " << value.offset << '\n';
8977	s << "\tstride = " << value.stride << '\n';
8978	s << '}';
8979	return s;
8980}
8981
8982std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
8983{
8984	s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
8985	s << "\tsType = " << value.sType << '\n';
8986	s << "\tpNext = " << value.pNext << '\n';
8987	s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
8988	s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
8989	s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
8990	s << "\ttemplateType = " << value.templateType << '\n';
8991	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
8992	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8993	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
8994	s << "\tset = " << value.set << '\n';
8995	s << '}';
8996	return s;
8997}
8998
8999std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
9000{
9001	s << "VkXYColorEXT = {\n";
9002	s << "\tx = " << value.x << '\n';
9003	s << "\ty = " << value.y << '\n';
9004	s << '}';
9005	return s;
9006}
9007
9008std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
9009{
9010	s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
9011	s << "\tsType = " << value.sType << '\n';
9012	s << "\tpNext = " << value.pNext << '\n';
9013	s << "\tpresentId = " << value.presentId << '\n';
9014	s << '}';
9015	return s;
9016}
9017
9018std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
9019{
9020	s << "VkPresentIdKHR = {\n";
9021	s << "\tsType = " << value.sType << '\n';
9022	s << "\tpNext = " << value.pNext << '\n';
9023	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9024	s << "\tpPresentIds = " << value.pPresentIds << '\n';
9025	s << '}';
9026	return s;
9027}
9028
9029std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
9030{
9031	s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
9032	s << "\tsType = " << value.sType << '\n';
9033	s << "\tpNext = " << value.pNext << '\n';
9034	s << "\tpresentWait = " << value.presentWait << '\n';
9035	s << '}';
9036	return s;
9037}
9038
9039std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
9040{
9041	s << "VkHdrMetadataEXT = {\n";
9042	s << "\tsType = " << value.sType << '\n';
9043	s << "\tpNext = " << value.pNext << '\n';
9044	s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
9045	s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
9046	s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
9047	s << "\twhitePoint = " << value.whitePoint << '\n';
9048	s << "\tmaxLuminance = " << value.maxLuminance << '\n';
9049	s << "\tminLuminance = " << value.minLuminance << '\n';
9050	s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
9051	s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
9052	s << '}';
9053	return s;
9054}
9055
9056std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
9057{
9058	s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
9059	s << "\tsType = " << value.sType << '\n';
9060	s << "\tpNext = " << value.pNext << '\n';
9061	s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
9062	s << '}';
9063	return s;
9064}
9065
9066std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
9067{
9068	s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
9069	s << "\tsType = " << value.sType << '\n';
9070	s << "\tpNext = " << value.pNext << '\n';
9071	s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
9072	s << '}';
9073	return s;
9074}
9075
9076std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
9077{
9078	s << "VkRefreshCycleDurationGOOGLE = {\n";
9079	s << "\trefreshDuration = " << value.refreshDuration << '\n';
9080	s << '}';
9081	return s;
9082}
9083
9084std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
9085{
9086	s << "VkPastPresentationTimingGOOGLE = {\n";
9087	s << "\tpresentID = " << value.presentID << '\n';
9088	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9089	s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
9090	s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
9091	s << "\tpresentMargin = " << value.presentMargin << '\n';
9092	s << '}';
9093	return s;
9094}
9095
9096std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
9097{
9098	s << "VkPresentTimesInfoGOOGLE = {\n";
9099	s << "\tsType = " << value.sType << '\n';
9100	s << "\tpNext = " << value.pNext << '\n';
9101	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9102	s << "\tpTimes = " << value.pTimes << '\n';
9103	s << '}';
9104	return s;
9105}
9106
9107std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
9108{
9109	s << "VkPresentTimeGOOGLE = {\n";
9110	s << "\tpresentID = " << value.presentID << '\n';
9111	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9112	s << '}';
9113	return s;
9114}
9115
9116std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
9117{
9118	s << "VkIOSSurfaceCreateInfoMVK = {\n";
9119	s << "\tsType = " << value.sType << '\n';
9120	s << "\tpNext = " << value.pNext << '\n';
9121	s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
9122	s << "\tpView = " << value.pView << '\n';
9123	s << '}';
9124	return s;
9125}
9126
9127std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
9128{
9129	s << "VkMacOSSurfaceCreateInfoMVK = {\n";
9130	s << "\tsType = " << value.sType << '\n';
9131	s << "\tpNext = " << value.pNext << '\n';
9132	s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
9133	s << "\tpView = " << value.pView << '\n';
9134	s << '}';
9135	return s;
9136}
9137
9138std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
9139{
9140	s << "VkMetalSurfaceCreateInfoEXT = {\n";
9141	s << "\tsType = " << value.sType << '\n';
9142	s << "\tpNext = " << value.pNext << '\n';
9143	s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
9144	s << "\tpLayer = " << value.pLayer << '\n';
9145	s << '}';
9146	return s;
9147}
9148
9149std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
9150{
9151	s << "VkViewportWScalingNV = {\n";
9152	s << "\txcoeff = " << value.xcoeff << '\n';
9153	s << "\tycoeff = " << value.ycoeff << '\n';
9154	s << '}';
9155	return s;
9156}
9157
9158std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
9159{
9160	s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
9161	s << "\tsType = " << value.sType << '\n';
9162	s << "\tpNext = " << value.pNext << '\n';
9163	s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
9164	s << "\tviewportCount = " << value.viewportCount << '\n';
9165	s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
9166	s << '}';
9167	return s;
9168}
9169
9170std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
9171{
9172	s << "VkViewportSwizzleNV = {\n";
9173	s << "\tx = " << value.x << '\n';
9174	s << "\ty = " << value.y << '\n';
9175	s << "\tz = " << value.z << '\n';
9176	s << "\tw = " << value.w << '\n';
9177	s << '}';
9178	return s;
9179}
9180
9181std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
9182{
9183	s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
9184	s << "\tsType = " << value.sType << '\n';
9185	s << "\tpNext = " << value.pNext << '\n';
9186	s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
9187	s << "\tviewportCount = " << value.viewportCount << '\n';
9188	s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
9189	s << '}';
9190	return s;
9191}
9192
9193std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
9194{
9195	s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
9196	s << "\tsType = " << value.sType << '\n';
9197	s << "\tpNext = " << value.pNext << '\n';
9198	s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
9199	s << '}';
9200	return s;
9201}
9202
9203std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
9204{
9205	s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
9206	s << "\tsType = " << value.sType << '\n';
9207	s << "\tpNext = " << value.pNext << '\n';
9208	s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
9209	s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
9210	s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
9211	s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
9212	s << '}';
9213	return s;
9214}
9215
9216std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
9217{
9218	s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
9219	s << "\tsType = " << value.sType << '\n';
9220	s << "\tpNext = " << value.pNext << '\n';
9221	s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
9222	s << '}';
9223	return s;
9224}
9225
9226std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
9227{
9228	s << "VkInputAttachmentAspectReference = {\n";
9229	s << "\tsubpass = " << value.subpass << '\n';
9230	s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
9231	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
9232	s << '}';
9233	return s;
9234}
9235
9236std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
9237{
9238	s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
9239	s << "\tsType = " << value.sType << '\n';
9240	s << "\tpNext = " << value.pNext << '\n';
9241	s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
9242	s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
9243	s << '}';
9244	return s;
9245}
9246
9247std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
9248{
9249	s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
9250	s << "\tsType = " << value.sType << '\n';
9251	s << "\tpNext = " << value.pNext << '\n';
9252	s << "\tsurface = " << value.surface << '\n';
9253	s << '}';
9254	return s;
9255}
9256
9257std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
9258{
9259	s << "VkSurfaceCapabilities2KHR = {\n";
9260	s << "\tsType = " << value.sType << '\n';
9261	s << "\tpNext = " << value.pNext << '\n';
9262	s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
9263	s << '}';
9264	return s;
9265}
9266
9267std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
9268{
9269	s << "VkSurfaceFormat2KHR = {\n";
9270	s << "\tsType = " << value.sType << '\n';
9271	s << "\tpNext = " << value.pNext << '\n';
9272	s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
9273	s << '}';
9274	return s;
9275}
9276
9277std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
9278{
9279	s << "VkDisplayProperties2KHR = {\n";
9280	s << "\tsType = " << value.sType << '\n';
9281	s << "\tpNext = " << value.pNext << '\n';
9282	s << "\tdisplayProperties = " << value.displayProperties << '\n';
9283	s << '}';
9284	return s;
9285}
9286
9287std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
9288{
9289	s << "VkDisplayPlaneProperties2KHR = {\n";
9290	s << "\tsType = " << value.sType << '\n';
9291	s << "\tpNext = " << value.pNext << '\n';
9292	s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
9293	s << '}';
9294	return s;
9295}
9296
9297std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
9298{
9299	s << "VkDisplayModeProperties2KHR = {\n";
9300	s << "\tsType = " << value.sType << '\n';
9301	s << "\tpNext = " << value.pNext << '\n';
9302	s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
9303	s << '}';
9304	return s;
9305}
9306
9307std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
9308{
9309	s << "VkDisplayPlaneInfo2KHR = {\n";
9310	s << "\tsType = " << value.sType << '\n';
9311	s << "\tpNext = " << value.pNext << '\n';
9312	s << "\tmode = " << value.mode << '\n';
9313	s << "\tplaneIndex = " << value.planeIndex << '\n';
9314	s << '}';
9315	return s;
9316}
9317
9318std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
9319{
9320	s << "VkDisplayPlaneCapabilities2KHR = {\n";
9321	s << "\tsType = " << value.sType << '\n';
9322	s << "\tpNext = " << value.pNext << '\n';
9323	s << "\tcapabilities = " << value.capabilities << '\n';
9324	s << '}';
9325	return s;
9326}
9327
9328std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
9329{
9330	s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
9331	s << "\tsType = " << value.sType << '\n';
9332	s << "\tpNext = " << value.pNext << '\n';
9333	s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
9334	s << '}';
9335	return s;
9336}
9337
9338std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
9339{
9340	s << "VkPhysicalDevice16BitStorageFeatures = {\n";
9341	s << "\tsType = " << value.sType << '\n';
9342	s << "\tpNext = " << value.pNext << '\n';
9343	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
9344	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
9345	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
9346	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
9347	s << '}';
9348	return s;
9349}
9350
9351std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
9352{
9353	s << "VkPhysicalDeviceSubgroupProperties = {\n";
9354	s << "\tsType = " << value.sType << '\n';
9355	s << "\tpNext = " << value.pNext << '\n';
9356	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
9357	s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
9358	s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
9359	s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
9360	s << '}';
9361	return s;
9362}
9363
9364std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
9365{
9366	s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
9367	s << "\tsType = " << value.sType << '\n';
9368	s << "\tpNext = " << value.pNext << '\n';
9369	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
9370	s << '}';
9371	return s;
9372}
9373
9374std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
9375{
9376	s << "VkBufferMemoryRequirementsInfo2 = {\n";
9377	s << "\tsType = " << value.sType << '\n';
9378	s << "\tpNext = " << value.pNext << '\n';
9379	s << "\tbuffer = " << value.buffer << '\n';
9380	s << '}';
9381	return s;
9382}
9383
9384std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
9385{
9386	s << "VkDeviceBufferMemoryRequirements = {\n";
9387	s << "\tsType = " << value.sType << '\n';
9388	s << "\tpNext = " << value.pNext << '\n';
9389	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
9390	s << '}';
9391	return s;
9392}
9393
9394std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
9395{
9396	s << "VkImageMemoryRequirementsInfo2 = {\n";
9397	s << "\tsType = " << value.sType << '\n';
9398	s << "\tpNext = " << value.pNext << '\n';
9399	s << "\timage = " << value.image << '\n';
9400	s << '}';
9401	return s;
9402}
9403
9404std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
9405{
9406	s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
9407	s << "\tsType = " << value.sType << '\n';
9408	s << "\tpNext = " << value.pNext << '\n';
9409	s << "\timage = " << value.image << '\n';
9410	s << '}';
9411	return s;
9412}
9413
9414std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
9415{
9416	s << "VkDeviceImageMemoryRequirements = {\n";
9417	s << "\tsType = " << value.sType << '\n';
9418	s << "\tpNext = " << value.pNext << '\n';
9419	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
9420	s << "\tplaneAspect = " << value.planeAspect << '\n';
9421	s << '}';
9422	return s;
9423}
9424
9425std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
9426{
9427	s << "VkMemoryRequirements2 = {\n";
9428	s << "\tsType = " << value.sType << '\n';
9429	s << "\tpNext = " << value.pNext << '\n';
9430	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
9431	s << '}';
9432	return s;
9433}
9434
9435std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
9436{
9437	s << "VkSparseImageMemoryRequirements2 = {\n";
9438	s << "\tsType = " << value.sType << '\n';
9439	s << "\tpNext = " << value.pNext << '\n';
9440	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
9441	s << '}';
9442	return s;
9443}
9444
9445std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
9446{
9447	s << "VkPhysicalDevicePointClippingProperties = {\n";
9448	s << "\tsType = " << value.sType << '\n';
9449	s << "\tpNext = " << value.pNext << '\n';
9450	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
9451	s << '}';
9452	return s;
9453}
9454
9455std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
9456{
9457	s << "VkMemoryDedicatedRequirements = {\n";
9458	s << "\tsType = " << value.sType << '\n';
9459	s << "\tpNext = " << value.pNext << '\n';
9460	s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
9461	s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
9462	s << '}';
9463	return s;
9464}
9465
9466std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
9467{
9468	s << "VkMemoryDedicatedAllocateInfo = {\n";
9469	s << "\tsType = " << value.sType << '\n';
9470	s << "\tpNext = " << value.pNext << '\n';
9471	s << "\timage = " << value.image << '\n';
9472	s << "\tbuffer = " << value.buffer << '\n';
9473	s << '}';
9474	return s;
9475}
9476
9477std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
9478{
9479	s << "VkImageViewUsageCreateInfo = {\n";
9480	s << "\tsType = " << value.sType << '\n';
9481	s << "\tpNext = " << value.pNext << '\n';
9482	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
9483	s << '}';
9484	return s;
9485}
9486
9487std::ostream& operator<< (std::ostream& s, const VkImageViewSlicedCreateInfoEXT& value)
9488{
9489	s << "VkImageViewSlicedCreateInfoEXT = {\n";
9490	s << "\tsType = " << value.sType << '\n';
9491	s << "\tpNext = " << value.pNext << '\n';
9492	s << "\tsliceOffset = " << value.sliceOffset << '\n';
9493	s << "\tsliceCount = " << value.sliceCount << '\n';
9494	s << '}';
9495	return s;
9496}
9497
9498std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
9499{
9500	s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
9501	s << "\tsType = " << value.sType << '\n';
9502	s << "\tpNext = " << value.pNext << '\n';
9503	s << "\tdomainOrigin = " << value.domainOrigin << '\n';
9504	s << '}';
9505	return s;
9506}
9507
9508std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
9509{
9510	s << "VkSamplerYcbcrConversionInfo = {\n";
9511	s << "\tsType = " << value.sType << '\n';
9512	s << "\tpNext = " << value.pNext << '\n';
9513	s << "\tconversion = " << value.conversion << '\n';
9514	s << '}';
9515	return s;
9516}
9517
9518std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
9519{
9520	s << "VkSamplerYcbcrConversionCreateInfo = {\n";
9521	s << "\tsType = " << value.sType << '\n';
9522	s << "\tpNext = " << value.pNext << '\n';
9523	s << "\tformat = " << value.format << '\n';
9524	s << "\tycbcrModel = " << value.ycbcrModel << '\n';
9525	s << "\tycbcrRange = " << value.ycbcrRange << '\n';
9526	s << "\tcomponents = " << value.components << '\n';
9527	s << "\txChromaOffset = " << value.xChromaOffset << '\n';
9528	s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
9529	s << "\tchromaFilter = " << value.chromaFilter << '\n';
9530	s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
9531	s << '}';
9532	return s;
9533}
9534
9535std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
9536{
9537	s << "VkBindImagePlaneMemoryInfo = {\n";
9538	s << "\tsType = " << value.sType << '\n';
9539	s << "\tpNext = " << value.pNext << '\n';
9540	s << "\tplaneAspect = " << value.planeAspect << '\n';
9541	s << '}';
9542	return s;
9543}
9544
9545std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
9546{
9547	s << "VkImagePlaneMemoryRequirementsInfo = {\n";
9548	s << "\tsType = " << value.sType << '\n';
9549	s << "\tpNext = " << value.pNext << '\n';
9550	s << "\tplaneAspect = " << value.planeAspect << '\n';
9551	s << '}';
9552	return s;
9553}
9554
9555std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
9556{
9557	s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
9558	s << "\tsType = " << value.sType << '\n';
9559	s << "\tpNext = " << value.pNext << '\n';
9560	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
9561	s << '}';
9562	return s;
9563}
9564
9565std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
9566{
9567	s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
9568	s << "\tsType = " << value.sType << '\n';
9569	s << "\tpNext = " << value.pNext << '\n';
9570	s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
9571	s << '}';
9572	return s;
9573}
9574
9575std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
9576{
9577	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
9578	s << "\tsType = " << value.sType << '\n';
9579	s << "\tpNext = " << value.pNext << '\n';
9580	s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
9581	s << '}';
9582	return s;
9583}
9584
9585std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
9586{
9587	s << "VkConditionalRenderingBeginInfoEXT = {\n";
9588	s << "\tsType = " << value.sType << '\n';
9589	s << "\tpNext = " << value.pNext << '\n';
9590	s << "\tbuffer = " << value.buffer << '\n';
9591	s << "\toffset = " << value.offset << '\n';
9592	s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
9593	s << '}';
9594	return s;
9595}
9596
9597std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
9598{
9599	s << "VkProtectedSubmitInfo = {\n";
9600	s << "\tsType = " << value.sType << '\n';
9601	s << "\tpNext = " << value.pNext << '\n';
9602	s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
9603	s << '}';
9604	return s;
9605}
9606
9607std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
9608{
9609	s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
9610	s << "\tsType = " << value.sType << '\n';
9611	s << "\tpNext = " << value.pNext << '\n';
9612	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
9613	s << '}';
9614	return s;
9615}
9616
9617std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
9618{
9619	s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
9620	s << "\tsType = " << value.sType << '\n';
9621	s << "\tpNext = " << value.pNext << '\n';
9622	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
9623	s << '}';
9624	return s;
9625}
9626
9627std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
9628{
9629	s << "VkDeviceQueueInfo2 = {\n";
9630	s << "\tsType = " << value.sType << '\n';
9631	s << "\tpNext = " << value.pNext << '\n';
9632	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
9633	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
9634	s << "\tqueueIndex = " << value.queueIndex << '\n';
9635	s << '}';
9636	return s;
9637}
9638
9639std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
9640{
9641	s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
9642	s << "\tsType = " << value.sType << '\n';
9643	s << "\tpNext = " << value.pNext << '\n';
9644	s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
9645	s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
9646	s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
9647	s << '}';
9648	return s;
9649}
9650
9651std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
9652{
9653	s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
9654	s << "\tsType = " << value.sType << '\n';
9655	s << "\tpNext = " << value.pNext << '\n';
9656	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
9657	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
9658	s << '}';
9659	return s;
9660}
9661
9662std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
9663{
9664	s << "VkSampleLocationEXT = {\n";
9665	s << "\tx = " << value.x << '\n';
9666	s << "\ty = " << value.y << '\n';
9667	s << '}';
9668	return s;
9669}
9670
9671std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
9672{
9673	s << "VkSampleLocationsInfoEXT = {\n";
9674	s << "\tsType = " << value.sType << '\n';
9675	s << "\tpNext = " << value.pNext << '\n';
9676	s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
9677	s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
9678	s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
9679	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9680	s << '}';
9681	return s;
9682}
9683
9684std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
9685{
9686	s << "VkAttachmentSampleLocationsEXT = {\n";
9687	s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
9688	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9689	s << '}';
9690	return s;
9691}
9692
9693std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
9694{
9695	s << "VkSubpassSampleLocationsEXT = {\n";
9696	s << "\tsubpassIndex = " << value.subpassIndex << '\n';
9697	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9698	s << '}';
9699	return s;
9700}
9701
9702std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
9703{
9704	s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
9705	s << "\tsType = " << value.sType << '\n';
9706	s << "\tpNext = " << value.pNext << '\n';
9707	s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
9708	s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
9709	s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
9710	s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
9711	s << '}';
9712	return s;
9713}
9714
9715std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
9716{
9717	s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
9718	s << "\tsType = " << value.sType << '\n';
9719	s << "\tpNext = " << value.pNext << '\n';
9720	s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
9721	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9722	s << '}';
9723	return s;
9724}
9725
9726std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
9727{
9728	s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
9729	s << "\tsType = " << value.sType << '\n';
9730	s << "\tpNext = " << value.pNext << '\n';
9731	s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
9732	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9733	s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
9734	s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
9735	s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
9736	s << '}';
9737	return s;
9738}
9739
9740std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
9741{
9742	s << "VkMultisamplePropertiesEXT = {\n";
9743	s << "\tsType = " << value.sType << '\n';
9744	s << "\tpNext = " << value.pNext << '\n';
9745	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9746	s << '}';
9747	return s;
9748}
9749
9750std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
9751{
9752	s << "VkSamplerReductionModeCreateInfo = {\n";
9753	s << "\tsType = " << value.sType << '\n';
9754	s << "\tpNext = " << value.pNext << '\n';
9755	s << "\treductionMode = " << value.reductionMode << '\n';
9756	s << '}';
9757	return s;
9758}
9759
9760std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
9761{
9762	s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
9763	s << "\tsType = " << value.sType << '\n';
9764	s << "\tpNext = " << value.pNext << '\n';
9765	s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
9766	s << '}';
9767	return s;
9768}
9769
9770std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
9771{
9772	s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
9773	s << "\tsType = " << value.sType << '\n';
9774	s << "\tpNext = " << value.pNext << '\n';
9775	s << "\tmultiDraw = " << value.multiDraw << '\n';
9776	s << '}';
9777	return s;
9778}
9779
9780std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
9781{
9782	s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
9783	s << "\tsType = " << value.sType << '\n';
9784	s << "\tpNext = " << value.pNext << '\n';
9785	s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
9786	s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
9787	s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
9788	s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
9789	s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
9790	s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
9791	s << '}';
9792	return s;
9793}
9794
9795std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
9796{
9797	s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
9798	s << "\tsType = " << value.sType << '\n';
9799	s << "\tpNext = " << value.pNext << '\n';
9800	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
9801	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
9802	s << "\tblendOverlap = " << value.blendOverlap << '\n';
9803	s << '}';
9804	return s;
9805}
9806
9807std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
9808{
9809	s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
9810	s << "\tsType = " << value.sType << '\n';
9811	s << "\tpNext = " << value.pNext << '\n';
9812	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
9813	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
9814	s << '}';
9815	return s;
9816}
9817
9818std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
9819{
9820	s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
9821	s << "\tsType = " << value.sType << '\n';
9822	s << "\tpNext = " << value.pNext << '\n';
9823	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
9824	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
9825	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
9826	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
9827	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
9828	s << '}';
9829	return s;
9830}
9831
9832std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
9833{
9834	s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
9835	s << "\tsType = " << value.sType << '\n';
9836	s << "\tpNext = " << value.pNext << '\n';
9837	s << "\tdataSize = " << value.dataSize << '\n';
9838	s << "\tpData = " << value.pData << '\n';
9839	s << '}';
9840	return s;
9841}
9842
9843std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
9844{
9845	s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
9846	s << "\tsType = " << value.sType << '\n';
9847	s << "\tpNext = " << value.pNext << '\n';
9848	s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
9849	s << '}';
9850	return s;
9851}
9852
9853std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
9854{
9855	s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
9856	s << "\tsType = " << value.sType << '\n';
9857	s << "\tpNext = " << value.pNext << '\n';
9858	s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
9859	s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
9860	s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
9861	s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
9862	s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
9863	s << '}';
9864	return s;
9865}
9866
9867std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
9868{
9869	s << "VkImageFormatListCreateInfo = {\n";
9870	s << "\tsType = " << value.sType << '\n';
9871	s << "\tpNext = " << value.pNext << '\n';
9872	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
9873	s << "\tpViewFormats = " << value.pViewFormats << '\n';
9874	s << '}';
9875	return s;
9876}
9877
9878std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
9879{
9880	s << "VkValidationCacheCreateInfoEXT = {\n";
9881	s << "\tsType = " << value.sType << '\n';
9882	s << "\tpNext = " << value.pNext << '\n';
9883	s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
9884	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
9885	s << "\tpInitialData = " << value.pInitialData << '\n';
9886	s << '}';
9887	return s;
9888}
9889
9890std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
9891{
9892	s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
9893	s << "\tsType = " << value.sType << '\n';
9894	s << "\tpNext = " << value.pNext << '\n';
9895	s << "\tvalidationCache = " << value.validationCache << '\n';
9896	s << '}';
9897	return s;
9898}
9899
9900std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
9901{
9902	s << "VkPhysicalDeviceMaintenance3Properties = {\n";
9903	s << "\tsType = " << value.sType << '\n';
9904	s << "\tpNext = " << value.pNext << '\n';
9905	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
9906	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
9907	s << '}';
9908	return s;
9909}
9910
9911std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
9912{
9913	s << "VkPhysicalDeviceMaintenance4Features = {\n";
9914	s << "\tsType = " << value.sType << '\n';
9915	s << "\tpNext = " << value.pNext << '\n';
9916	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
9917	s << '}';
9918	return s;
9919}
9920
9921std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
9922{
9923	s << "VkPhysicalDeviceMaintenance4Properties = {\n";
9924	s << "\tsType = " << value.sType << '\n';
9925	s << "\tpNext = " << value.pNext << '\n';
9926	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
9927	s << '}';
9928	return s;
9929}
9930
9931std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance5FeaturesKHR& value)
9932{
9933	s << "VkPhysicalDeviceMaintenance5FeaturesKHR = {\n";
9934	s << "\tsType = " << value.sType << '\n';
9935	s << "\tpNext = " << value.pNext << '\n';
9936	s << "\tmaintenance5 = " << value.maintenance5 << '\n';
9937	s << '}';
9938	return s;
9939}
9940
9941std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance5PropertiesKHR& value)
9942{
9943	s << "VkPhysicalDeviceMaintenance5PropertiesKHR = {\n";
9944	s << "\tsType = " << value.sType << '\n';
9945	s << "\tpNext = " << value.pNext << '\n';
9946	s << "\tearlyFragmentMultisampleCoverageAfterSampleCounting = " << value.earlyFragmentMultisampleCoverageAfterSampleCounting << '\n';
9947	s << "\tearlyFragmentSampleMaskTestBeforeSampleCounting = " << value.earlyFragmentSampleMaskTestBeforeSampleCounting << '\n';
9948	s << "\tdepthStencilSwizzleOneSupport = " << value.depthStencilSwizzleOneSupport << '\n';
9949	s << "\tpolygonModePointSize = " << value.polygonModePointSize << '\n';
9950	s << "\tnonStrictSinglePixelWideLinesUseParallelogram = " << value.nonStrictSinglePixelWideLinesUseParallelogram << '\n';
9951	s << "\tnonStrictWideLinesUseParallelogram = " << value.nonStrictWideLinesUseParallelogram << '\n';
9952	s << '}';
9953	return s;
9954}
9955
9956std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance6FeaturesKHR& value)
9957{
9958	s << "VkPhysicalDeviceMaintenance6FeaturesKHR = {\n";
9959	s << "\tsType = " << value.sType << '\n';
9960	s << "\tpNext = " << value.pNext << '\n';
9961	s << "\tmaintenance6 = " << value.maintenance6 << '\n';
9962	s << '}';
9963	return s;
9964}
9965
9966std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance6PropertiesKHR& value)
9967{
9968	s << "VkPhysicalDeviceMaintenance6PropertiesKHR = {\n";
9969	s << "\tsType = " << value.sType << '\n';
9970	s << "\tpNext = " << value.pNext << '\n';
9971	s << "\tblockTexelViewCompatibleMultipleLayers = " << value.blockTexelViewCompatibleMultipleLayers << '\n';
9972	s << "\tmaxCombinedImageSamplerDescriptorCount = " << value.maxCombinedImageSamplerDescriptorCount << '\n';
9973	s << "\tfragmentShadingRateClampCombinerInputs = " << value.fragmentShadingRateClampCombinerInputs << '\n';
9974	s << '}';
9975	return s;
9976}
9977
9978std::ostream& operator<< (std::ostream& s, const VkRenderingAreaInfoKHR& value)
9979{
9980	s << "VkRenderingAreaInfoKHR = {\n";
9981	s << "\tsType = " << value.sType << '\n';
9982	s << "\tpNext = " << value.pNext << '\n';
9983	s << "\tviewMask = " << value.viewMask << '\n';
9984	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
9985	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
9986	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
9987	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
9988	s << '}';
9989	return s;
9990}
9991
9992std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
9993{
9994	s << "VkDescriptorSetLayoutSupport = {\n";
9995	s << "\tsType = " << value.sType << '\n';
9996	s << "\tpNext = " << value.pNext << '\n';
9997	s << "\tsupported = " << value.supported << '\n';
9998	s << '}';
9999	return s;
10000}
10001
10002std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
10003{
10004	s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
10005	s << "\tsType = " << value.sType << '\n';
10006	s << "\tpNext = " << value.pNext << '\n';
10007	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
10008	s << '}';
10009	return s;
10010}
10011
10012std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
10013{
10014	s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
10015	s << "\tsType = " << value.sType << '\n';
10016	s << "\tpNext = " << value.pNext << '\n';
10017	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
10018	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
10019	s << '}';
10020	return s;
10021}
10022
10023std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
10024{
10025	s << "VkPhysicalDeviceFloatControlsProperties = {\n";
10026	s << "\tsType = " << value.sType << '\n';
10027	s << "\tpNext = " << value.pNext << '\n';
10028	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
10029	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
10030	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
10031	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
10032	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
10033	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
10034	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
10035	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
10036	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
10037	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
10038	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
10039	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
10040	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
10041	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
10042	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
10043	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
10044	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
10045	s << '}';
10046	return s;
10047}
10048
10049std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
10050{
10051	s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
10052	s << "\tsType = " << value.sType << '\n';
10053	s << "\tpNext = " << value.pNext << '\n';
10054	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
10055	s << '}';
10056	return s;
10057}
10058
10059std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
10060{
10061	s << "VkShaderResourceUsageAMD = {\n";
10062	s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
10063	s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
10064	s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
10065	s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
10066	s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
10067	s << '}';
10068	return s;
10069}
10070
10071std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
10072{
10073	s << "VkShaderStatisticsInfoAMD = {\n";
10074	s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
10075	s << "\tresourceUsage = " << value.resourceUsage << '\n';
10076	s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
10077	s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
10078	s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
10079	s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
10080	s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
10081	s << '}';
10082	return s;
10083}
10084
10085std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
10086{
10087	s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
10088	s << "\tsType = " << value.sType << '\n';
10089	s << "\tpNext = " << value.pNext << '\n';
10090	s << "\tglobalPriority = " << value.globalPriority << '\n';
10091	s << '}';
10092	return s;
10093}
10094
10095std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
10096{
10097	s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
10098	s << "\tsType = " << value.sType << '\n';
10099	s << "\tpNext = " << value.pNext << '\n';
10100	s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
10101	s << '}';
10102	return s;
10103}
10104
10105std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
10106{
10107	s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
10108	s << "\tsType = " << value.sType << '\n';
10109	s << "\tpNext = " << value.pNext << '\n';
10110	s << "\tpriorityCount = " << value.priorityCount << '\n';
10111	s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
10112	s << '}';
10113	return s;
10114}
10115
10116std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
10117{
10118	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
10119	s << "\tsType = " << value.sType << '\n';
10120	s << "\tpNext = " << value.pNext << '\n';
10121	s << "\tobjectType = " << value.objectType << '\n';
10122	s << "\tobjectHandle = " << value.objectHandle << '\n';
10123	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
10124	s << '}';
10125	return s;
10126}
10127
10128std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
10129{
10130	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
10131	s << "\tsType = " << value.sType << '\n';
10132	s << "\tpNext = " << value.pNext << '\n';
10133	s << "\tobjectType = " << value.objectType << '\n';
10134	s << "\tobjectHandle = " << value.objectHandle << '\n';
10135	s << "\ttagName = " << value.tagName << '\n';
10136	s << "\ttagSize = " << value.tagSize << '\n';
10137	s << "\tpTag = " << value.pTag << '\n';
10138	s << '}';
10139	return s;
10140}
10141
10142std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
10143{
10144	s << "VkDebugUtilsLabelEXT = {\n";
10145	s << "\tsType = " << value.sType << '\n';
10146	s << "\tpNext = " << value.pNext << '\n';
10147	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
10148	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
10149	s << '}';
10150	return s;
10151}
10152
10153std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
10154{
10155	s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
10156	s << "\tsType = " << value.sType << '\n';
10157	s << "\tpNext = " << value.pNext << '\n';
10158	s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
10159	s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
10160	s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
10161	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10162	s << "\tpUserData = " << value.pUserData << '\n';
10163	s << '}';
10164	return s;
10165}
10166
10167std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
10168{
10169	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
10170	s << "\tsType = " << value.sType << '\n';
10171	s << "\tpNext = " << value.pNext << '\n';
10172	s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
10173	s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
10174	s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
10175	s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
10176	s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
10177	s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
10178	s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
10179	s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
10180	s << "\tobjectCount = " << value.objectCount << '\n';
10181	s << "\tpObjects = " << value.pObjects << '\n';
10182	s << '}';
10183	return s;
10184}
10185
10186std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
10187{
10188	s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
10189	s << "\tsType = " << value.sType << '\n';
10190	s << "\tpNext = " << value.pNext << '\n';
10191	s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
10192	s << '}';
10193	return s;
10194}
10195
10196std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
10197{
10198	s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
10199	s << "\tsType = " << value.sType << '\n';
10200	s << "\tpNext = " << value.pNext << '\n';
10201	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10202	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10203	s << "\tpUserData = " << value.pUserData << '\n';
10204	s << '}';
10205	return s;
10206}
10207
10208std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
10209{
10210	s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
10211	s << "\tsType = " << value.sType << '\n';
10212	s << "\tpNext = " << value.pNext << '\n';
10213	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10214	s << "\ttype = " << value.type << '\n';
10215	s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
10216	s << "\tsize = " << value.size << '\n';
10217	s << "\tobjectType = " << value.objectType << '\n';
10218	s << "\tobjectHandle = " << value.objectHandle << '\n';
10219	s << "\theapIndex = " << value.heapIndex << '\n';
10220	s << '}';
10221	return s;
10222}
10223
10224std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
10225{
10226	s << "VkImportMemoryHostPointerInfoEXT = {\n";
10227	s << "\tsType = " << value.sType << '\n';
10228	s << "\tpNext = " << value.pNext << '\n';
10229	s << "\thandleType = " << value.handleType << '\n';
10230	s << "\tpHostPointer = " << value.pHostPointer << '\n';
10231	s << '}';
10232	return s;
10233}
10234
10235std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
10236{
10237	s << "VkMemoryHostPointerPropertiesEXT = {\n";
10238	s << "\tsType = " << value.sType << '\n';
10239	s << "\tpNext = " << value.pNext << '\n';
10240	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10241	s << '}';
10242	return s;
10243}
10244
10245std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
10246{
10247	s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
10248	s << "\tsType = " << value.sType << '\n';
10249	s << "\tpNext = " << value.pNext << '\n';
10250	s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
10251	s << '}';
10252	return s;
10253}
10254
10255std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
10256{
10257	s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
10258	s << "\tsType = " << value.sType << '\n';
10259	s << "\tpNext = " << value.pNext << '\n';
10260	s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
10261	s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
10262	s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
10263	s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
10264	s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
10265	s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
10266	s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
10267	s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
10268	s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
10269	s << '}';
10270	return s;
10271}
10272
10273std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoKHR& value)
10274{
10275	s << "VkCalibratedTimestampInfoKHR = {\n";
10276	s << "\tsType = " << value.sType << '\n';
10277	s << "\tpNext = " << value.pNext << '\n';
10278	s << "\ttimeDomain = " << value.timeDomain << '\n';
10279	s << '}';
10280	return s;
10281}
10282
10283std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
10284{
10285	s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
10286	s << "\tsType = " << value.sType << '\n';
10287	s << "\tpNext = " << value.pNext << '\n';
10288	s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
10289	s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
10290	s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
10291	s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
10292	s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
10293	s << "\twavefrontSize = " << value.wavefrontSize << '\n';
10294	s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
10295	s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
10296	s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
10297	s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
10298	s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
10299	s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
10300	s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
10301	s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
10302	s << '}';
10303	return s;
10304}
10305
10306std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
10307{
10308	s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
10309	s << "\tsType = " << value.sType << '\n';
10310	s << "\tpNext = " << value.pNext << '\n';
10311	s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
10312	s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
10313	s << '}';
10314	return s;
10315}
10316
10317std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
10318{
10319	s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
10320	s << "\tsType = " << value.sType << '\n';
10321	s << "\tpNext = " << value.pNext << '\n';
10322	s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
10323	s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
10324	s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
10325	s << '}';
10326	return s;
10327}
10328
10329std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
10330{
10331	s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
10332	s << "\tsType = " << value.sType << '\n';
10333	s << "\tpNext = " << value.pNext << '\n';
10334	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
10335	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
10336	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
10337	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
10338	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
10339	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
10340	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
10341	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
10342	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
10343	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
10344	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
10345	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
10346	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
10347	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
10348	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
10349	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
10350	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
10351	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
10352	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
10353	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
10354	s << '}';
10355	return s;
10356}
10357
10358std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
10359{
10360	s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
10361	s << "\tsType = " << value.sType << '\n';
10362	s << "\tpNext = " << value.pNext << '\n';
10363	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
10364	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
10365	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
10366	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
10367	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
10368	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
10369	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
10370	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
10371	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
10372	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
10373	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
10374	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
10375	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
10376	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
10377	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
10378	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
10379	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
10380	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
10381	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
10382	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
10383	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
10384	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
10385	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
10386	s << '}';
10387	return s;
10388}
10389
10390std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
10391{
10392	s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
10393	s << "\tsType = " << value.sType << '\n';
10394	s << "\tpNext = " << value.pNext << '\n';
10395	s << "\tbindingCount = " << value.bindingCount << '\n';
10396	s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
10397	s << '}';
10398	return s;
10399}
10400
10401std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
10402{
10403	s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
10404	s << "\tsType = " << value.sType << '\n';
10405	s << "\tpNext = " << value.pNext << '\n';
10406	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
10407	s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
10408	s << '}';
10409	return s;
10410}
10411
10412std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
10413{
10414	s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
10415	s << "\tsType = " << value.sType << '\n';
10416	s << "\tpNext = " << value.pNext << '\n';
10417	s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
10418	s << '}';
10419	return s;
10420}
10421
10422std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
10423{
10424	s << "VkAttachmentDescription2 = {\n";
10425	s << "\tsType = " << value.sType << '\n';
10426	s << "\tpNext = " << value.pNext << '\n';
10427	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
10428	s << "\tformat = " << value.format << '\n';
10429	s << "\tsamples = " << value.samples << '\n';
10430	s << "\tloadOp = " << value.loadOp << '\n';
10431	s << "\tstoreOp = " << value.storeOp << '\n';
10432	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
10433	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
10434	s << "\tinitialLayout = " << value.initialLayout << '\n';
10435	s << "\tfinalLayout = " << value.finalLayout << '\n';
10436	s << '}';
10437	return s;
10438}
10439
10440std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
10441{
10442	s << "VkAttachmentReference2 = {\n";
10443	s << "\tsType = " << value.sType << '\n';
10444	s << "\tpNext = " << value.pNext << '\n';
10445	s << "\tattachment = " << value.attachment << '\n';
10446	s << "\tlayout = " << value.layout << '\n';
10447	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
10448	s << '}';
10449	return s;
10450}
10451
10452std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
10453{
10454	s << "VkSubpassDescription2 = {\n";
10455	s << "\tsType = " << value.sType << '\n';
10456	s << "\tpNext = " << value.pNext << '\n';
10457	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
10458	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10459	s << "\tviewMask = " << value.viewMask << '\n';
10460	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
10461	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
10462	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
10463	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
10464	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
10465	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
10466	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
10467	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
10468	s << '}';
10469	return s;
10470}
10471
10472std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
10473{
10474	s << "VkSubpassDependency2 = {\n";
10475	s << "\tsType = " << value.sType << '\n';
10476	s << "\tpNext = " << value.pNext << '\n';
10477	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
10478	s << "\tdstSubpass = " << value.dstSubpass << '\n';
10479	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
10480	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
10481	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
10482	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
10483	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
10484	s << "\tviewOffset = " << value.viewOffset << '\n';
10485	s << '}';
10486	return s;
10487}
10488
10489std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
10490{
10491	s << "VkRenderPassCreateInfo2 = {\n";
10492	s << "\tsType = " << value.sType << '\n';
10493	s << "\tpNext = " << value.pNext << '\n';
10494	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
10495	s << "\tattachmentCount = " << value.attachmentCount << '\n';
10496	s << "\tpAttachments = " << value.pAttachments << '\n';
10497	s << "\tsubpassCount = " << value.subpassCount << '\n';
10498	s << "\tpSubpasses = " << value.pSubpasses << '\n';
10499	s << "\tdependencyCount = " << value.dependencyCount << '\n';
10500	s << "\tpDependencies = " << value.pDependencies << '\n';
10501	s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
10502	s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
10503	s << '}';
10504	return s;
10505}
10506
10507std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
10508{
10509	s << "VkSubpassBeginInfo = {\n";
10510	s << "\tsType = " << value.sType << '\n';
10511	s << "\tpNext = " << value.pNext << '\n';
10512	s << "\tcontents = " << value.contents << '\n';
10513	s << '}';
10514	return s;
10515}
10516
10517std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
10518{
10519	s << "VkSubpassEndInfo = {\n";
10520	s << "\tsType = " << value.sType << '\n';
10521	s << "\tpNext = " << value.pNext << '\n';
10522	s << '}';
10523	return s;
10524}
10525
10526std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
10527{
10528	s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
10529	s << "\tsType = " << value.sType << '\n';
10530	s << "\tpNext = " << value.pNext << '\n';
10531	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
10532	s << '}';
10533	return s;
10534}
10535
10536std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
10537{
10538	s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
10539	s << "\tsType = " << value.sType << '\n';
10540	s << "\tpNext = " << value.pNext << '\n';
10541	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
10542	s << '}';
10543	return s;
10544}
10545
10546std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
10547{
10548	s << "VkSemaphoreTypeCreateInfo = {\n";
10549	s << "\tsType = " << value.sType << '\n';
10550	s << "\tpNext = " << value.pNext << '\n';
10551	s << "\tsemaphoreType = " << value.semaphoreType << '\n';
10552	s << "\tinitialValue = " << value.initialValue << '\n';
10553	s << '}';
10554	return s;
10555}
10556
10557std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
10558{
10559	s << "VkTimelineSemaphoreSubmitInfo = {\n";
10560	s << "\tsType = " << value.sType << '\n';
10561	s << "\tpNext = " << value.pNext << '\n';
10562	s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
10563	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
10564	s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
10565	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
10566	s << '}';
10567	return s;
10568}
10569
10570std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
10571{
10572	s << "VkSemaphoreWaitInfo = {\n";
10573	s << "\tsType = " << value.sType << '\n';
10574	s << "\tpNext = " << value.pNext << '\n';
10575	s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
10576	s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
10577	s << "\tpSemaphores = " << value.pSemaphores << '\n';
10578	s << "\tpValues = " << value.pValues << '\n';
10579	s << '}';
10580	return s;
10581}
10582
10583std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
10584{
10585	s << "VkSemaphoreSignalInfo = {\n";
10586	s << "\tsType = " << value.sType << '\n';
10587	s << "\tpNext = " << value.pNext << '\n';
10588	s << "\tsemaphore = " << value.semaphore << '\n';
10589	s << "\tvalue = " << value.value << '\n';
10590	s << '}';
10591	return s;
10592}
10593
10594std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionKHR& value)
10595{
10596	s << "VkVertexInputBindingDivisorDescriptionKHR = {\n";
10597	s << "\tbinding = " << value.binding << '\n';
10598	s << "\tdivisor = " << value.divisor << '\n';
10599	s << '}';
10600	return s;
10601}
10602
10603std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoKHR& value)
10604{
10605	s << "VkPipelineVertexInputDivisorStateCreateInfoKHR = {\n";
10606	s << "\tsType = " << value.sType << '\n';
10607	s << "\tpNext = " << value.pNext << '\n';
10608	s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
10609	s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
10610	s << '}';
10611	return s;
10612}
10613
10614std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
10615{
10616	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
10617	s << "\tsType = " << value.sType << '\n';
10618	s << "\tpNext = " << value.pNext << '\n';
10619	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
10620	s << '}';
10621	return s;
10622}
10623
10624std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR& value)
10625{
10626	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR = {\n";
10627	s << "\tsType = " << value.sType << '\n';
10628	s << "\tpNext = " << value.pNext << '\n';
10629	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
10630	s << "\tsupportsNonZeroFirstInstance = " << value.supportsNonZeroFirstInstance << '\n';
10631	s << '}';
10632	return s;
10633}
10634
10635std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
10636{
10637	s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
10638	s << "\tsType = " << value.sType << '\n';
10639	s << "\tpNext = " << value.pNext << '\n';
10640	s << "\tpciDomain = " << value.pciDomain << '\n';
10641	s << "\tpciBus = " << value.pciBus << '\n';
10642	s << "\tpciDevice = " << value.pciDevice << '\n';
10643	s << "\tpciFunction = " << value.pciFunction << '\n';
10644	s << '}';
10645	return s;
10646}
10647
10648std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
10649{
10650	s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
10651	s << "\tsType = " << value.sType << '\n';
10652	s << "\tpNext = " << value.pNext << '\n';
10653	s << "\tbuffer = " << value.buffer << '\n';
10654	s << '}';
10655	return s;
10656}
10657
10658std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
10659{
10660	s << "VkAndroidHardwareBufferUsageANDROID = {\n";
10661	s << "\tsType = " << value.sType << '\n';
10662	s << "\tpNext = " << value.pNext << '\n';
10663	s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
10664	s << '}';
10665	return s;
10666}
10667
10668std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
10669{
10670	s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
10671	s << "\tsType = " << value.sType << '\n';
10672	s << "\tpNext = " << value.pNext << '\n';
10673	s << "\tallocationSize = " << value.allocationSize << '\n';
10674	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10675	s << '}';
10676	return s;
10677}
10678
10679std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
10680{
10681	s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
10682	s << "\tsType = " << value.sType << '\n';
10683	s << "\tpNext = " << value.pNext << '\n';
10684	s << "\tmemory = " << value.memory << '\n';
10685	s << '}';
10686	return s;
10687}
10688
10689std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
10690{
10691	s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
10692	s << "\tsType = " << value.sType << '\n';
10693	s << "\tpNext = " << value.pNext << '\n';
10694	s << "\tformat = " << value.format << '\n';
10695	s << "\texternalFormat = " << value.externalFormat << '\n';
10696	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
10697	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
10698	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
10699	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
10700	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
10701	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
10702	s << '}';
10703	return s;
10704}
10705
10706std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
10707{
10708	s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
10709	s << "\tsType = " << value.sType << '\n';
10710	s << "\tpNext = " << value.pNext << '\n';
10711	s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
10712	s << '}';
10713	return s;
10714}
10715
10716std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
10717{
10718	s << "VkExternalFormatANDROID = {\n";
10719	s << "\tsType = " << value.sType << '\n';
10720	s << "\tpNext = " << value.pNext << '\n';
10721	s << "\texternalFormat = " << value.externalFormat << '\n';
10722	s << '}';
10723	return s;
10724}
10725
10726std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
10727{
10728	s << "VkPhysicalDevice8BitStorageFeatures = {\n";
10729	s << "\tsType = " << value.sType << '\n';
10730	s << "\tpNext = " << value.pNext << '\n';
10731	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
10732	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
10733	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
10734	s << '}';
10735	return s;
10736}
10737
10738std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
10739{
10740	s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
10741	s << "\tsType = " << value.sType << '\n';
10742	s << "\tpNext = " << value.pNext << '\n';
10743	s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
10744	s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
10745	s << '}';
10746	return s;
10747}
10748
10749std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
10750{
10751	s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
10752	s << "\tsType = " << value.sType << '\n';
10753	s << "\tpNext = " << value.pNext << '\n';
10754	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
10755	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
10756	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
10757	s << '}';
10758	return s;
10759}
10760
10761std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
10762{
10763	s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
10764	s << "\tsType = " << value.sType << '\n';
10765	s << "\tpNext = " << value.pNext << '\n';
10766	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
10767	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
10768	s << '}';
10769	return s;
10770}
10771
10772std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
10773{
10774	s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
10775	s << "\tsType = " << value.sType << '\n';
10776	s << "\tpNext = " << value.pNext << '\n';
10777	s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
10778	s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
10779	s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
10780	s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
10781	s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
10782	s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
10783	s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
10784	s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
10785	s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
10786	s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
10787	s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
10788	s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
10789	s << '}';
10790	return s;
10791}
10792
10793std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
10794{
10795	s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
10796	s << "\tsType = " << value.sType << '\n';
10797	s << "\tpNext = " << value.pNext << '\n';
10798	s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
10799	s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
10800	s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
10801	s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
10802	s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
10803	s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
10804	s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
10805	s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
10806	s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
10807	s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
10808	s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
10809	s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
10810	s << '}';
10811	return s;
10812}
10813
10814std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR& value)
10815{
10816	s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR = {\n";
10817	s << "\tsType = " << value.sType << '\n';
10818	s << "\tpNext = " << value.pNext << '\n';
10819	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
10820	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
10821	s << '}';
10822	return s;
10823}
10824
10825std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
10826{
10827	s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
10828	s << "\tsType = " << value.sType << '\n';
10829	s << "\tpNext = " << value.pNext << '\n';
10830	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
10831	s << '}';
10832	return s;
10833}
10834
10835std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
10836{
10837	s << "VkCheckpointDataNV = {\n";
10838	s << "\tsType = " << value.sType << '\n';
10839	s << "\tpNext = " << value.pNext << '\n';
10840	s << "\tstage = " << value.stage << '\n';
10841	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
10842	s << '}';
10843	return s;
10844}
10845
10846std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
10847{
10848	s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
10849	s << "\tsType = " << value.sType << '\n';
10850	s << "\tpNext = " << value.pNext << '\n';
10851	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
10852	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
10853	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
10854	s << "\tindependentResolve = " << value.independentResolve << '\n';
10855	s << '}';
10856	return s;
10857}
10858
10859std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
10860{
10861	s << "VkSubpassDescriptionDepthStencilResolve = {\n";
10862	s << "\tsType = " << value.sType << '\n';
10863	s << "\tpNext = " << value.pNext << '\n';
10864	s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
10865	s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
10866	s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
10867	s << '}';
10868	return s;
10869}
10870
10871std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
10872{
10873	s << "VkImageViewASTCDecodeModeEXT = {\n";
10874	s << "\tsType = " << value.sType << '\n';
10875	s << "\tpNext = " << value.pNext << '\n';
10876	s << "\tdecodeMode = " << value.decodeMode << '\n';
10877	s << '}';
10878	return s;
10879}
10880
10881std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
10882{
10883	s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
10884	s << "\tsType = " << value.sType << '\n';
10885	s << "\tpNext = " << value.pNext << '\n';
10886	s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
10887	s << '}';
10888	return s;
10889}
10890
10891std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
10892{
10893	s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
10894	s << "\tsType = " << value.sType << '\n';
10895	s << "\tpNext = " << value.pNext << '\n';
10896	s << "\ttransformFeedback = " << value.transformFeedback << '\n';
10897	s << "\tgeometryStreams = " << value.geometryStreams << '\n';
10898	s << '}';
10899	return s;
10900}
10901
10902std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
10903{
10904	s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
10905	s << "\tsType = " << value.sType << '\n';
10906	s << "\tpNext = " << value.pNext << '\n';
10907	s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
10908	s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
10909	s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
10910	s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
10911	s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
10912	s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
10913	s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
10914	s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
10915	s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
10916	s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
10917	s << '}';
10918	return s;
10919}
10920
10921std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
10922{
10923	s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
10924	s << "\tsType = " << value.sType << '\n';
10925	s << "\tpNext = " << value.pNext << '\n';
10926	s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
10927	s << "\trasterizationStream = " << value.rasterizationStream << '\n';
10928	s << '}';
10929	return s;
10930}
10931
10932std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
10933{
10934	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
10935	s << "\tsType = " << value.sType << '\n';
10936	s << "\tpNext = " << value.pNext << '\n';
10937	s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
10938	s << '}';
10939	return s;
10940}
10941
10942std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
10943{
10944	s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
10945	s << "\tsType = " << value.sType << '\n';
10946	s << "\tpNext = " << value.pNext << '\n';
10947	s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
10948	s << '}';
10949	return s;
10950}
10951
10952std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
10953{
10954	s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
10955	s << "\tsType = " << value.sType << '\n';
10956	s << "\tpNext = " << value.pNext << '\n';
10957	s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
10958	s << '}';
10959	return s;
10960}
10961
10962std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
10963{
10964	s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
10965	s << "\tsType = " << value.sType << '\n';
10966	s << "\tpNext = " << value.pNext << '\n';
10967	s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
10968	s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
10969	s << '}';
10970	return s;
10971}
10972
10973std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
10974{
10975	s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
10976	s << "\tsType = " << value.sType << '\n';
10977	s << "\tpNext = " << value.pNext << '\n';
10978	s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
10979	s << '}';
10980	return s;
10981}
10982
10983std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10984{
10985	s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10986	s << "\tsType = " << value.sType << '\n';
10987	s << "\tpNext = " << value.pNext << '\n';
10988	s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10989	s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10990	s << '}';
10991	return s;
10992}
10993
10994std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
10995{
10996	s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
10997	s << "\tsType = " << value.sType << '\n';
10998	s << "\tpNext = " << value.pNext << '\n';
10999	s << "\timageFootprint = " << value.imageFootprint << '\n';
11000	s << '}';
11001	return s;
11002}
11003
11004std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
11005{
11006	s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
11007	s << "\tsType = " << value.sType << '\n';
11008	s << "\tpNext = " << value.pNext << '\n';
11009	s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
11010	s << '}';
11011	return s;
11012}
11013
11014std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV& value)
11015{
11016	s << "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV = {\n";
11017	s << "\tsType = " << value.sType << '\n';
11018	s << "\tpNext = " << value.pNext << '\n';
11019	s << "\tindirectCopy = " << value.indirectCopy << '\n';
11020	s << '}';
11021	return s;
11022}
11023
11024std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV& value)
11025{
11026	s << "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV = {\n";
11027	s << "\tsType = " << value.sType << '\n';
11028	s << "\tpNext = " << value.pNext << '\n';
11029	s << "\tsupportedQueues = " << getQueueFlagsStr(value.supportedQueues) << '\n';
11030	s << '}';
11031	return s;
11032}
11033
11034std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionFeaturesNV& value)
11035{
11036	s << "VkPhysicalDeviceMemoryDecompressionFeaturesNV = {\n";
11037	s << "\tsType = " << value.sType << '\n';
11038	s << "\tpNext = " << value.pNext << '\n';
11039	s << "\tmemoryDecompression = " << value.memoryDecompression << '\n';
11040	s << '}';
11041	return s;
11042}
11043
11044std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionPropertiesNV& value)
11045{
11046	s << "VkPhysicalDeviceMemoryDecompressionPropertiesNV = {\n";
11047	s << "\tsType = " << value.sType << '\n';
11048	s << "\tpNext = " << value.pNext << '\n';
11049	s << "\tdecompressionMethods = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethods) << '\n';
11050	s << "\tmaxDecompressionIndirectCount = " << value.maxDecompressionIndirectCount << '\n';
11051	s << '}';
11052	return s;
11053}
11054
11055std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
11056{
11057	s << "VkShadingRatePaletteNV = {\n";
11058	s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
11059	s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
11060	s << '}';
11061	return s;
11062}
11063
11064std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
11065{
11066	s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
11067	s << "\tsType = " << value.sType << '\n';
11068	s << "\tpNext = " << value.pNext << '\n';
11069	s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
11070	s << "\tviewportCount = " << value.viewportCount << '\n';
11071	s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
11072	s << '}';
11073	return s;
11074}
11075
11076std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
11077{
11078	s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
11079	s << "\tsType = " << value.sType << '\n';
11080	s << "\tpNext = " << value.pNext << '\n';
11081	s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
11082	s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
11083	s << '}';
11084	return s;
11085}
11086
11087std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
11088{
11089	s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
11090	s << "\tsType = " << value.sType << '\n';
11091	s << "\tpNext = " << value.pNext << '\n';
11092	s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
11093	s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
11094	s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
11095	s << '}';
11096	return s;
11097}
11098
11099std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
11100{
11101	s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
11102	s << "\tsType = " << value.sType << '\n';
11103	s << "\tpNext = " << value.pNext << '\n';
11104	s << "\tinvocationMask = " << value.invocationMask << '\n';
11105	s << '}';
11106	return s;
11107}
11108
11109std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
11110{
11111	s << "VkCoarseSampleLocationNV = {\n";
11112	s << "\tpixelX = " << value.pixelX << '\n';
11113	s << "\tpixelY = " << value.pixelY << '\n';
11114	s << "\tsample = " << value.sample << '\n';
11115	s << '}';
11116	return s;
11117}
11118
11119std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
11120{
11121	s << "VkCoarseSampleOrderCustomNV = {\n";
11122	s << "\tshadingRate = " << value.shadingRate << '\n';
11123	s << "\tsampleCount = " << value.sampleCount << '\n';
11124	s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
11125	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
11126	s << '}';
11127	return s;
11128}
11129
11130std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
11131{
11132	s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
11133	s << "\tsType = " << value.sType << '\n';
11134	s << "\tpNext = " << value.pNext << '\n';
11135	s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
11136	s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
11137	s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
11138	s << '}';
11139	return s;
11140}
11141
11142std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
11143{
11144	s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
11145	s << "\tsType = " << value.sType << '\n';
11146	s << "\tpNext = " << value.pNext << '\n';
11147	s << "\ttaskShader = " << value.taskShader << '\n';
11148	s << "\tmeshShader = " << value.meshShader << '\n';
11149	s << '}';
11150	return s;
11151}
11152
11153std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
11154{
11155	s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
11156	s << "\tsType = " << value.sType << '\n';
11157	s << "\tpNext = " << value.pNext << '\n';
11158	s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
11159	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
11160	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
11161	s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
11162	s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
11163	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
11164	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
11165	s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
11166	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
11167	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
11168	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
11169	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
11170	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
11171	s << '}';
11172	return s;
11173}
11174
11175std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
11176{
11177	s << "VkDrawMeshTasksIndirectCommandNV = {\n";
11178	s << "\ttaskCount = " << value.taskCount << '\n';
11179	s << "\tfirstTask = " << value.firstTask << '\n';
11180	s << '}';
11181	return s;
11182}
11183
11184std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesEXT& value)
11185{
11186	s << "VkPhysicalDeviceMeshShaderFeaturesEXT = {\n";
11187	s << "\tsType = " << value.sType << '\n';
11188	s << "\tpNext = " << value.pNext << '\n';
11189	s << "\ttaskShader = " << value.taskShader << '\n';
11190	s << "\tmeshShader = " << value.meshShader << '\n';
11191	s << "\tmultiviewMeshShader = " << value.multiviewMeshShader << '\n';
11192	s << "\tprimitiveFragmentShadingRateMeshShader = " << value.primitiveFragmentShadingRateMeshShader << '\n';
11193	s << "\tmeshShaderQueries = " << value.meshShaderQueries << '\n';
11194	s << '}';
11195	return s;
11196}
11197
11198std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesEXT& value)
11199{
11200	s << "VkPhysicalDeviceMeshShaderPropertiesEXT = {\n";
11201	s << "\tsType = " << value.sType << '\n';
11202	s << "\tpNext = " << value.pNext << '\n';
11203	s << "\tmaxTaskWorkGroupTotalCount = " << value.maxTaskWorkGroupTotalCount << '\n';
11204	s << "\tmaxTaskWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupCount), DE_ARRAY_END(value.maxTaskWorkGroupCount)) << '\n';
11205	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
11206	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
11207	s << "\tmaxTaskPayloadSize = " << value.maxTaskPayloadSize << '\n';
11208	s << "\tmaxTaskSharedMemorySize = " << value.maxTaskSharedMemorySize << '\n';
11209	s << "\tmaxTaskPayloadAndSharedMemorySize = " << value.maxTaskPayloadAndSharedMemorySize << '\n';
11210	s << "\tmaxMeshWorkGroupTotalCount = " << value.maxMeshWorkGroupTotalCount << '\n';
11211	s << "\tmaxMeshWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupCount), DE_ARRAY_END(value.maxMeshWorkGroupCount)) << '\n';
11212	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
11213	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
11214	s << "\tmaxMeshSharedMemorySize = " << value.maxMeshSharedMemorySize << '\n';
11215	s << "\tmaxMeshPayloadAndSharedMemorySize = " << value.maxMeshPayloadAndSharedMemorySize << '\n';
11216	s << "\tmaxMeshOutputMemorySize = " << value.maxMeshOutputMemorySize << '\n';
11217	s << "\tmaxMeshPayloadAndOutputMemorySize = " << value.maxMeshPayloadAndOutputMemorySize << '\n';
11218	s << "\tmaxMeshOutputComponents = " << value.maxMeshOutputComponents << '\n';
11219	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
11220	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
11221	s << "\tmaxMeshOutputLayers = " << value.maxMeshOutputLayers << '\n';
11222	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
11223	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
11224	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
11225	s << "\tmaxPreferredTaskWorkGroupInvocations = " << value.maxPreferredTaskWorkGroupInvocations << '\n';
11226	s << "\tmaxPreferredMeshWorkGroupInvocations = " << value.maxPreferredMeshWorkGroupInvocations << '\n';
11227	s << "\tprefersLocalInvocationVertexOutput = " << value.prefersLocalInvocationVertexOutput << '\n';
11228	s << "\tprefersLocalInvocationPrimitiveOutput = " << value.prefersLocalInvocationPrimitiveOutput << '\n';
11229	s << "\tprefersCompactVertexOutput = " << value.prefersCompactVertexOutput << '\n';
11230	s << "\tprefersCompactPrimitiveOutput = " << value.prefersCompactPrimitiveOutput << '\n';
11231	s << '}';
11232	return s;
11233}
11234
11235std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandEXT& value)
11236{
11237	s << "VkDrawMeshTasksIndirectCommandEXT = {\n";
11238	s << "\tgroupCountX = " << value.groupCountX << '\n';
11239	s << "\tgroupCountY = " << value.groupCountY << '\n';
11240	s << "\tgroupCountZ = " << value.groupCountZ << '\n';
11241	s << '}';
11242	return s;
11243}
11244
11245std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
11246{
11247	s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
11248	s << "\tsType = " << value.sType << '\n';
11249	s << "\tpNext = " << value.pNext << '\n';
11250	s << "\ttype = " << value.type << '\n';
11251	s << "\tgeneralShader = " << value.generalShader << '\n';
11252	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11253	s << "\tanyHitShader = " << value.anyHitShader << '\n';
11254	s << "\tintersectionShader = " << value.intersectionShader << '\n';
11255	s << '}';
11256	return s;
11257}
11258
11259std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
11260{
11261	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
11262	s << "\tsType = " << value.sType << '\n';
11263	s << "\tpNext = " << value.pNext << '\n';
11264	s << "\ttype = " << value.type << '\n';
11265	s << "\tgeneralShader = " << value.generalShader << '\n';
11266	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11267	s << "\tanyHitShader = " << value.anyHitShader << '\n';
11268	s << "\tintersectionShader = " << value.intersectionShader << '\n';
11269	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
11270	s << '}';
11271	return s;
11272}
11273
11274std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
11275{
11276	s << "VkRayTracingPipelineCreateInfoNV = {\n";
11277	s << "\tsType = " << value.sType << '\n';
11278	s << "\tpNext = " << value.pNext << '\n';
11279	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11280	s << "\tstageCount = " << value.stageCount << '\n';
11281	s << "\tpStages = " << value.pStages << '\n';
11282	s << "\tgroupCount = " << value.groupCount << '\n';
11283	s << "\tpGroups = " << value.pGroups << '\n';
11284	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
11285	s << "\tlayout = " << value.layout << '\n';
11286	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11287	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11288	s << '}';
11289	return s;
11290}
11291
11292std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
11293{
11294	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
11295	s << "\tsType = " << value.sType << '\n';
11296	s << "\tpNext = " << value.pNext << '\n';
11297	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11298	s << "\tstageCount = " << value.stageCount << '\n';
11299	s << "\tpStages = " << value.pStages << '\n';
11300	s << "\tgroupCount = " << value.groupCount << '\n';
11301	s << "\tpGroups = " << value.pGroups << '\n';
11302	s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
11303	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
11304	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
11305	s << "\tpDynamicState = " << value.pDynamicState << '\n';
11306	s << "\tlayout = " << value.layout << '\n';
11307	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11308	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11309	s << '}';
11310	return s;
11311}
11312
11313std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
11314{
11315	s << "VkGeometryTrianglesNV = {\n";
11316	s << "\tsType = " << value.sType << '\n';
11317	s << "\tpNext = " << value.pNext << '\n';
11318	s << "\tvertexData = " << value.vertexData << '\n';
11319	s << "\tvertexOffset = " << value.vertexOffset << '\n';
11320	s << "\tvertexCount = " << value.vertexCount << '\n';
11321	s << "\tvertexStride = " << value.vertexStride << '\n';
11322	s << "\tvertexFormat = " << value.vertexFormat << '\n';
11323	s << "\tindexData = " << value.indexData << '\n';
11324	s << "\tindexOffset = " << value.indexOffset << '\n';
11325	s << "\tindexCount = " << value.indexCount << '\n';
11326	s << "\tindexType = " << value.indexType << '\n';
11327	s << "\ttransformData = " << value.transformData << '\n';
11328	s << "\ttransformOffset = " << value.transformOffset << '\n';
11329	s << '}';
11330	return s;
11331}
11332
11333std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
11334{
11335	s << "VkGeometryAABBNV = {\n";
11336	s << "\tsType = " << value.sType << '\n';
11337	s << "\tpNext = " << value.pNext << '\n';
11338	s << "\taabbData = " << value.aabbData << '\n';
11339	s << "\tnumAABBs = " << value.numAABBs << '\n';
11340	s << "\tstride = " << value.stride << '\n';
11341	s << "\toffset = " << value.offset << '\n';
11342	s << '}';
11343	return s;
11344}
11345
11346std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
11347{
11348	s << "VkGeometryDataNV = {\n";
11349	s << "\ttriangles = " << value.triangles << '\n';
11350	s << "\taabbs = " << value.aabbs << '\n';
11351	s << '}';
11352	return s;
11353}
11354
11355std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
11356{
11357	s << "VkGeometryNV = {\n";
11358	s << "\tsType = " << value.sType << '\n';
11359	s << "\tpNext = " << value.pNext << '\n';
11360	s << "\tgeometryType = " << value.geometryType << '\n';
11361	s << "\tgeometry = " << value.geometry << '\n';
11362	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
11363	s << '}';
11364	return s;
11365}
11366
11367std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
11368{
11369	s << "VkAccelerationStructureInfoNV = {\n";
11370	s << "\tsType = " << value.sType << '\n';
11371	s << "\tpNext = " << value.pNext << '\n';
11372	s << "\ttype = " << value.type << '\n';
11373	s << "\tflags = " << value.flags << '\n';
11374	s << "\tinstanceCount = " << value.instanceCount << '\n';
11375	s << "\tgeometryCount = " << value.geometryCount << '\n';
11376	s << "\tpGeometries = " << value.pGeometries << '\n';
11377	s << '}';
11378	return s;
11379}
11380
11381std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
11382{
11383	s << "VkAccelerationStructureCreateInfoNV = {\n";
11384	s << "\tsType = " << value.sType << '\n';
11385	s << "\tpNext = " << value.pNext << '\n';
11386	s << "\tcompactedSize = " << value.compactedSize << '\n';
11387	s << "\tinfo = " << value.info << '\n';
11388	s << '}';
11389	return s;
11390}
11391
11392std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
11393{
11394	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
11395	s << "\tsType = " << value.sType << '\n';
11396	s << "\tpNext = " << value.pNext << '\n';
11397	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11398	s << "\tmemory = " << value.memory << '\n';
11399	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
11400	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
11401	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
11402	s << '}';
11403	return s;
11404}
11405
11406std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
11407{
11408	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
11409	s << "\tsType = " << value.sType << '\n';
11410	s << "\tpNext = " << value.pNext << '\n';
11411	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
11412	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
11413	s << '}';
11414	return s;
11415}
11416
11417std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
11418{
11419	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
11420	s << "\tsType = " << value.sType << '\n';
11421	s << "\tpNext = " << value.pNext << '\n';
11422	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
11423	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
11424	s << '}';
11425	return s;
11426}
11427
11428std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
11429{
11430	s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
11431	s << "\tsType = " << value.sType << '\n';
11432	s << "\tpNext = " << value.pNext << '\n';
11433	s << "\ttype = " << value.type << '\n';
11434	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11435	s << '}';
11436	return s;
11437}
11438
11439std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
11440{
11441	s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
11442	s << "\tsType = " << value.sType << '\n';
11443	s << "\tpNext = " << value.pNext << '\n';
11444	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11445	s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
11446	s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
11447	s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
11448	s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
11449	s << '}';
11450	return s;
11451}
11452
11453std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
11454{
11455	s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
11456	s << "\tsType = " << value.sType << '\n';
11457	s << "\tpNext = " << value.pNext << '\n';
11458	s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
11459	s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
11460	s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
11461	s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
11462	s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
11463	s << '}';
11464	return s;
11465}
11466
11467std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
11468{
11469	s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
11470	s << "\tsType = " << value.sType << '\n';
11471	s << "\tpNext = " << value.pNext << '\n';
11472	s << "\trayQuery = " << value.rayQuery << '\n';
11473	s << '}';
11474	return s;
11475}
11476
11477std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
11478{
11479	s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
11480	s << "\tsType = " << value.sType << '\n';
11481	s << "\tpNext = " << value.pNext << '\n';
11482	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
11483	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
11484	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
11485	s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
11486	s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
11487	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
11488	s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
11489	s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
11490	s << '}';
11491	return s;
11492}
11493
11494std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
11495{
11496	s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
11497	s << "\tsType = " << value.sType << '\n';
11498	s << "\tpNext = " << value.pNext << '\n';
11499	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
11500	s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
11501	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
11502	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
11503	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
11504	s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
11505	s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
11506	s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
11507	s << '}';
11508	return s;
11509}
11510
11511std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
11512{
11513	s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
11514	s << "\tsType = " << value.sType << '\n';
11515	s << "\tpNext = " << value.pNext << '\n';
11516	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
11517	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
11518	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
11519	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
11520	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
11521	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
11522	s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
11523	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
11524	s << '}';
11525	return s;
11526}
11527
11528std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
11529{
11530	s << "VkStridedDeviceAddressRegionKHR = {\n";
11531	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11532	s << "\tstride = " << value.stride << '\n';
11533	s << "\tsize = " << value.size << '\n';
11534	s << '}';
11535	return s;
11536}
11537
11538std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
11539{
11540	s << "VkTraceRaysIndirectCommandKHR = {\n";
11541	s << "\twidth = " << value.width << '\n';
11542	s << "\theight = " << value.height << '\n';
11543	s << "\tdepth = " << value.depth << '\n';
11544	s << '}';
11545	return s;
11546}
11547
11548std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
11549{
11550	s << "VkTraceRaysIndirectCommand2KHR = {\n";
11551	s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
11552	s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
11553	s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
11554	s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
11555	s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
11556	s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
11557	s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
11558	s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
11559	s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
11560	s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
11561	s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
11562	s << "\twidth = " << value.width << '\n';
11563	s << "\theight = " << value.height << '\n';
11564	s << "\tdepth = " << value.depth << '\n';
11565	s << '}';
11566	return s;
11567}
11568
11569std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
11570{
11571	s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
11572	s << "\tsType = " << value.sType << '\n';
11573	s << "\tpNext = " << value.pNext << '\n';
11574	s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
11575	s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
11576	s << '}';
11577	return s;
11578}
11579
11580std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
11581{
11582	s << "VkDrmFormatModifierPropertiesListEXT = {\n";
11583	s << "\tsType = " << value.sType << '\n';
11584	s << "\tpNext = " << value.pNext << '\n';
11585	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
11586	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
11587	s << '}';
11588	return s;
11589}
11590
11591std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
11592{
11593	s << "VkDrmFormatModifierPropertiesEXT = {\n";
11594	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11595	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
11596	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
11597	s << '}';
11598	return s;
11599}
11600
11601std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
11602{
11603	s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
11604	s << "\tsType = " << value.sType << '\n';
11605	s << "\tpNext = " << value.pNext << '\n';
11606	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11607	s << "\tsharingMode = " << value.sharingMode << '\n';
11608	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
11609	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
11610	s << '}';
11611	return s;
11612}
11613
11614std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
11615{
11616	s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
11617	s << "\tsType = " << value.sType << '\n';
11618	s << "\tpNext = " << value.pNext << '\n';
11619	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
11620	s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
11621	s << '}';
11622	return s;
11623}
11624
11625std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
11626{
11627	s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
11628	s << "\tsType = " << value.sType << '\n';
11629	s << "\tpNext = " << value.pNext << '\n';
11630	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11631	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
11632	s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
11633	s << '}';
11634	return s;
11635}
11636
11637std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
11638{
11639	s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
11640	s << "\tsType = " << value.sType << '\n';
11641	s << "\tpNext = " << value.pNext << '\n';
11642	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11643	s << '}';
11644	return s;
11645}
11646
11647std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
11648{
11649	s << "VkImageStencilUsageCreateInfo = {\n";
11650	s << "\tsType = " << value.sType << '\n';
11651	s << "\tpNext = " << value.pNext << '\n';
11652	s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
11653	s << '}';
11654	return s;
11655}
11656
11657std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
11658{
11659	s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
11660	s << "\tsType = " << value.sType << '\n';
11661	s << "\tpNext = " << value.pNext << '\n';
11662	s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
11663	s << '}';
11664	return s;
11665}
11666
11667std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
11668{
11669	s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
11670	s << "\tsType = " << value.sType << '\n';
11671	s << "\tpNext = " << value.pNext << '\n';
11672	s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
11673	s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
11674	s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
11675	s << '}';
11676	return s;
11677}
11678
11679std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
11680{
11681	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
11682	s << "\tsType = " << value.sType << '\n';
11683	s << "\tpNext = " << value.pNext << '\n';
11684	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
11685	s << '}';
11686	return s;
11687}
11688
11689std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
11690{
11691	s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
11692	s << "\tsType = " << value.sType << '\n';
11693	s << "\tpNext = " << value.pNext << '\n';
11694	s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
11695	s << '}';
11696	return s;
11697}
11698
11699std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
11700{
11701	s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
11702	s << "\tsType = " << value.sType << '\n';
11703	s << "\tpNext = " << value.pNext << '\n';
11704	s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
11705	s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
11706	s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
11707	s << '}';
11708	return s;
11709}
11710
11711std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
11712{
11713	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
11714	s << "\tsType = " << value.sType << '\n';
11715	s << "\tpNext = " << value.pNext << '\n';
11716	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
11717	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
11718	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
11719	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
11720	s << '}';
11721	return s;
11722}
11723
11724std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
11725{
11726	s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
11727	s << "\tsType = " << value.sType << '\n';
11728	s << "\tpNext = " << value.pNext << '\n';
11729	s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
11730	s << '}';
11731	return s;
11732}
11733
11734std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
11735{
11736	s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
11737	s << "\tsType = " << value.sType << '\n';
11738	s << "\tpNext = " << value.pNext << '\n';
11739	s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
11740	s << '}';
11741	return s;
11742}
11743
11744std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
11745{
11746	s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
11747	s << "\tsType = " << value.sType << '\n';
11748	s << "\tpNext = " << value.pNext << '\n';
11749	s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
11750	s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
11751	s << '}';
11752	return s;
11753}
11754
11755std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
11756{
11757	s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
11758	s << "\tsType = " << value.sType << '\n';
11759	s << "\tpNext = " << value.pNext << '\n';
11760	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
11761	s << '}';
11762	return s;
11763}
11764
11765std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
11766{
11767	s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
11768	s << "\tsType = " << value.sType << '\n';
11769	s << "\tpNext = " << value.pNext << '\n';
11770	s << "\tsupportsProtected = " << value.supportsProtected << '\n';
11771	s << '}';
11772	return s;
11773}
11774
11775std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
11776{
11777	s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
11778	s << "\tsType = " << value.sType << '\n';
11779	s << "\tpNext = " << value.pNext << '\n';
11780	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
11781	s << '}';
11782	return s;
11783}
11784
11785std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
11786{
11787	s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
11788	s << "\tsType = " << value.sType << '\n';
11789	s << "\tpNext = " << value.pNext << '\n';
11790	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
11791	s << '}';
11792	return s;
11793}
11794
11795std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
11796{
11797	s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
11798	s << "\tsType = " << value.sType << '\n';
11799	s << "\tpNext = " << value.pNext << '\n';
11800	s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
11801	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
11802	s << '}';
11803	return s;
11804}
11805
11806std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
11807{
11808	s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
11809	s << "\tsType = " << value.sType << '\n';
11810	s << "\tpNext = " << value.pNext << '\n';
11811	s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
11812	s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
11813	s << '}';
11814	return s;
11815}
11816
11817std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
11818{
11819	s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
11820	s << "\tsType = " << value.sType << '\n';
11821	s << "\tpNext = " << value.pNext << '\n';
11822	s << "\tmemoryPriority = " << value.memoryPriority << '\n';
11823	s << '}';
11824	return s;
11825}
11826
11827std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
11828{
11829	s << "VkMemoryPriorityAllocateInfoEXT = {\n";
11830	s << "\tsType = " << value.sType << '\n';
11831	s << "\tpNext = " << value.pNext << '\n';
11832	s << "\tpriority = " << value.priority << '\n';
11833	s << '}';
11834	return s;
11835}
11836
11837std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
11838{
11839	s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
11840	s << "\tsType = " << value.sType << '\n';
11841	s << "\tpNext = " << value.pNext << '\n';
11842	s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
11843	s << '}';
11844	return s;
11845}
11846
11847std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
11848{
11849	s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
11850	s << "\tsType = " << value.sType << '\n';
11851	s << "\tpNext = " << value.pNext << '\n';
11852	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11853	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11854	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11855	s << '}';
11856	return s;
11857}
11858
11859std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
11860{
11861	s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
11862	s << "\tsType = " << value.sType << '\n';
11863	s << "\tpNext = " << value.pNext << '\n';
11864	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11865	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11866	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11867	s << '}';
11868	return s;
11869}
11870
11871std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
11872{
11873	s << "VkBufferDeviceAddressInfo = {\n";
11874	s << "\tsType = " << value.sType << '\n';
11875	s << "\tpNext = " << value.pNext << '\n';
11876	s << "\tbuffer = " << value.buffer << '\n';
11877	s << '}';
11878	return s;
11879}
11880
11881std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
11882{
11883	s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
11884	s << "\tsType = " << value.sType << '\n';
11885	s << "\tpNext = " << value.pNext << '\n';
11886	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
11887	s << '}';
11888	return s;
11889}
11890
11891std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
11892{
11893	s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
11894	s << "\tsType = " << value.sType << '\n';
11895	s << "\tpNext = " << value.pNext << '\n';
11896	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11897	s << '}';
11898	return s;
11899}
11900
11901std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
11902{
11903	s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
11904	s << "\tsType = " << value.sType << '\n';
11905	s << "\tpNext = " << value.pNext << '\n';
11906	s << "\timageViewType = " << value.imageViewType << '\n';
11907	s << '}';
11908	return s;
11909}
11910
11911std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
11912{
11913	s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
11914	s << "\tsType = " << value.sType << '\n';
11915	s << "\tpNext = " << value.pNext << '\n';
11916	s << "\tfilterCubic = " << value.filterCubic << '\n';
11917	s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
11918	s << '}';
11919	return s;
11920}
11921
11922std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
11923{
11924	s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
11925	s << "\tsType = " << value.sType << '\n';
11926	s << "\tpNext = " << value.pNext << '\n';
11927	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
11928	s << '}';
11929	return s;
11930}
11931
11932std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
11933{
11934	s << "VkFramebufferAttachmentsCreateInfo = {\n";
11935	s << "\tsType = " << value.sType << '\n';
11936	s << "\tpNext = " << value.pNext << '\n';
11937	s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
11938	s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
11939	s << '}';
11940	return s;
11941}
11942
11943std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
11944{
11945	s << "VkFramebufferAttachmentImageInfo = {\n";
11946	s << "\tsType = " << value.sType << '\n';
11947	s << "\tpNext = " << value.pNext << '\n';
11948	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
11949	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
11950	s << "\twidth = " << value.width << '\n';
11951	s << "\theight = " << value.height << '\n';
11952	s << "\tlayerCount = " << value.layerCount << '\n';
11953	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
11954	s << "\tpViewFormats = " << value.pViewFormats << '\n';
11955	s << '}';
11956	return s;
11957}
11958
11959std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
11960{
11961	s << "VkRenderPassAttachmentBeginInfo = {\n";
11962	s << "\tsType = " << value.sType << '\n';
11963	s << "\tpNext = " << value.pNext << '\n';
11964	s << "\tattachmentCount = " << value.attachmentCount << '\n';
11965	s << "\tpAttachments = " << value.pAttachments << '\n';
11966	s << '}';
11967	return s;
11968}
11969
11970std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
11971{
11972	s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
11973	s << "\tsType = " << value.sType << '\n';
11974	s << "\tpNext = " << value.pNext << '\n';
11975	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
11976	s << '}';
11977	return s;
11978}
11979
11980std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
11981{
11982	s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
11983	s << "\tsType = " << value.sType << '\n';
11984	s << "\tpNext = " << value.pNext << '\n';
11985	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
11986	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
11987	s << '}';
11988	return s;
11989}
11990
11991std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
11992{
11993	s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
11994	s << "\tsType = " << value.sType << '\n';
11995	s << "\tpNext = " << value.pNext << '\n';
11996	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
11997	s << '}';
11998	return s;
11999}
12000
12001std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
12002{
12003	s << "VkCooperativeMatrixPropertiesNV = {\n";
12004	s << "\tsType = " << value.sType << '\n';
12005	s << "\tpNext = " << value.pNext << '\n';
12006	s << "\tMSize = " << value.MSize << '\n';
12007	s << "\tNSize = " << value.NSize << '\n';
12008	s << "\tKSize = " << value.KSize << '\n';
12009	s << "\tAType = " << value.AType << '\n';
12010	s << "\tBType = " << value.BType << '\n';
12011	s << "\tCType = " << value.CType << '\n';
12012	s << "\tDType = " << value.DType << '\n';
12013	s << "\tscope = " << value.scope << '\n';
12014	s << '}';
12015	return s;
12016}
12017
12018std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
12019{
12020	s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
12021	s << "\tsType = " << value.sType << '\n';
12022	s << "\tpNext = " << value.pNext << '\n';
12023	s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
12024	s << '}';
12025	return s;
12026}
12027
12028std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
12029{
12030	s << "VkImageViewHandleInfoNVX = {\n";
12031	s << "\tsType = " << value.sType << '\n';
12032	s << "\tpNext = " << value.pNext << '\n';
12033	s << "\timageView = " << value.imageView << '\n';
12034	s << "\tdescriptorType = " << value.descriptorType << '\n';
12035	s << "\tsampler = " << value.sampler << '\n';
12036	s << '}';
12037	return s;
12038}
12039
12040std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
12041{
12042	s << "VkImageViewAddressPropertiesNVX = {\n";
12043	s << "\tsType = " << value.sType << '\n';
12044	s << "\tpNext = " << value.pNext << '\n';
12045	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12046	s << "\tsize = " << value.size << '\n';
12047	s << '}';
12048	return s;
12049}
12050
12051std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
12052{
12053	s << "VkPresentFrameTokenGGP = {\n";
12054	s << "\tsType = " << value.sType << '\n';
12055	s << "\tpNext = " << value.pNext << '\n';
12056	s << "\tframeToken = " << value.frameToken << '\n';
12057	s << '}';
12058	return s;
12059}
12060
12061std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
12062{
12063	s << "VkPipelineCreationFeedback = {\n";
12064	s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
12065	s << "\tduration = " << value.duration << '\n';
12066	s << '}';
12067	return s;
12068}
12069
12070std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
12071{
12072	s << "VkPipelineCreationFeedbackCreateInfo = {\n";
12073	s << "\tsType = " << value.sType << '\n';
12074	s << "\tpNext = " << value.pNext << '\n';
12075	s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
12076	s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
12077	s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
12078	s << '}';
12079	return s;
12080}
12081
12082std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
12083{
12084	s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
12085	s << "\tsType = " << value.sType << '\n';
12086	s << "\tpNext = " << value.pNext << '\n';
12087	s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
12088	s << '}';
12089	return s;
12090}
12091
12092std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
12093{
12094	s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
12095	s << "\tsType = " << value.sType << '\n';
12096	s << "\tpNext = " << value.pNext << '\n';
12097	s << "\thmonitor = " << value.hmonitor << '\n';
12098	s << '}';
12099	return s;
12100}
12101
12102std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
12103{
12104	s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
12105	s << "\tsType = " << value.sType << '\n';
12106	s << "\tpNext = " << value.pNext << '\n';
12107	s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
12108	s << '}';
12109	return s;
12110}
12111
12112std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentBarrierFeaturesNV& value)
12113{
12114	s << "VkPhysicalDevicePresentBarrierFeaturesNV = {\n";
12115	s << "\tsType = " << value.sType << '\n';
12116	s << "\tpNext = " << value.pNext << '\n';
12117	s << "\tpresentBarrier = " << value.presentBarrier << '\n';
12118	s << '}';
12119	return s;
12120}
12121
12122std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesPresentBarrierNV& value)
12123{
12124	s << "VkSurfaceCapabilitiesPresentBarrierNV = {\n";
12125	s << "\tsType = " << value.sType << '\n';
12126	s << "\tpNext = " << value.pNext << '\n';
12127	s << "\tpresentBarrierSupported = " << value.presentBarrierSupported << '\n';
12128	s << '}';
12129	return s;
12130}
12131
12132std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentBarrierCreateInfoNV& value)
12133{
12134	s << "VkSwapchainPresentBarrierCreateInfoNV = {\n";
12135	s << "\tsType = " << value.sType << '\n';
12136	s << "\tpNext = " << value.pNext << '\n';
12137	s << "\tpresentBarrierEnable = " << value.presentBarrierEnable << '\n';
12138	s << '}';
12139	return s;
12140}
12141
12142std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
12143{
12144	s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
12145	s << "\tsType = " << value.sType << '\n';
12146	s << "\tpNext = " << value.pNext << '\n';
12147	s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
12148	s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
12149	s << '}';
12150	return s;
12151}
12152
12153std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
12154{
12155	s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
12156	s << "\tsType = " << value.sType << '\n';
12157	s << "\tpNext = " << value.pNext << '\n';
12158	s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
12159	s << '}';
12160	return s;
12161}
12162
12163std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
12164{
12165	s << "VkPerformanceCounterKHR = {\n";
12166	s << "\tsType = " << value.sType << '\n';
12167	s << "\tpNext = " << value.pNext << '\n';
12168	s << "\tunit = " << value.unit << '\n';
12169	s << "\tscope = " << value.scope << '\n';
12170	s << "\tstorage = " << value.storage << '\n';
12171	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';
12172	s << '}';
12173	return s;
12174}
12175
12176std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
12177{
12178	s << "VkPerformanceCounterDescriptionKHR = {\n";
12179	s << "\tsType = " << value.sType << '\n';
12180	s << "\tpNext = " << value.pNext << '\n';
12181	s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
12182	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12183	s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
12184	s << "\tdescription = " << (const char*)value.description << '\n';
12185	s << '}';
12186	return s;
12187}
12188
12189std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
12190{
12191	s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
12192	s << "\tsType = " << value.sType << '\n';
12193	s << "\tpNext = " << value.pNext << '\n';
12194	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
12195	s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
12196	s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
12197	s << '}';
12198	return s;
12199}
12200
12201std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
12202{
12203	s << "VkPerformanceCounterResultKHR = {\n";
12204	s << "\tint32 = " << value.int32 << '\n';
12205	s << "\tint64 = " << value.int64 << '\n';
12206	s << "\tuint32 = " << value.uint32 << '\n';
12207	s << "\tuint64 = " << value.uint64 << '\n';
12208	s << "\tfloat32 = " << value.float32 << '\n';
12209	s << "\tfloat64 = " << value.float64 << '\n';
12210	s << '}';
12211	return s;
12212}
12213
12214std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
12215{
12216	s << "VkAcquireProfilingLockInfoKHR = {\n";
12217	s << "\tsType = " << value.sType << '\n';
12218	s << "\tpNext = " << value.pNext << '\n';
12219	s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
12220	s << "\ttimeout = " << value.timeout << '\n';
12221	s << '}';
12222	return s;
12223}
12224
12225std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
12226{
12227	s << "VkPerformanceQuerySubmitInfoKHR = {\n";
12228	s << "\tsType = " << value.sType << '\n';
12229	s << "\tpNext = " << value.pNext << '\n';
12230	s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
12231	s << '}';
12232	return s;
12233}
12234
12235std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
12236{
12237	s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
12238	s << "\tsType = " << value.sType << '\n';
12239	s << "\tpNext = " << value.pNext << '\n';
12240	s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
12241	s << '}';
12242	return s;
12243}
12244
12245std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
12246{
12247	s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
12248	s << "\tsType = " << value.sType << '\n';
12249	s << "\tpNext = " << value.pNext << '\n';
12250	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12251	s << '}';
12252	return s;
12253}
12254
12255std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
12256{
12257	s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
12258	s << "\tsType = " << value.sType << '\n';
12259	s << "\tpNext = " << value.pNext << '\n';
12260	s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
12261	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12262	s << '}';
12263	return s;
12264}
12265
12266std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
12267{
12268	s << "VkFramebufferMixedSamplesCombinationNV = {\n";
12269	s << "\tsType = " << value.sType << '\n';
12270	s << "\tpNext = " << value.pNext << '\n';
12271	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12272	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
12273	s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
12274	s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
12275	s << '}';
12276	return s;
12277}
12278
12279std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
12280{
12281	s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
12282	s << "\tsType = " << value.sType << '\n';
12283	s << "\tpNext = " << value.pNext << '\n';
12284	s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
12285	s << '}';
12286	return s;
12287}
12288
12289std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
12290{
12291	s << "VkPerformanceValueDataINTEL = {\n";
12292	s << "\tvalue32 = " << value.value32 << '\n';
12293	s << "\tvalue64 = " << value.value64 << '\n';
12294	s << "\tvalueFloat = " << value.valueFloat << '\n';
12295	s << "\tvalueBool = " << value.valueBool << '\n';
12296	s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
12297	s << '}';
12298	return s;
12299}
12300
12301std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
12302{
12303	s << "VkPerformanceValueINTEL = {\n";
12304	s << "\ttype = " << value.type << '\n';
12305	s << "\tdata = " << value.data << '\n';
12306	s << '}';
12307	return s;
12308}
12309
12310std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
12311{
12312	s << "VkInitializePerformanceApiInfoINTEL = {\n";
12313	s << "\tsType = " << value.sType << '\n';
12314	s << "\tpNext = " << value.pNext << '\n';
12315	s << "\tpUserData = " << value.pUserData << '\n';
12316	s << '}';
12317	return s;
12318}
12319
12320std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
12321{
12322	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
12323	s << "\tsType = " << value.sType << '\n';
12324	s << "\tpNext = " << value.pNext << '\n';
12325	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
12326	s << '}';
12327	return s;
12328}
12329
12330std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
12331{
12332	s << "VkPerformanceMarkerInfoINTEL = {\n";
12333	s << "\tsType = " << value.sType << '\n';
12334	s << "\tpNext = " << value.pNext << '\n';
12335	s << "\tmarker = " << value.marker << '\n';
12336	s << '}';
12337	return s;
12338}
12339
12340std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
12341{
12342	s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
12343	s << "\tsType = " << value.sType << '\n';
12344	s << "\tpNext = " << value.pNext << '\n';
12345	s << "\tmarker = " << value.marker << '\n';
12346	s << '}';
12347	return s;
12348}
12349
12350std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
12351{
12352	s << "VkPerformanceOverrideInfoINTEL = {\n";
12353	s << "\tsType = " << value.sType << '\n';
12354	s << "\tpNext = " << value.pNext << '\n';
12355	s << "\ttype = " << value.type << '\n';
12356	s << "\tenable = " << value.enable << '\n';
12357	s << "\tparameter = " << value.parameter << '\n';
12358	s << '}';
12359	return s;
12360}
12361
12362std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
12363{
12364	s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
12365	s << "\tsType = " << value.sType << '\n';
12366	s << "\tpNext = " << value.pNext << '\n';
12367	s << "\ttype = " << value.type << '\n';
12368	s << '}';
12369	return s;
12370}
12371
12372std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
12373{
12374	s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
12375	s << "\tsType = " << value.sType << '\n';
12376	s << "\tpNext = " << value.pNext << '\n';
12377	s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
12378	s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
12379	s << '}';
12380	return s;
12381}
12382
12383std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesKHR& value)
12384{
12385	s << "VkPhysicalDeviceIndexTypeUint8FeaturesKHR = {\n";
12386	s << "\tsType = " << value.sType << '\n';
12387	s << "\tpNext = " << value.pNext << '\n';
12388	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
12389	s << '}';
12390	return s;
12391}
12392
12393std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
12394{
12395	s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
12396	s << "\tsType = " << value.sType << '\n';
12397	s << "\tpNext = " << value.pNext << '\n';
12398	s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
12399	s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
12400	s << '}';
12401	return s;
12402}
12403
12404std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
12405{
12406	s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
12407	s << "\tsType = " << value.sType << '\n';
12408	s << "\tpNext = " << value.pNext << '\n';
12409	s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
12410	s << '}';
12411	return s;
12412}
12413
12414std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
12415{
12416	s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
12417	s << "\tsType = " << value.sType << '\n';
12418	s << "\tpNext = " << value.pNext << '\n';
12419	s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
12420	s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
12421	s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
12422	s << '}';
12423	return s;
12424}
12425
12426std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
12427{
12428	s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
12429	s << "\tsType = " << value.sType << '\n';
12430	s << "\tpNext = " << value.pNext << '\n';
12431	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
12432	s << '}';
12433	return s;
12434}
12435
12436std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
12437{
12438	s << "VkAttachmentReferenceStencilLayout = {\n";
12439	s << "\tsType = " << value.sType << '\n';
12440	s << "\tpNext = " << value.pNext << '\n';
12441	s << "\tstencilLayout = " << value.stencilLayout << '\n';
12442	s << '}';
12443	return s;
12444}
12445
12446std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
12447{
12448	s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
12449	s << "\tsType = " << value.sType << '\n';
12450	s << "\tpNext = " << value.pNext << '\n';
12451	s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
12452	s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
12453	s << '}';
12454	return s;
12455}
12456
12457std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
12458{
12459	s << "VkAttachmentDescriptionStencilLayout = {\n";
12460	s << "\tsType = " << value.sType << '\n';
12461	s << "\tpNext = " << value.pNext << '\n';
12462	s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
12463	s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
12464	s << '}';
12465	return s;
12466}
12467
12468std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
12469{
12470	s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
12471	s << "\tsType = " << value.sType << '\n';
12472	s << "\tpNext = " << value.pNext << '\n';
12473	s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
12474	s << '}';
12475	return s;
12476}
12477
12478std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
12479{
12480	s << "VkPipelineInfoKHR = {\n";
12481	s << "\tsType = " << value.sType << '\n';
12482	s << "\tpNext = " << value.pNext << '\n';
12483	s << "\tpipeline = " << value.pipeline << '\n';
12484	s << '}';
12485	return s;
12486}
12487
12488std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
12489{
12490	s << "VkPipelineExecutablePropertiesKHR = {\n";
12491	s << "\tsType = " << value.sType << '\n';
12492	s << "\tpNext = " << value.pNext << '\n';
12493	s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
12494	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12495	s << "\tdescription = " << (const char*)value.description << '\n';
12496	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
12497	s << '}';
12498	return s;
12499}
12500
12501std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
12502{
12503	s << "VkPipelineExecutableInfoKHR = {\n";
12504	s << "\tsType = " << value.sType << '\n';
12505	s << "\tpNext = " << value.pNext << '\n';
12506	s << "\tpipeline = " << value.pipeline << '\n';
12507	s << "\texecutableIndex = " << value.executableIndex << '\n';
12508	s << '}';
12509	return s;
12510}
12511
12512std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
12513{
12514	s << "VkPipelineExecutableStatisticValueKHR = {\n";
12515	s << "\tb32 = " << value.b32 << '\n';
12516	s << "\ti64 = " << value.i64 << '\n';
12517	s << "\tu64 = " << value.u64 << '\n';
12518	s << "\tf64 = " << value.f64 << '\n';
12519	s << '}';
12520	return s;
12521}
12522
12523std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
12524{
12525	s << "VkPipelineExecutableStatisticKHR = {\n";
12526	s << "\tsType = " << value.sType << '\n';
12527	s << "\tpNext = " << value.pNext << '\n';
12528	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12529	s << "\tdescription = " << (const char*)value.description << '\n';
12530	s << "\tformat = " << value.format << '\n';
12531	s << "\tvalue = " << value.value << '\n';
12532	s << '}';
12533	return s;
12534}
12535
12536std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
12537{
12538	s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
12539	s << "\tsType = " << value.sType << '\n';
12540	s << "\tpNext = " << value.pNext << '\n';
12541	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12542	s << "\tdescription = " << (const char*)value.description << '\n';
12543	s << "\tisText = " << value.isText << '\n';
12544	s << "\tdataSize = " << value.dataSize << '\n';
12545	s << "\tpData = " << value.pData << '\n';
12546	s << '}';
12547	return s;
12548}
12549
12550std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
12551{
12552	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
12553	s << "\tsType = " << value.sType << '\n';
12554	s << "\tpNext = " << value.pNext << '\n';
12555	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
12556	s << '}';
12557	return s;
12558}
12559
12560std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
12561{
12562	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
12563	s << "\tsType = " << value.sType << '\n';
12564	s << "\tpNext = " << value.pNext << '\n';
12565	s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
12566	s << '}';
12567	return s;
12568}
12569
12570std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
12571{
12572	s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
12573	s << "\tsType = " << value.sType << '\n';
12574	s << "\tpNext = " << value.pNext << '\n';
12575	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
12576	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
12577	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
12578	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
12579	s << '}';
12580	return s;
12581}
12582
12583std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
12584{
12585	s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
12586	s << "\tsType = " << value.sType << '\n';
12587	s << "\tpNext = " << value.pNext << '\n';
12588	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
12589	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
12590	s << '}';
12591	return s;
12592}
12593
12594std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
12595{
12596	s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
12597	s << "\tsType = " << value.sType << '\n';
12598	s << "\tpNext = " << value.pNext << '\n';
12599	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
12600	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
12601	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
12602	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
12603	s << '}';
12604	return s;
12605}
12606
12607std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
12608{
12609	s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
12610	s << "\tsType = " << value.sType << '\n';
12611	s << "\tpNext = " << value.pNext << '\n';
12612	s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
12613	s << '}';
12614	return s;
12615}
12616
12617std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
12618{
12619	s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
12620	s << "\tsType = " << value.sType << '\n';
12621	s << "\tpNext = " << value.pNext << '\n';
12622	s << "\trenderPass = " << value.renderPass << '\n';
12623	s << "\tsubpass = " << value.subpass << '\n';
12624	s << '}';
12625	return s;
12626}
12627
12628std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
12629{
12630	s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
12631	s << "\tsType = " << value.sType << '\n';
12632	s << "\tpNext = " << value.pNext << '\n';
12633	s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
12634	s << '}';
12635	return s;
12636}
12637
12638std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI& value)
12639{
12640	s << "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI = {\n";
12641	s << "\tsType = " << value.sType << '\n';
12642	s << "\tpNext = " << value.pNext << '\n';
12643	s << "\tmaxWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxWorkGroupCount), DE_ARRAY_END(value.maxWorkGroupCount)) << '\n';
12644	s << "\tmaxWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxWorkGroupSize), DE_ARRAY_END(value.maxWorkGroupSize)) << '\n';
12645	s << "\tmaxOutputClusterCount = " << value.maxOutputClusterCount << '\n';
12646	s << "\tindirectBufferOffsetAlignment = " << value.indirectBufferOffsetAlignment << '\n';
12647	s << '}';
12648	return s;
12649}
12650
12651std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
12652{
12653	s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
12654	s << "\tsType = " << value.sType << '\n';
12655	s << "\tpNext = " << value.pNext << '\n';
12656	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
12657	s << '}';
12658	return s;
12659}
12660
12661std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
12662{
12663	s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
12664	s << "\tsType = " << value.sType << '\n';
12665	s << "\tpNext = " << value.pNext << '\n';
12666	s << "\tmemory = " << value.memory << '\n';
12667	s << '}';
12668	return s;
12669}
12670
12671std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesKHR& value)
12672{
12673	s << "VkPhysicalDeviceLineRasterizationFeaturesKHR = {\n";
12674	s << "\tsType = " << value.sType << '\n';
12675	s << "\tpNext = " << value.pNext << '\n';
12676	s << "\trectangularLines = " << value.rectangularLines << '\n';
12677	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
12678	s << "\tsmoothLines = " << value.smoothLines << '\n';
12679	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
12680	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
12681	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
12682	s << '}';
12683	return s;
12684}
12685
12686std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesKHR& value)
12687{
12688	s << "VkPhysicalDeviceLineRasterizationPropertiesKHR = {\n";
12689	s << "\tsType = " << value.sType << '\n';
12690	s << "\tpNext = " << value.pNext << '\n';
12691	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
12692	s << '}';
12693	return s;
12694}
12695
12696std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoKHR& value)
12697{
12698	s << "VkPipelineRasterizationLineStateCreateInfoKHR = {\n";
12699	s << "\tsType = " << value.sType << '\n';
12700	s << "\tpNext = " << value.pNext << '\n';
12701	s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
12702	s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
12703	s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
12704	s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
12705	s << '}';
12706	return s;
12707}
12708
12709std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
12710{
12711	s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
12712	s << "\tsType = " << value.sType << '\n';
12713	s << "\tpNext = " << value.pNext << '\n';
12714	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
12715	s << '}';
12716	return s;
12717}
12718
12719std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
12720{
12721	s << "VkPhysicalDeviceVulkan11Features = {\n";
12722	s << "\tsType = " << value.sType << '\n';
12723	s << "\tpNext = " << value.pNext << '\n';
12724	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
12725	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
12726	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
12727	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
12728	s << "\tmultiview = " << value.multiview << '\n';
12729	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
12730	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
12731	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
12732	s << "\tvariablePointers = " << value.variablePointers << '\n';
12733	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
12734	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
12735	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
12736	s << '}';
12737	return s;
12738}
12739
12740std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
12741{
12742	s << "VkPhysicalDeviceVulkan11Properties = {\n";
12743	s << "\tsType = " << value.sType << '\n';
12744	s << "\tpNext = " << value.pNext << '\n';
12745	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';
12746	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';
12747	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';
12748	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
12749	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
12750	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
12751	s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
12752	s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
12753	s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
12754	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
12755	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
12756	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
12757	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
12758	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
12759	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
12760	s << '}';
12761	return s;
12762}
12763
12764std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
12765{
12766	s << "VkPhysicalDeviceVulkan12Features = {\n";
12767	s << "\tsType = " << value.sType << '\n';
12768	s << "\tpNext = " << value.pNext << '\n';
12769	s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
12770	s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
12771	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
12772	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
12773	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
12774	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
12775	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
12776	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
12777	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
12778	s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
12779	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
12780	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
12781	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
12782	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
12783	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
12784	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
12785	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
12786	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
12787	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
12788	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
12789	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
12790	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
12791	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
12792	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
12793	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
12794	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
12795	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
12796	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
12797	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
12798	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
12799	s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
12800	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
12801	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
12802	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
12803	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
12804	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
12805	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
12806	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
12807	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
12808	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
12809	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
12810	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
12811	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
12812	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
12813	s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
12814	s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
12815	s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
12816	s << '}';
12817	return s;
12818}
12819
12820std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
12821{
12822	s << "VkPhysicalDeviceVulkan12Properties = {\n";
12823	s << "\tsType = " << value.sType << '\n';
12824	s << "\tpNext = " << value.pNext << '\n';
12825	s << "\tdriverID = " << value.driverID << '\n';
12826	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
12827	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
12828	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
12829	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
12830	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
12831	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
12832	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
12833	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
12834	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
12835	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
12836	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
12837	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
12838	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
12839	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
12840	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
12841	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
12842	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
12843	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
12844	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
12845	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
12846	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
12847	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
12848	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
12849	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
12850	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
12851	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
12852	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
12853	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
12854	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
12855	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
12856	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
12857	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
12858	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
12859	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
12860	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
12861	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
12862	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
12863	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
12864	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
12865	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
12866	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
12867	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
12868	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
12869	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
12870	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
12871	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
12872	s << "\tindependentResolve = " << value.independentResolve << '\n';
12873	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
12874	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
12875	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
12876	s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
12877	s << '}';
12878	return s;
12879}
12880
12881std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
12882{
12883	s << "VkPhysicalDeviceVulkan13Features = {\n";
12884	s << "\tsType = " << value.sType << '\n';
12885	s << "\tpNext = " << value.pNext << '\n';
12886	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12887	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
12888	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
12889	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
12890	s << "\tprivateData = " << value.privateData << '\n';
12891	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
12892	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
12893	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
12894	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
12895	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
12896	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
12897	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12898	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
12899	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
12900	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
12901	s << '}';
12902	return s;
12903}
12904
12905std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
12906{
12907	s << "VkPhysicalDeviceVulkan13Properties = {\n";
12908	s << "\tsType = " << value.sType << '\n';
12909	s << "\tpNext = " << value.pNext << '\n';
12910	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
12911	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
12912	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
12913	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
12914	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
12915	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
12916	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
12917	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
12918	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
12919	s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
12920	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
12921	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
12922	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
12923	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
12924	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
12925	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
12926	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
12927	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
12928	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
12929	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
12930	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
12931	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
12932	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
12933	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
12934	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
12935	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
12936	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
12937	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
12938	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
12939	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
12940	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
12941	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
12942	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
12943	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
12944	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
12945	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
12946	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
12947	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
12948	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
12949	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
12950	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
12951	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
12952	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
12953	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
12954	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
12955	s << '}';
12956	return s;
12957}
12958
12959std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
12960{
12961	s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
12962	s << "\tsType = " << value.sType << '\n';
12963	s << "\tpNext = " << value.pNext << '\n';
12964	s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
12965	s << '}';
12966	return s;
12967}
12968
12969std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
12970{
12971	s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
12972	s << "\tsType = " << value.sType << '\n';
12973	s << "\tpNext = " << value.pNext << '\n';
12974	s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
12975	s << '}';
12976	return s;
12977}
12978
12979std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
12980{
12981	s << "VkPhysicalDeviceToolProperties = {\n";
12982	s << "\tsType = " << value.sType << '\n';
12983	s << "\tpNext = " << value.pNext << '\n';
12984	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12985	s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
12986	s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
12987	s << "\tdescription = " << (const char*)value.description << '\n';
12988	s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
12989	s << '}';
12990	return s;
12991}
12992
12993std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
12994{
12995	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
12996	s << "\tsType = " << value.sType << '\n';
12997	s << "\tpNext = " << value.pNext << '\n';
12998	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
12999	s << "\tformat = " << value.format << '\n';
13000	s << '}';
13001	return s;
13002}
13003
13004std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
13005{
13006	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
13007	s << "\tsType = " << value.sType << '\n';
13008	s << "\tpNext = " << value.pNext << '\n';
13009	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
13010	s << '}';
13011	return s;
13012}
13013
13014std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
13015{
13016	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
13017	s << "\tsType = " << value.sType << '\n';
13018	s << "\tpNext = " << value.pNext << '\n';
13019	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
13020	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
13021	s << '}';
13022	return s;
13023}
13024
13025std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
13026{
13027	s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
13028	s << "\tsType = " << value.sType << '\n';
13029	s << "\tpNext = " << value.pNext << '\n';
13030	s << "\tcomponents = " << value.components << '\n';
13031	s << "\tsrgb = " << value.srgb << '\n';
13032	s << '}';
13033	return s;
13034}
13035
13036std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
13037{
13038	s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
13039	s << "\tsType = " << value.sType << '\n';
13040	s << "\tpNext = " << value.pNext << '\n';
13041	s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
13042	s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
13043	s << '}';
13044	return s;
13045}
13046
13047std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
13048{
13049	s << "VkDeviceOrHostAddressKHR = {\n";
13050	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13051	s << "\thostAddress = " << value.hostAddress << '\n';
13052	s << '}';
13053	return s;
13054}
13055
13056std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
13057{
13058	s << "VkDeviceOrHostAddressConstKHR = {\n";
13059	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13060	s << "\thostAddress = " << value.hostAddress << '\n';
13061	s << '}';
13062	return s;
13063}
13064
13065std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstAMDX& value)
13066{
13067	s << "VkDeviceOrHostAddressConstAMDX = {\n";
13068	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13069	s << "\thostAddress = " << value.hostAddress << '\n';
13070	s << '}';
13071	return s;
13072}
13073
13074std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
13075{
13076	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
13077	s << "\tsType = " << value.sType << '\n';
13078	s << "\tpNext = " << value.pNext << '\n';
13079	s << "\tvertexFormat = " << value.vertexFormat << '\n';
13080	s << "\tvertexData = " << value.vertexData << '\n';
13081	s << "\tvertexStride = " << value.vertexStride << '\n';
13082	s << "\tmaxVertex = " << value.maxVertex << '\n';
13083	s << "\tindexType = " << value.indexType << '\n';
13084	s << "\tindexData = " << value.indexData << '\n';
13085	s << "\ttransformData = " << value.transformData << '\n';
13086	s << '}';
13087	return s;
13088}
13089
13090std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
13091{
13092	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
13093	s << "\tsType = " << value.sType << '\n';
13094	s << "\tpNext = " << value.pNext << '\n';
13095	s << "\tdata = " << value.data << '\n';
13096	s << "\tstride = " << value.stride << '\n';
13097	s << '}';
13098	return s;
13099}
13100
13101std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
13102{
13103	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
13104	s << "\tsType = " << value.sType << '\n';
13105	s << "\tpNext = " << value.pNext << '\n';
13106	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
13107	s << "\tdata = " << value.data << '\n';
13108	s << '}';
13109	return s;
13110}
13111
13112std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
13113{
13114	s << "VkAccelerationStructureGeometryDataKHR = {\n";
13115	s << "\ttriangles = " << value.triangles << '\n';
13116	s << "\taabbs = " << value.aabbs << '\n';
13117	s << "\tinstances = " << value.instances << '\n';
13118	s << '}';
13119	return s;
13120}
13121
13122std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
13123{
13124	s << "VkAccelerationStructureGeometryKHR = {\n";
13125	s << "\tsType = " << value.sType << '\n';
13126	s << "\tpNext = " << value.pNext << '\n';
13127	s << "\tgeometryType = " << value.geometryType << '\n';
13128	s << "\tgeometry = " << value.geometry << '\n';
13129	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
13130	s << '}';
13131	return s;
13132}
13133
13134std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
13135{
13136	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
13137	s << "\tsType = " << value.sType << '\n';
13138	s << "\tpNext = " << value.pNext << '\n';
13139	s << "\ttype = " << value.type << '\n';
13140	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
13141	s << "\tmode = " << value.mode << '\n';
13142	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
13143	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
13144	s << "\tgeometryCount = " << value.geometryCount << '\n';
13145	s << "\tpGeometries = " << value.pGeometries << '\n';
13146	s << "\tppGeometries = " << value.ppGeometries << '\n';
13147	s << "\tscratchData = " << value.scratchData << '\n';
13148	s << '}';
13149	return s;
13150}
13151
13152std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
13153{
13154	s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
13155	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
13156	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
13157	s << "\tfirstVertex = " << value.firstVertex << '\n';
13158	s << "\ttransformOffset = " << value.transformOffset << '\n';
13159	s << '}';
13160	return s;
13161}
13162
13163std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
13164{
13165	s << "VkAccelerationStructureCreateInfoKHR = {\n";
13166	s << "\tsType = " << value.sType << '\n';
13167	s << "\tpNext = " << value.pNext << '\n';
13168	s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
13169	s << "\tbuffer = " << value.buffer << '\n';
13170	s << "\toffset = " << value.offset << '\n';
13171	s << "\tsize = " << value.size << '\n';
13172	s << "\ttype = " << value.type << '\n';
13173	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13174	s << '}';
13175	return s;
13176}
13177
13178std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
13179{
13180	s << "VkAabbPositionsKHR = {\n";
13181	s << "\tminX = " << value.minX << '\n';
13182	s << "\tminY = " << value.minY << '\n';
13183	s << "\tminZ = " << value.minZ << '\n';
13184	s << "\tmaxX = " << value.maxX << '\n';
13185	s << "\tmaxY = " << value.maxY << '\n';
13186	s << "\tmaxZ = " << value.maxZ << '\n';
13187	s << '}';
13188	return s;
13189}
13190
13191std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
13192{
13193	s << "VkTransformMatrixKHR = {\n";
13194	s << "\tmatrix = " << '\n';
13195	for(uint32_t i0 = 0 ; i0 < 3 ; ++i0)
13196		s << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix[i0]), DE_ARRAY_END(value.matrix[i0])) << '\n';
13197	s << '}';
13198	return s;
13199}
13200
13201std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
13202{
13203	s << "VkAccelerationStructureInstanceKHR = {\n";
13204	s << "\ttransform = " << value.transform << '\n';
13205	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
13206	s << "\tmask = " << value.mask << '\n';
13207	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
13208	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
13209	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
13210	s << '}';
13211	return s;
13212}
13213
13214std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
13215{
13216	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
13217	s << "\tsType = " << value.sType << '\n';
13218	s << "\tpNext = " << value.pNext << '\n';
13219	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
13220	s << '}';
13221	return s;
13222}
13223
13224std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
13225{
13226	s << "VkAccelerationStructureVersionInfoKHR = {\n";
13227	s << "\tsType = " << value.sType << '\n';
13228	s << "\tpNext = " << value.pNext << '\n';
13229	s << "\tpVersionData = " << value.pVersionData << '\n';
13230	s << '}';
13231	return s;
13232}
13233
13234std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
13235{
13236	s << "VkCopyAccelerationStructureInfoKHR = {\n";
13237	s << "\tsType = " << value.sType << '\n';
13238	s << "\tpNext = " << value.pNext << '\n';
13239	s << "\tsrc = " << value.src << '\n';
13240	s << "\tdst = " << value.dst << '\n';
13241	s << "\tmode = " << value.mode << '\n';
13242	s << '}';
13243	return s;
13244}
13245
13246std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
13247{
13248	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
13249	s << "\tsType = " << value.sType << '\n';
13250	s << "\tpNext = " << value.pNext << '\n';
13251	s << "\tsrc = " << value.src << '\n';
13252	s << "\tdst = " << value.dst << '\n';
13253	s << "\tmode = " << value.mode << '\n';
13254	s << '}';
13255	return s;
13256}
13257
13258std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
13259{
13260	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
13261	s << "\tsType = " << value.sType << '\n';
13262	s << "\tpNext = " << value.pNext << '\n';
13263	s << "\tsrc = " << value.src << '\n';
13264	s << "\tdst = " << value.dst << '\n';
13265	s << "\tmode = " << value.mode << '\n';
13266	s << '}';
13267	return s;
13268}
13269
13270std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
13271{
13272	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
13273	s << "\tsType = " << value.sType << '\n';
13274	s << "\tpNext = " << value.pNext << '\n';
13275	s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
13276	s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
13277	s << '}';
13278	return s;
13279}
13280
13281std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
13282{
13283	s << "VkPipelineLibraryCreateInfoKHR = {\n";
13284	s << "\tsType = " << value.sType << '\n';
13285	s << "\tpNext = " << value.pNext << '\n';
13286	s << "\tlibraryCount = " << value.libraryCount << '\n';
13287	s << "\tpLibraries = " << value.pLibraries << '\n';
13288	s << '}';
13289	return s;
13290}
13291
13292std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
13293{
13294	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
13295	s << "\tsType = " << value.sType << '\n';
13296	s << "\tpNext = " << value.pNext << '\n';
13297	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
13298	s << '}';
13299	return s;
13300}
13301
13302std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
13303{
13304	s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
13305	s << "\tsType = " << value.sType << '\n';
13306	s << "\tpNext = " << value.pNext << '\n';
13307	s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
13308	s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
13309	s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
13310	s << '}';
13311	return s;
13312}
13313
13314std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT& value)
13315{
13316	s << "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = {\n";
13317	s << "\tsType = " << value.sType << '\n';
13318	s << "\tpNext = " << value.pNext << '\n';
13319	s << "\textendedDynamicState3TessellationDomainOrigin = " << value.extendedDynamicState3TessellationDomainOrigin << '\n';
13320	s << "\textendedDynamicState3DepthClampEnable = " << value.extendedDynamicState3DepthClampEnable << '\n';
13321	s << "\textendedDynamicState3PolygonMode = " << value.extendedDynamicState3PolygonMode << '\n';
13322	s << "\textendedDynamicState3RasterizationSamples = " << value.extendedDynamicState3RasterizationSamples << '\n';
13323	s << "\textendedDynamicState3SampleMask = " << value.extendedDynamicState3SampleMask << '\n';
13324	s << "\textendedDynamicState3AlphaToCoverageEnable = " << value.extendedDynamicState3AlphaToCoverageEnable << '\n';
13325	s << "\textendedDynamicState3AlphaToOneEnable = " << value.extendedDynamicState3AlphaToOneEnable << '\n';
13326	s << "\textendedDynamicState3LogicOpEnable = " << value.extendedDynamicState3LogicOpEnable << '\n';
13327	s << "\textendedDynamicState3ColorBlendEnable = " << value.extendedDynamicState3ColorBlendEnable << '\n';
13328	s << "\textendedDynamicState3ColorBlendEquation = " << value.extendedDynamicState3ColorBlendEquation << '\n';
13329	s << "\textendedDynamicState3ColorWriteMask = " << value.extendedDynamicState3ColorWriteMask << '\n';
13330	s << "\textendedDynamicState3RasterizationStream = " << value.extendedDynamicState3RasterizationStream << '\n';
13331	s << "\textendedDynamicState3ConservativeRasterizationMode = " << value.extendedDynamicState3ConservativeRasterizationMode << '\n';
13332	s << "\textendedDynamicState3ExtraPrimitiveOverestimationSize = " << value.extendedDynamicState3ExtraPrimitiveOverestimationSize << '\n';
13333	s << "\textendedDynamicState3DepthClipEnable = " << value.extendedDynamicState3DepthClipEnable << '\n';
13334	s << "\textendedDynamicState3SampleLocationsEnable = " << value.extendedDynamicState3SampleLocationsEnable << '\n';
13335	s << "\textendedDynamicState3ColorBlendAdvanced = " << value.extendedDynamicState3ColorBlendAdvanced << '\n';
13336	s << "\textendedDynamicState3ProvokingVertexMode = " << value.extendedDynamicState3ProvokingVertexMode << '\n';
13337	s << "\textendedDynamicState3LineRasterizationMode = " << value.extendedDynamicState3LineRasterizationMode << '\n';
13338	s << "\textendedDynamicState3LineStippleEnable = " << value.extendedDynamicState3LineStippleEnable << '\n';
13339	s << "\textendedDynamicState3DepthClipNegativeOneToOne = " << value.extendedDynamicState3DepthClipNegativeOneToOne << '\n';
13340	s << "\textendedDynamicState3ViewportWScalingEnable = " << value.extendedDynamicState3ViewportWScalingEnable << '\n';
13341	s << "\textendedDynamicState3ViewportSwizzle = " << value.extendedDynamicState3ViewportSwizzle << '\n';
13342	s << "\textendedDynamicState3CoverageToColorEnable = " << value.extendedDynamicState3CoverageToColorEnable << '\n';
13343	s << "\textendedDynamicState3CoverageToColorLocation = " << value.extendedDynamicState3CoverageToColorLocation << '\n';
13344	s << "\textendedDynamicState3CoverageModulationMode = " << value.extendedDynamicState3CoverageModulationMode << '\n';
13345	s << "\textendedDynamicState3CoverageModulationTableEnable = " << value.extendedDynamicState3CoverageModulationTableEnable << '\n';
13346	s << "\textendedDynamicState3CoverageModulationTable = " << value.extendedDynamicState3CoverageModulationTable << '\n';
13347	s << "\textendedDynamicState3CoverageReductionMode = " << value.extendedDynamicState3CoverageReductionMode << '\n';
13348	s << "\textendedDynamicState3RepresentativeFragmentTestEnable = " << value.extendedDynamicState3RepresentativeFragmentTestEnable << '\n';
13349	s << "\textendedDynamicState3ShadingRateImageEnable = " << value.extendedDynamicState3ShadingRateImageEnable << '\n';
13350	s << '}';
13351	return s;
13352}
13353
13354std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT& value)
13355{
13356	s << "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = {\n";
13357	s << "\tsType = " << value.sType << '\n';
13358	s << "\tpNext = " << value.pNext << '\n';
13359	s << "\tdynamicPrimitiveTopologyUnrestricted = " << value.dynamicPrimitiveTopologyUnrestricted << '\n';
13360	s << '}';
13361	return s;
13362}
13363
13364std::ostream& operator<< (std::ostream& s, const VkColorBlendEquationEXT& value)
13365{
13366	s << "VkColorBlendEquationEXT = {\n";
13367	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
13368	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
13369	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
13370	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
13371	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
13372	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
13373	s << '}';
13374	return s;
13375}
13376
13377std::ostream& operator<< (std::ostream& s, const VkColorBlendAdvancedEXT& value)
13378{
13379	s << "VkColorBlendAdvancedEXT = {\n";
13380	s << "\tadvancedBlendOp = " << value.advancedBlendOp << '\n';
13381	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
13382	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
13383	s << "\tblendOverlap = " << value.blendOverlap << '\n';
13384	s << "\tclampResults = " << value.clampResults << '\n';
13385	s << '}';
13386	return s;
13387}
13388
13389std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
13390{
13391	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
13392	s << "\tsType = " << value.sType << '\n';
13393	s << "\tpNext = " << value.pNext << '\n';
13394	s << "\ttransform = " << value.transform << '\n';
13395	s << '}';
13396	return s;
13397}
13398
13399std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
13400{
13401	s << "VkCopyCommandTransformInfoQCOM = {\n";
13402	s << "\tsType = " << value.sType << '\n';
13403	s << "\tpNext = " << value.pNext << '\n';
13404	s << "\ttransform = " << value.transform << '\n';
13405	s << '}';
13406	return s;
13407}
13408
13409std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
13410{
13411	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
13412	s << "\tsType = " << value.sType << '\n';
13413	s << "\tpNext = " << value.pNext << '\n';
13414	s << "\ttransform = " << value.transform << '\n';
13415	s << "\trenderArea = " << value.renderArea << '\n';
13416	s << '}';
13417	return s;
13418}
13419
13420std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
13421{
13422	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
13423	s << "\tsType = " << value.sType << '\n';
13424	s << "\tpNext = " << value.pNext << '\n';
13425	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
13426	s << '}';
13427	return s;
13428}
13429
13430std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
13431{
13432	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
13433	s << "\tsType = " << value.sType << '\n';
13434	s << "\tpNext = " << value.pNext << '\n';
13435	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
13436	s << '}';
13437	return s;
13438}
13439
13440std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
13441{
13442	s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
13443	s << "\tsType = " << value.sType << '\n';
13444	s << "\tpNext = " << value.pNext << '\n';
13445	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
13446	s << '}';
13447	return s;
13448}
13449
13450std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
13451{
13452	s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
13453	s << "\tsType = " << value.sType << '\n';
13454	s << "\tpNext = " << value.pNext << '\n';
13455	s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
13456	s << '}';
13457	return s;
13458}
13459
13460std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
13461{
13462	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
13463	s << "\tsType = " << value.sType << '\n';
13464	s << "\tpNext = " << value.pNext << '\n';
13465	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
13466	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
13467	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
13468	s << '}';
13469	return s;
13470}
13471
13472std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
13473{
13474	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
13475	s << "\tsType = " << value.sType << '\n';
13476	s << "\tpNext = " << value.pNext << '\n';
13477	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
13478	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
13479	s << '}';
13480	return s;
13481}
13482
13483std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
13484{
13485	s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
13486	s << "\tsType = " << value.sType << '\n';
13487	s << "\tpNext = " << value.pNext << '\n';
13488	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
13489	s << '}';
13490	return s;
13491}
13492
13493std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
13494{
13495	s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
13496	s << "\tsType = " << value.sType << '\n';
13497	s << "\tpNext = " << value.pNext << '\n';
13498	s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
13499	s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
13500	s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
13501	s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
13502	s << '}';
13503	return s;
13504}
13505
13506std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
13507{
13508	s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
13509	s << "\tsType = " << value.sType << '\n';
13510	s << "\tpNext = " << value.pNext << '\n';
13511	s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
13512	s << "\tevents = " << value.events << '\n';
13513	s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
13514	s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
13515	s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
13516	s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
13517	s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
13518	s << "\tpointPolygons = " << value.pointPolygons << '\n';
13519	s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
13520	s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
13521	s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
13522	s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
13523	s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
13524	s << "\ttriangleFans = " << value.triangleFans << '\n';
13525	s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
13526	s << '}';
13527	return s;
13528}
13529
13530std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
13531{
13532	s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
13533	s << "\tsType = " << value.sType << '\n';
13534	s << "\tpNext = " << value.pNext << '\n';
13535	s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
13536	s << '}';
13537	return s;
13538}
13539
13540std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
13541{
13542	s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
13543	s << "\tsType = " << value.sType << '\n';
13544	s << "\tpNext = " << value.pNext << '\n';
13545	s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
13546	s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
13547	s << '}';
13548	return s;
13549}
13550
13551std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
13552{
13553	s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
13554	s << "\tsType = " << value.sType << '\n';
13555	s << "\tpNext = " << value.pNext << '\n';
13556	s << "\tsubpassShading = " << value.subpassShading << '\n';
13557	s << '}';
13558	return s;
13559}
13560
13561std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI& value)
13562{
13563	s << "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI = {\n";
13564	s << "\tsType = " << value.sType << '\n';
13565	s << "\tpNext = " << value.pNext << '\n';
13566	s << "\tclustercullingShader = " << value.clustercullingShader << '\n';
13567	s << "\tmultiviewClusterCullingShader = " << value.multiviewClusterCullingShader << '\n';
13568	s << '}';
13569	return s;
13570}
13571
13572std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI& value)
13573{
13574	s << "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = {\n";
13575	s << "\tsType = " << value.sType << '\n';
13576	s << "\tpNext = " << value.pNext << '\n';
13577	s << "\tclusterShadingRate = " << value.clusterShadingRate << '\n';
13578	s << '}';
13579	return s;
13580}
13581
13582std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
13583{
13584	s << "VkBufferCopy2 = {\n";
13585	s << "\tsType = " << value.sType << '\n';
13586	s << "\tpNext = " << value.pNext << '\n';
13587	s << "\tsrcOffset = " << value.srcOffset << '\n';
13588	s << "\tdstOffset = " << value.dstOffset << '\n';
13589	s << "\tsize = " << value.size << '\n';
13590	s << '}';
13591	return s;
13592}
13593
13594std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
13595{
13596	s << "VkImageCopy2 = {\n";
13597	s << "\tsType = " << value.sType << '\n';
13598	s << "\tpNext = " << value.pNext << '\n';
13599	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
13600	s << "\tsrcOffset = " << value.srcOffset << '\n';
13601	s << "\tdstSubresource = " << value.dstSubresource << '\n';
13602	s << "\tdstOffset = " << value.dstOffset << '\n';
13603	s << "\textent = " << value.extent << '\n';
13604	s << '}';
13605	return s;
13606}
13607
13608std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
13609{
13610	s << "VkImageBlit2 = {\n";
13611	s << "\tsType = " << value.sType << '\n';
13612	s << "\tpNext = " << value.pNext << '\n';
13613	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
13614	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
13615	s << "\tdstSubresource = " << value.dstSubresource << '\n';
13616	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
13617	s << '}';
13618	return s;
13619}
13620
13621std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
13622{
13623	s << "VkBufferImageCopy2 = {\n";
13624	s << "\tsType = " << value.sType << '\n';
13625	s << "\tpNext = " << value.pNext << '\n';
13626	s << "\tbufferOffset = " << value.bufferOffset << '\n';
13627	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
13628	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
13629	s << "\timageSubresource = " << value.imageSubresource << '\n';
13630	s << "\timageOffset = " << value.imageOffset << '\n';
13631	s << "\timageExtent = " << value.imageExtent << '\n';
13632	s << '}';
13633	return s;
13634}
13635
13636std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
13637{
13638	s << "VkImageResolve2 = {\n";
13639	s << "\tsType = " << value.sType << '\n';
13640	s << "\tpNext = " << value.pNext << '\n';
13641	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
13642	s << "\tsrcOffset = " << value.srcOffset << '\n';
13643	s << "\tdstSubresource = " << value.dstSubresource << '\n';
13644	s << "\tdstOffset = " << value.dstOffset << '\n';
13645	s << "\textent = " << value.extent << '\n';
13646	s << '}';
13647	return s;
13648}
13649
13650std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
13651{
13652	s << "VkCopyBufferInfo2 = {\n";
13653	s << "\tsType = " << value.sType << '\n';
13654	s << "\tpNext = " << value.pNext << '\n';
13655	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13656	s << "\tdstBuffer = " << value.dstBuffer << '\n';
13657	s << "\tregionCount = " << value.regionCount << '\n';
13658	s << "\tpRegions = " << value.pRegions << '\n';
13659	s << '}';
13660	return s;
13661}
13662
13663std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
13664{
13665	s << "VkCopyImageInfo2 = {\n";
13666	s << "\tsType = " << value.sType << '\n';
13667	s << "\tpNext = " << value.pNext << '\n';
13668	s << "\tsrcImage = " << value.srcImage << '\n';
13669	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13670	s << "\tdstImage = " << value.dstImage << '\n';
13671	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13672	s << "\tregionCount = " << value.regionCount << '\n';
13673	s << "\tpRegions = " << value.pRegions << '\n';
13674	s << '}';
13675	return s;
13676}
13677
13678std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
13679{
13680	s << "VkBlitImageInfo2 = {\n";
13681	s << "\tsType = " << value.sType << '\n';
13682	s << "\tpNext = " << value.pNext << '\n';
13683	s << "\tsrcImage = " << value.srcImage << '\n';
13684	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13685	s << "\tdstImage = " << value.dstImage << '\n';
13686	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13687	s << "\tregionCount = " << value.regionCount << '\n';
13688	s << "\tpRegions = " << value.pRegions << '\n';
13689	s << "\tfilter = " << value.filter << '\n';
13690	s << '}';
13691	return s;
13692}
13693
13694std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
13695{
13696	s << "VkCopyBufferToImageInfo2 = {\n";
13697	s << "\tsType = " << value.sType << '\n';
13698	s << "\tpNext = " << value.pNext << '\n';
13699	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13700	s << "\tdstImage = " << value.dstImage << '\n';
13701	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13702	s << "\tregionCount = " << value.regionCount << '\n';
13703	s << "\tpRegions = " << value.pRegions << '\n';
13704	s << '}';
13705	return s;
13706}
13707
13708std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
13709{
13710	s << "VkCopyImageToBufferInfo2 = {\n";
13711	s << "\tsType = " << value.sType << '\n';
13712	s << "\tpNext = " << value.pNext << '\n';
13713	s << "\tsrcImage = " << value.srcImage << '\n';
13714	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13715	s << "\tdstBuffer = " << value.dstBuffer << '\n';
13716	s << "\tregionCount = " << value.regionCount << '\n';
13717	s << "\tpRegions = " << value.pRegions << '\n';
13718	s << '}';
13719	return s;
13720}
13721
13722std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
13723{
13724	s << "VkResolveImageInfo2 = {\n";
13725	s << "\tsType = " << value.sType << '\n';
13726	s << "\tpNext = " << value.pNext << '\n';
13727	s << "\tsrcImage = " << value.srcImage << '\n';
13728	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13729	s << "\tdstImage = " << value.dstImage << '\n';
13730	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13731	s << "\tregionCount = " << value.regionCount << '\n';
13732	s << "\tpRegions = " << value.pRegions << '\n';
13733	s << '}';
13734	return s;
13735}
13736
13737std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
13738{
13739	s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
13740	s << "\tsType = " << value.sType << '\n';
13741	s << "\tpNext = " << value.pNext << '\n';
13742	s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
13743	s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
13744	s << '}';
13745	return s;
13746}
13747
13748std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
13749{
13750	s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
13751	s << "\tsType = " << value.sType << '\n';
13752	s << "\tpNext = " << value.pNext << '\n';
13753	s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
13754	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
13755	s << '}';
13756	return s;
13757}
13758
13759std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
13760{
13761	s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
13762	s << "\tsType = " << value.sType << '\n';
13763	s << "\tpNext = " << value.pNext << '\n';
13764	s << "\tfragmentSize = " << value.fragmentSize << '\n';
13765	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
13766	s << '}';
13767	return s;
13768}
13769
13770std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
13771{
13772	s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
13773	s << "\tsType = " << value.sType << '\n';
13774	s << "\tpNext = " << value.pNext << '\n';
13775	s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
13776	s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
13777	s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
13778	s << '}';
13779	return s;
13780}
13781
13782std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
13783{
13784	s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
13785	s << "\tsType = " << value.sType << '\n';
13786	s << "\tpNext = " << value.pNext << '\n';
13787	s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
13788	s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
13789	s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
13790	s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
13791	s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
13792	s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
13793	s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
13794	s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
13795	s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
13796	s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
13797	s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
13798	s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
13799	s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
13800	s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
13801	s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
13802	s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
13803	s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
13804	s << '}';
13805	return s;
13806}
13807
13808std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
13809{
13810	s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
13811	s << "\tsType = " << value.sType << '\n';
13812	s << "\tpNext = " << value.pNext << '\n';
13813	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
13814	s << "\tfragmentSize = " << value.fragmentSize << '\n';
13815	s << '}';
13816	return s;
13817}
13818
13819std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
13820{
13821	s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
13822	s << "\tsType = " << value.sType << '\n';
13823	s << "\tpNext = " << value.pNext << '\n';
13824	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
13825	s << '}';
13826	return s;
13827}
13828
13829std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
13830{
13831	s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
13832	s << "\tsType = " << value.sType << '\n';
13833	s << "\tpNext = " << value.pNext << '\n';
13834	s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
13835	s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
13836	s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
13837	s << '}';
13838	return s;
13839}
13840
13841std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
13842{
13843	s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
13844	s << "\tsType = " << value.sType << '\n';
13845	s << "\tpNext = " << value.pNext << '\n';
13846	s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
13847	s << '}';
13848	return s;
13849}
13850
13851std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
13852{
13853	s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
13854	s << "\tsType = " << value.sType << '\n';
13855	s << "\tpNext = " << value.pNext << '\n';
13856	s << "\tshadingRateType = " << value.shadingRateType << '\n';
13857	s << "\tshadingRate = " << value.shadingRate << '\n';
13858	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
13859	s << '}';
13860	return s;
13861}
13862
13863std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
13864{
13865	s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
13866	s << "\tsType = " << value.sType << '\n';
13867	s << "\tpNext = " << value.pNext << '\n';
13868	s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
13869	s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
13870	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
13871	s << '}';
13872	return s;
13873}
13874
13875std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
13876{
13877	s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
13878	s << "\tsType = " << value.sType << '\n';
13879	s << "\tpNext = " << value.pNext << '\n';
13880	s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
13881	s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
13882	s << '}';
13883	return s;
13884}
13885
13886std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT& value)
13887{
13888	s << "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT = {\n";
13889	s << "\tsType = " << value.sType << '\n';
13890	s << "\tpNext = " << value.pNext << '\n';
13891	s << "\timageSlicedViewOf3D = " << value.imageSlicedViewOf3D << '\n';
13892	s << '}';
13893	return s;
13894}
13895
13896std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& value)
13897{
13898	s << "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = {\n";
13899	s << "\tsType = " << value.sType << '\n';
13900	s << "\tpNext = " << value.pNext << '\n';
13901	s << "\tattachmentFeedbackLoopDynamicState = " << value.attachmentFeedbackLoopDynamicState << '\n';
13902	s << '}';
13903	return s;
13904}
13905
13906std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT& value)
13907{
13908	s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = {\n";
13909	s << "\tsType = " << value.sType << '\n';
13910	s << "\tpNext = " << value.pNext << '\n';
13911	s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
13912	s << '}';
13913	return s;
13914}
13915
13916std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListEXT& value)
13917{
13918	s << "VkMutableDescriptorTypeListEXT = {\n";
13919	s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
13920	s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
13921	s << '}';
13922	return s;
13923}
13924
13925std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoEXT& value)
13926{
13927	s << "VkMutableDescriptorTypeCreateInfoEXT = {\n";
13928	s << "\tsType = " << value.sType << '\n';
13929	s << "\tpNext = " << value.pNext << '\n';
13930	s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
13931	s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
13932	s << '}';
13933	return s;
13934}
13935
13936std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
13937{
13938	s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
13939	s << "\tsType = " << value.sType << '\n';
13940	s << "\tpNext = " << value.pNext << '\n';
13941	s << "\tdepthClipControl = " << value.depthClipControl << '\n';
13942	s << '}';
13943	return s;
13944}
13945
13946std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
13947{
13948	s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
13949	s << "\tsType = " << value.sType << '\n';
13950	s << "\tpNext = " << value.pNext << '\n';
13951	s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
13952	s << '}';
13953	return s;
13954}
13955
13956std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
13957{
13958	s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
13959	s << "\tsType = " << value.sType << '\n';
13960	s << "\tpNext = " << value.pNext << '\n';
13961	s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
13962	s << '}';
13963	return s;
13964}
13965
13966std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
13967{
13968	s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
13969	s << "\tsType = " << value.sType << '\n';
13970	s << "\tpNext = " << value.pNext << '\n';
13971	s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
13972	s << '}';
13973	return s;
13974}
13975
13976std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
13977{
13978	s << "VkVertexInputBindingDescription2EXT = {\n";
13979	s << "\tsType = " << value.sType << '\n';
13980	s << "\tpNext = " << value.pNext << '\n';
13981	s << "\tbinding = " << value.binding << '\n';
13982	s << "\tstride = " << value.stride << '\n';
13983	s << "\tinputRate = " << value.inputRate << '\n';
13984	s << "\tdivisor = " << value.divisor << '\n';
13985	s << '}';
13986	return s;
13987}
13988
13989std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
13990{
13991	s << "VkVertexInputAttributeDescription2EXT = {\n";
13992	s << "\tsType = " << value.sType << '\n';
13993	s << "\tpNext = " << value.pNext << '\n';
13994	s << "\tlocation = " << value.location << '\n';
13995	s << "\tbinding = " << value.binding << '\n';
13996	s << "\tformat = " << value.format << '\n';
13997	s << "\toffset = " << value.offset << '\n';
13998	s << '}';
13999	return s;
14000}
14001
14002std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
14003{
14004	s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
14005	s << "\tsType = " << value.sType << '\n';
14006	s << "\tpNext = " << value.pNext << '\n';
14007	s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
14008	s << '}';
14009	return s;
14010}
14011
14012std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
14013{
14014	s << "VkPipelineColorWriteCreateInfoEXT = {\n";
14015	s << "\tsType = " << value.sType << '\n';
14016	s << "\tpNext = " << value.pNext << '\n';
14017	s << "\tattachmentCount = " << value.attachmentCount << '\n';
14018	s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
14019	s << '}';
14020	return s;
14021}
14022
14023std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
14024{
14025	s << "VkMemoryBarrier2 = {\n";
14026	s << "\tsType = " << value.sType << '\n';
14027	s << "\tpNext = " << value.pNext << '\n';
14028	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
14029	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
14030	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
14031	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
14032	s << '}';
14033	return s;
14034}
14035
14036std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
14037{
14038	s << "VkImageMemoryBarrier2 = {\n";
14039	s << "\tsType = " << value.sType << '\n';
14040	s << "\tpNext = " << value.pNext << '\n';
14041	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
14042	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
14043	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
14044	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
14045	s << "\toldLayout = " << value.oldLayout << '\n';
14046	s << "\tnewLayout = " << value.newLayout << '\n';
14047	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
14048	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
14049	s << "\timage = " << value.image << '\n';
14050	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
14051	s << '}';
14052	return s;
14053}
14054
14055std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
14056{
14057	s << "VkBufferMemoryBarrier2 = {\n";
14058	s << "\tsType = " << value.sType << '\n';
14059	s << "\tpNext = " << value.pNext << '\n';
14060	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
14061	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
14062	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
14063	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
14064	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
14065	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
14066	s << "\tbuffer = " << value.buffer << '\n';
14067	s << "\toffset = " << value.offset << '\n';
14068	s << "\tsize = " << value.size << '\n';
14069	s << '}';
14070	return s;
14071}
14072
14073std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
14074{
14075	s << "VkDependencyInfo = {\n";
14076	s << "\tsType = " << value.sType << '\n';
14077	s << "\tpNext = " << value.pNext << '\n';
14078	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
14079	s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
14080	s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
14081	s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
14082	s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
14083	s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
14084	s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
14085	s << '}';
14086	return s;
14087}
14088
14089std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
14090{
14091	s << "VkSemaphoreSubmitInfo = {\n";
14092	s << "\tsType = " << value.sType << '\n';
14093	s << "\tpNext = " << value.pNext << '\n';
14094	s << "\tsemaphore = " << value.semaphore << '\n';
14095	s << "\tvalue = " << value.value << '\n';
14096	s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
14097	s << "\tdeviceIndex = " << value.deviceIndex << '\n';
14098	s << '}';
14099	return s;
14100}
14101
14102std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
14103{
14104	s << "VkCommandBufferSubmitInfo = {\n";
14105	s << "\tsType = " << value.sType << '\n';
14106	s << "\tpNext = " << value.pNext << '\n';
14107	s << "\tcommandBuffer = " << value.commandBuffer << '\n';
14108	s << "\tdeviceMask = " << value.deviceMask << '\n';
14109	s << '}';
14110	return s;
14111}
14112
14113std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
14114{
14115	s << "VkSubmitInfo2 = {\n";
14116	s << "\tsType = " << value.sType << '\n';
14117	s << "\tpNext = " << value.pNext << '\n';
14118	s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
14119	s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
14120	s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
14121	s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
14122	s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
14123	s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
14124	s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
14125	s << '}';
14126	return s;
14127}
14128
14129std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
14130{
14131	s << "VkQueueFamilyCheckpointProperties2NV = {\n";
14132	s << "\tsType = " << value.sType << '\n';
14133	s << "\tpNext = " << value.pNext << '\n';
14134	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
14135	s << '}';
14136	return s;
14137}
14138
14139std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
14140{
14141	s << "VkCheckpointData2NV = {\n";
14142	s << "\tsType = " << value.sType << '\n';
14143	s << "\tpNext = " << value.pNext << '\n';
14144	s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
14145	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
14146	s << '}';
14147	return s;
14148}
14149
14150std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
14151{
14152	s << "VkPhysicalDeviceSynchronization2Features = {\n";
14153	s << "\tsType = " << value.sType << '\n';
14154	s << "\tpNext = " << value.pNext << '\n';
14155	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
14156	s << '}';
14157	return s;
14158}
14159
14160std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostImageCopyFeaturesEXT& value)
14161{
14162	s << "VkPhysicalDeviceHostImageCopyFeaturesEXT = {\n";
14163	s << "\tsType = " << value.sType << '\n';
14164	s << "\tpNext = " << value.pNext << '\n';
14165	s << "\thostImageCopy = " << value.hostImageCopy << '\n';
14166	s << '}';
14167	return s;
14168}
14169
14170std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostImageCopyPropertiesEXT& value)
14171{
14172	s << "VkPhysicalDeviceHostImageCopyPropertiesEXT = {\n";
14173	s << "\tsType = " << value.sType << '\n';
14174	s << "\tpNext = " << value.pNext << '\n';
14175	s << "\tcopySrcLayoutCount = " << value.copySrcLayoutCount << '\n';
14176	s << "\tpCopySrcLayouts = " << value.pCopySrcLayouts << '\n';
14177	s << "\tcopyDstLayoutCount = " << value.copyDstLayoutCount << '\n';
14178	s << "\tpCopyDstLayouts = " << value.pCopyDstLayouts << '\n';
14179	s << "\toptimalTilingLayoutUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.optimalTilingLayoutUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.optimalTilingLayoutUUID))) << '\n';
14180	s << "\tidenticalMemoryTypeRequirements = " << value.identicalMemoryTypeRequirements << '\n';
14181	s << '}';
14182	return s;
14183}
14184
14185std::ostream& operator<< (std::ostream& s, const VkMemoryToImageCopyEXT& value)
14186{
14187	s << "VkMemoryToImageCopyEXT = {\n";
14188	s << "\tsType = " << value.sType << '\n';
14189	s << "\tpNext = " << value.pNext << '\n';
14190	s << "\tpHostPointer = " << value.pHostPointer << '\n';
14191	s << "\tmemoryRowLength = " << value.memoryRowLength << '\n';
14192	s << "\tmemoryImageHeight = " << value.memoryImageHeight << '\n';
14193	s << "\timageSubresource = " << value.imageSubresource << '\n';
14194	s << "\timageOffset = " << value.imageOffset << '\n';
14195	s << "\timageExtent = " << value.imageExtent << '\n';
14196	s << '}';
14197	return s;
14198}
14199
14200std::ostream& operator<< (std::ostream& s, const VkImageToMemoryCopyEXT& value)
14201{
14202	s << "VkImageToMemoryCopyEXT = {\n";
14203	s << "\tsType = " << value.sType << '\n';
14204	s << "\tpNext = " << value.pNext << '\n';
14205	s << "\tpHostPointer = " << value.pHostPointer << '\n';
14206	s << "\tmemoryRowLength = " << value.memoryRowLength << '\n';
14207	s << "\tmemoryImageHeight = " << value.memoryImageHeight << '\n';
14208	s << "\timageSubresource = " << value.imageSubresource << '\n';
14209	s << "\timageOffset = " << value.imageOffset << '\n';
14210	s << "\timageExtent = " << value.imageExtent << '\n';
14211	s << '}';
14212	return s;
14213}
14214
14215std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToImageInfoEXT& value)
14216{
14217	s << "VkCopyMemoryToImageInfoEXT = {\n";
14218	s << "\tsType = " << value.sType << '\n';
14219	s << "\tpNext = " << value.pNext << '\n';
14220	s << "\tflags = " << getHostImageCopyFlagsEXTStr(value.flags) << '\n';
14221	s << "\tdstImage = " << value.dstImage << '\n';
14222	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14223	s << "\tregionCount = " << value.regionCount << '\n';
14224	s << "\tpRegions = " << value.pRegions << '\n';
14225	s << '}';
14226	return s;
14227}
14228
14229std::ostream& operator<< (std::ostream& s, const VkCopyImageToMemoryInfoEXT& value)
14230{
14231	s << "VkCopyImageToMemoryInfoEXT = {\n";
14232	s << "\tsType = " << value.sType << '\n';
14233	s << "\tpNext = " << value.pNext << '\n';
14234	s << "\tflags = " << getHostImageCopyFlagsEXTStr(value.flags) << '\n';
14235	s << "\tsrcImage = " << value.srcImage << '\n';
14236	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14237	s << "\tregionCount = " << value.regionCount << '\n';
14238	s << "\tpRegions = " << value.pRegions << '\n';
14239	s << '}';
14240	return s;
14241}
14242
14243std::ostream& operator<< (std::ostream& s, const VkCopyImageToImageInfoEXT& value)
14244{
14245	s << "VkCopyImageToImageInfoEXT = {\n";
14246	s << "\tsType = " << value.sType << '\n';
14247	s << "\tpNext = " << value.pNext << '\n';
14248	s << "\tflags = " << getHostImageCopyFlagsEXTStr(value.flags) << '\n';
14249	s << "\tsrcImage = " << value.srcImage << '\n';
14250	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14251	s << "\tdstImage = " << value.dstImage << '\n';
14252	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14253	s << "\tregionCount = " << value.regionCount << '\n';
14254	s << "\tpRegions = " << value.pRegions << '\n';
14255	s << '}';
14256	return s;
14257}
14258
14259std::ostream& operator<< (std::ostream& s, const VkHostImageLayoutTransitionInfoEXT& value)
14260{
14261	s << "VkHostImageLayoutTransitionInfoEXT = {\n";
14262	s << "\tsType = " << value.sType << '\n';
14263	s << "\tpNext = " << value.pNext << '\n';
14264	s << "\timage = " << value.image << '\n';
14265	s << "\toldLayout = " << value.oldLayout << '\n';
14266	s << "\tnewLayout = " << value.newLayout << '\n';
14267	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
14268	s << '}';
14269	return s;
14270}
14271
14272std::ostream& operator<< (std::ostream& s, const VkSubresourceHostMemcpySizeEXT& value)
14273{
14274	s << "VkSubresourceHostMemcpySizeEXT = {\n";
14275	s << "\tsType = " << value.sType << '\n';
14276	s << "\tpNext = " << value.pNext << '\n';
14277	s << "\tsize = " << value.size << '\n';
14278	s << '}';
14279	return s;
14280}
14281
14282std::ostream& operator<< (std::ostream& s, const VkHostImageCopyDevicePerformanceQueryEXT& value)
14283{
14284	s << "VkHostImageCopyDevicePerformanceQueryEXT = {\n";
14285	s << "\tsType = " << value.sType << '\n';
14286	s << "\tpNext = " << value.pNext << '\n';
14287	s << "\toptimalDeviceAccess = " << value.optimalDeviceAccess << '\n';
14288	s << "\tidenticalMemoryLayout = " << value.identicalMemoryLayout << '\n';
14289	s << '}';
14290	return s;
14291}
14292
14293std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
14294{
14295	s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
14296	s << "\tsType = " << value.sType << '\n';
14297	s << "\tpNext = " << value.pNext << '\n';
14298	s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
14299	s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
14300	s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
14301	s << '}';
14302	return s;
14303}
14304
14305std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyDitheringFeaturesEXT& value)
14306{
14307	s << "VkPhysicalDeviceLegacyDitheringFeaturesEXT = {\n";
14308	s << "\tsType = " << value.sType << '\n';
14309	s << "\tpNext = " << value.pNext << '\n';
14310	s << "\tlegacyDithering = " << value.legacyDithering << '\n';
14311	s << '}';
14312	return s;
14313}
14314
14315std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
14316{
14317	s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
14318	s << "\tsType = " << value.sType << '\n';
14319	s << "\tpNext = " << value.pNext << '\n';
14320	s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
14321	s << '}';
14322	return s;
14323}
14324
14325std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
14326{
14327	s << "VkSubpassResolvePerformanceQueryEXT = {\n";
14328	s << "\tsType = " << value.sType << '\n';
14329	s << "\tpNext = " << value.pNext << '\n';
14330	s << "\toptimal = " << value.optimal << '\n';
14331	s << '}';
14332	return s;
14333}
14334
14335std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
14336{
14337	s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
14338	s << "\tsType = " << value.sType << '\n';
14339	s << "\tpNext = " << value.pNext << '\n';
14340	s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
14341	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
14342	s << '}';
14343	return s;
14344}
14345
14346std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT& value)
14347{
14348	s << "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT = {\n";
14349	s << "\tsType = " << value.sType << '\n';
14350	s << "\tpNext = " << value.pNext << '\n';
14351	s << "\tpipelineProtectedAccess = " << value.pipelineProtectedAccess << '\n';
14352	s << '}';
14353	return s;
14354}
14355
14356std::ostream& operator<< (std::ostream& s, const VkQueueFamilyVideoPropertiesKHR& value)
14357{
14358	s << "VkQueueFamilyVideoPropertiesKHR = {\n";
14359	s << "\tsType = " << value.sType << '\n';
14360	s << "\tpNext = " << value.pNext << '\n';
14361	s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
14362	s << '}';
14363	return s;
14364}
14365
14366std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusPropertiesKHR& value)
14367{
14368	s << "VkQueueFamilyQueryResultStatusPropertiesKHR = {\n";
14369	s << "\tsType = " << value.sType << '\n';
14370	s << "\tpNext = " << value.pNext << '\n';
14371	s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
14372	s << '}';
14373	return s;
14374}
14375
14376std::ostream& operator<< (std::ostream& s, const VkVideoProfileListInfoKHR& value)
14377{
14378	s << "VkVideoProfileListInfoKHR = {\n";
14379	s << "\tsType = " << value.sType << '\n';
14380	s << "\tpNext = " << value.pNext << '\n';
14381	s << "\tprofileCount = " << value.profileCount << '\n';
14382	s << "\tpProfiles = " << value.pProfiles << '\n';
14383	s << '}';
14384	return s;
14385}
14386
14387std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
14388{
14389	s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
14390	s << "\tsType = " << value.sType << '\n';
14391	s << "\tpNext = " << value.pNext << '\n';
14392	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
14393	s << '}';
14394	return s;
14395}
14396
14397std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
14398{
14399	s << "VkVideoFormatPropertiesKHR = {\n";
14400	s << "\tsType = " << value.sType << '\n';
14401	s << "\tpNext = " << value.pNext << '\n';
14402	s << "\tformat = " << value.format << '\n';
14403	s << "\tcomponentMapping = " << value.componentMapping << '\n';
14404	s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
14405	s << "\timageType = " << value.imageType << '\n';
14406	s << "\timageTiling = " << value.imageTiling << '\n';
14407	s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
14408	s << '}';
14409	return s;
14410}
14411
14412std::ostream& operator<< (std::ostream& s, const VkVideoProfileInfoKHR& value)
14413{
14414	s << "VkVideoProfileInfoKHR = {\n";
14415	s << "\tsType = " << value.sType << '\n';
14416	s << "\tpNext = " << value.pNext << '\n';
14417	s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
14418	s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
14419	s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
14420	s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
14421	s << '}';
14422	return s;
14423}
14424
14425std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
14426{
14427	s << "VkVideoCapabilitiesKHR = {\n";
14428	s << "\tsType = " << value.sType << '\n';
14429	s << "\tpNext = " << value.pNext << '\n';
14430	s << "\tflags = " << getVideoCapabilityFlagsKHRStr(value.flags) << '\n';
14431	s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
14432	s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
14433	s << "\tpictureAccessGranularity = " << value.pictureAccessGranularity << '\n';
14434	s << "\tminCodedExtent = " << value.minCodedExtent << '\n';
14435	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
14436	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
14437	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
14438	s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
14439	s << '}';
14440	return s;
14441}
14442
14443std::ostream& operator<< (std::ostream& s, const VkVideoSessionMemoryRequirementsKHR& value)
14444{
14445	s << "VkVideoSessionMemoryRequirementsKHR = {\n";
14446	s << "\tsType = " << value.sType << '\n';
14447	s << "\tpNext = " << value.pNext << '\n';
14448	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
14449	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
14450	s << '}';
14451	return s;
14452}
14453
14454std::ostream& operator<< (std::ostream& s, const VkBindVideoSessionMemoryInfoKHR& value)
14455{
14456	s << "VkBindVideoSessionMemoryInfoKHR = {\n";
14457	s << "\tsType = " << value.sType << '\n';
14458	s << "\tpNext = " << value.pNext << '\n';
14459	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
14460	s << "\tmemory = " << value.memory << '\n';
14461	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
14462	s << "\tmemorySize = " << value.memorySize << '\n';
14463	s << '}';
14464	return s;
14465}
14466
14467std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceInfoKHR& value)
14468{
14469	s << "VkVideoPictureResourceInfoKHR = {\n";
14470	s << "\tsType = " << value.sType << '\n';
14471	s << "\tpNext = " << value.pNext << '\n';
14472	s << "\tcodedOffset = " << value.codedOffset << '\n';
14473	s << "\tcodedExtent = " << value.codedExtent << '\n';
14474	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
14475	s << "\timageViewBinding = " << value.imageViewBinding << '\n';
14476	s << '}';
14477	return s;
14478}
14479
14480std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotInfoKHR& value)
14481{
14482	s << "VkVideoReferenceSlotInfoKHR = {\n";
14483	s << "\tsType = " << value.sType << '\n';
14484	s << "\tpNext = " << value.pNext << '\n';
14485	s << "\tslotIndex = " << value.slotIndex << '\n';
14486	s << "\tpPictureResource = " << value.pPictureResource << '\n';
14487	s << '}';
14488	return s;
14489}
14490
14491std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
14492{
14493	s << "VkVideoDecodeCapabilitiesKHR = {\n";
14494	s << "\tsType = " << value.sType << '\n';
14495	s << "\tpNext = " << value.pNext << '\n';
14496	s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
14497	s << '}';
14498	return s;
14499}
14500
14501std::ostream& operator<< (std::ostream& s, const VkVideoDecodeUsageInfoKHR& value)
14502{
14503	s << "VkVideoDecodeUsageInfoKHR = {\n";
14504	s << "\tsType = " << value.sType << '\n';
14505	s << "\tpNext = " << value.pNext << '\n';
14506	s << "\tvideoUsageHints = " << getVideoDecodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
14507	s << '}';
14508	return s;
14509}
14510
14511std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
14512{
14513	s << "VkVideoDecodeInfoKHR = {\n";
14514	s << "\tsType = " << value.sType << '\n';
14515	s << "\tpNext = " << value.pNext << '\n';
14516	s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
14517	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
14518	s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
14519	s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
14520	s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
14521	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
14522	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
14523	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
14524	s << '}';
14525	return s;
14526}
14527
14528std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoMaintenance1FeaturesKHR& value)
14529{
14530	s << "VkPhysicalDeviceVideoMaintenance1FeaturesKHR = {\n";
14531	s << "\tsType = " << value.sType << '\n';
14532	s << "\tpNext = " << value.pNext << '\n';
14533	s << "\tvideoMaintenance1 = " << value.videoMaintenance1 << '\n';
14534	s << '}';
14535	return s;
14536}
14537
14538std::ostream& operator<< (std::ostream& s, const VkVideoInlineQueryInfoKHR& value)
14539{
14540	s << "VkVideoInlineQueryInfoKHR = {\n";
14541	s << "\tsType = " << value.sType << '\n';
14542	s << "\tpNext = " << value.pNext << '\n';
14543	s << "\tqueryPool = " << value.queryPool << '\n';
14544	s << "\tfirstQuery = " << value.firstQuery << '\n';
14545	s << "\tqueryCount = " << value.queryCount << '\n';
14546	s << '}';
14547	return s;
14548}
14549
14550std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileInfoKHR& value)
14551{
14552	s << "VkVideoDecodeH264ProfileInfoKHR = {\n";
14553	s << "\tsType = " << value.sType << '\n';
14554	s << "\tpNext = " << value.pNext << '\n';
14555	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14556	s << "\tpictureLayout = " << value.pictureLayout << '\n';
14557	s << '}';
14558	return s;
14559}
14560
14561std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesKHR& value)
14562{
14563	s << "VkVideoDecodeH264CapabilitiesKHR = {\n";
14564	s << "\tsType = " << value.sType << '\n';
14565	s << "\tpNext = " << value.pNext << '\n';
14566	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
14567	s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
14568	s << '}';
14569	return s;
14570}
14571
14572std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoKHR& value)
14573{
14574	s << "VkVideoDecodeH264SessionParametersAddInfoKHR = {\n";
14575	s << "\tsType = " << value.sType << '\n';
14576	s << "\tpNext = " << value.pNext << '\n';
14577	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
14578	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
14579	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
14580	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
14581	s << '}';
14582	return s;
14583}
14584
14585std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoKHR& value)
14586{
14587	s << "VkVideoDecodeH264SessionParametersCreateInfoKHR = {\n";
14588	s << "\tsType = " << value.sType << '\n';
14589	s << "\tpNext = " << value.pNext << '\n';
14590	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
14591	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
14592	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14593	s << '}';
14594	return s;
14595}
14596
14597std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoKHR& value)
14598{
14599	s << "VkVideoDecodeH264PictureInfoKHR = {\n";
14600	s << "\tsType = " << value.sType << '\n';
14601	s << "\tpNext = " << value.pNext << '\n';
14602	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14603	s << "\tsliceCount = " << value.sliceCount << '\n';
14604	s << "\tpSliceOffsets = " << value.pSliceOffsets << '\n';
14605	s << '}';
14606	return s;
14607}
14608
14609std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoKHR& value)
14610{
14611	s << "VkVideoDecodeH264DpbSlotInfoKHR = {\n";
14612	s << "\tsType = " << value.sType << '\n';
14613	s << "\tpNext = " << value.pNext << '\n';
14614	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14615	s << '}';
14616	return s;
14617}
14618
14619std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileInfoKHR& value)
14620{
14621	s << "VkVideoDecodeH265ProfileInfoKHR = {\n";
14622	s << "\tsType = " << value.sType << '\n';
14623	s << "\tpNext = " << value.pNext << '\n';
14624	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14625	s << '}';
14626	return s;
14627}
14628
14629std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesKHR& value)
14630{
14631	s << "VkVideoDecodeH265CapabilitiesKHR = {\n";
14632	s << "\tsType = " << value.sType << '\n';
14633	s << "\tpNext = " << value.pNext << '\n';
14634	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
14635	s << '}';
14636	return s;
14637}
14638
14639std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoKHR& value)
14640{
14641	s << "VkVideoDecodeH265SessionParametersAddInfoKHR = {\n";
14642	s << "\tsType = " << value.sType << '\n';
14643	s << "\tpNext = " << value.pNext << '\n';
14644	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
14645	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
14646	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
14647	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
14648	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
14649	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
14650	s << '}';
14651	return s;
14652}
14653
14654std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoKHR& value)
14655{
14656	s << "VkVideoDecodeH265SessionParametersCreateInfoKHR = {\n";
14657	s << "\tsType = " << value.sType << '\n';
14658	s << "\tpNext = " << value.pNext << '\n';
14659	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
14660	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
14661	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
14662	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14663	s << '}';
14664	return s;
14665}
14666
14667std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoKHR& value)
14668{
14669	s << "VkVideoDecodeH265PictureInfoKHR = {\n";
14670	s << "\tsType = " << value.sType << '\n';
14671	s << "\tpNext = " << value.pNext << '\n';
14672	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14673	s << "\tsliceSegmentCount = " << value.sliceSegmentCount << '\n';
14674	s << "\tpSliceSegmentOffsets = " << value.pSliceSegmentOffsets << '\n';
14675	s << '}';
14676	return s;
14677}
14678
14679std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoKHR& value)
14680{
14681	s << "VkVideoDecodeH265DpbSlotInfoKHR = {\n";
14682	s << "\tsType = " << value.sType << '\n';
14683	s << "\tpNext = " << value.pNext << '\n';
14684	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14685	s << '}';
14686	return s;
14687}
14688
14689std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1ProfileInfoKHR& value)
14690{
14691	s << "VkVideoDecodeAV1ProfileInfoKHR = {\n";
14692	s << "\tsType = " << value.sType << '\n';
14693	s << "\tpNext = " << value.pNext << '\n';
14694	s << "\tstdProfile = " << value.stdProfile << '\n';
14695	s << "\tfilmGrainSupport = " << value.filmGrainSupport << '\n';
14696	s << '}';
14697	return s;
14698}
14699
14700std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1CapabilitiesKHR& value)
14701{
14702	s << "VkVideoDecodeAV1CapabilitiesKHR = {\n";
14703	s << "\tsType = " << value.sType << '\n';
14704	s << "\tpNext = " << value.pNext << '\n';
14705	s << "\tmaxLevel = " << value.maxLevel << '\n';
14706	s << '}';
14707	return s;
14708}
14709
14710std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1SessionParametersCreateInfoKHR& value)
14711{
14712	s << "VkVideoDecodeAV1SessionParametersCreateInfoKHR = {\n";
14713	s << "\tsType = " << value.sType << '\n';
14714	s << "\tpNext = " << value.pNext << '\n';
14715	s << "\tpStdSequenceHeader = " << value.pStdSequenceHeader << '\n';
14716	s << '}';
14717	return s;
14718}
14719
14720std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1PictureInfoKHR& value)
14721{
14722	s << "VkVideoDecodeAV1PictureInfoKHR = {\n";
14723	s << "\tsType = " << value.sType << '\n';
14724	s << "\tpNext = " << value.pNext << '\n';
14725	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14726	s << "\treferenceNameSlotIndices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.referenceNameSlotIndices), DE_ARRAY_END(value.referenceNameSlotIndices)) << '\n';
14727	s << "\tframeHeaderOffset = " << value.frameHeaderOffset << '\n';
14728	s << "\ttileCount = " << value.tileCount << '\n';
14729	s << "\tpTileOffsets = " << value.pTileOffsets << '\n';
14730	s << "\tpTileSizes = " << value.pTileSizes << '\n';
14731	s << '}';
14732	return s;
14733}
14734
14735std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1DpbSlotInfoKHR& value)
14736{
14737	s << "VkVideoDecodeAV1DpbSlotInfoKHR = {\n";
14738	s << "\tsType = " << value.sType << '\n';
14739	s << "\tpNext = " << value.pNext << '\n';
14740	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14741	s << '}';
14742	return s;
14743}
14744
14745std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
14746{
14747	s << "VkVideoSessionCreateInfoKHR = {\n";
14748	s << "\tsType = " << value.sType << '\n';
14749	s << "\tpNext = " << value.pNext << '\n';
14750	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
14751	s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
14752	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
14753	s << "\tpictureFormat = " << value.pictureFormat << '\n';
14754	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
14755	s << "\treferencePictureFormat = " << value.referencePictureFormat << '\n';
14756	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
14757	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
14758	s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
14759	s << '}';
14760	return s;
14761}
14762
14763std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
14764{
14765	s << "VkVideoSessionParametersCreateInfoKHR = {\n";
14766	s << "\tsType = " << value.sType << '\n';
14767	s << "\tpNext = " << value.pNext << '\n';
14768	s << "\tflags = " << getVideoSessionParametersCreateFlagsKHRStr(value.flags) << '\n';
14769	s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
14770	s << "\tvideoSession = " << value.videoSession << '\n';
14771	s << '}';
14772	return s;
14773}
14774
14775std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
14776{
14777	s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
14778	s << "\tsType = " << value.sType << '\n';
14779	s << "\tpNext = " << value.pNext << '\n';
14780	s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
14781	s << '}';
14782	return s;
14783}
14784
14785std::ostream& operator<< (std::ostream& s, const VkVideoEncodeSessionParametersGetInfoKHR& value)
14786{
14787	s << "VkVideoEncodeSessionParametersGetInfoKHR = {\n";
14788	s << "\tsType = " << value.sType << '\n';
14789	s << "\tpNext = " << value.pNext << '\n';
14790	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
14791	s << '}';
14792	return s;
14793}
14794
14795std::ostream& operator<< (std::ostream& s, const VkVideoEncodeSessionParametersFeedbackInfoKHR& value)
14796{
14797	s << "VkVideoEncodeSessionParametersFeedbackInfoKHR = {\n";
14798	s << "\tsType = " << value.sType << '\n';
14799	s << "\tpNext = " << value.pNext << '\n';
14800	s << "\thasOverrides = " << value.hasOverrides << '\n';
14801	s << '}';
14802	return s;
14803}
14804
14805std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
14806{
14807	s << "VkVideoBeginCodingInfoKHR = {\n";
14808	s << "\tsType = " << value.sType << '\n';
14809	s << "\tpNext = " << value.pNext << '\n';
14810	s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
14811	s << "\tvideoSession = " << value.videoSession << '\n';
14812	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
14813	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
14814	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
14815	s << '}';
14816	return s;
14817}
14818
14819std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
14820{
14821	s << "VkVideoEndCodingInfoKHR = {\n";
14822	s << "\tsType = " << value.sType << '\n';
14823	s << "\tpNext = " << value.pNext << '\n';
14824	s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
14825	s << '}';
14826	return s;
14827}
14828
14829std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
14830{
14831	s << "VkVideoCodingControlInfoKHR = {\n";
14832	s << "\tsType = " << value.sType << '\n';
14833	s << "\tpNext = " << value.pNext << '\n';
14834	s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
14835	s << '}';
14836	return s;
14837}
14838
14839std::ostream& operator<< (std::ostream& s, const VkVideoEncodeUsageInfoKHR& value)
14840{
14841	s << "VkVideoEncodeUsageInfoKHR = {\n";
14842	s << "\tsType = " << value.sType << '\n';
14843	s << "\tpNext = " << value.pNext << '\n';
14844	s << "\tvideoUsageHints = " << getVideoEncodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
14845	s << "\tvideoContentHints = " << getVideoEncodeContentFlagsKHRStr(value.videoContentHints) << '\n';
14846	s << "\ttuningMode = " << value.tuningMode << '\n';
14847	s << '}';
14848	return s;
14849}
14850
14851std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
14852{
14853	s << "VkVideoEncodeInfoKHR = {\n";
14854	s << "\tsType = " << value.sType << '\n';
14855	s << "\tpNext = " << value.pNext << '\n';
14856	s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
14857	s << "\tdstBuffer = " << value.dstBuffer << '\n';
14858	s << "\tdstBufferOffset = " << value.dstBufferOffset << '\n';
14859	s << "\tdstBufferRange = " << value.dstBufferRange << '\n';
14860	s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
14861	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
14862	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
14863	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
14864	s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
14865	s << '}';
14866	return s;
14867}
14868
14869std::ostream& operator<< (std::ostream& s, const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR& value)
14870{
14871	s << "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR = {\n";
14872	s << "\tsType = " << value.sType << '\n';
14873	s << "\tpNext = " << value.pNext << '\n';
14874	s << "\tencodeFeedbackFlags = " << getVideoEncodeFeedbackFlagsKHRStr(value.encodeFeedbackFlags) << '\n';
14875	s << '}';
14876	return s;
14877}
14878
14879std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQualityLevelInfoKHR& value)
14880{
14881	s << "VkVideoEncodeQualityLevelInfoKHR = {\n";
14882	s << "\tsType = " << value.sType << '\n';
14883	s << "\tpNext = " << value.pNext << '\n';
14884	s << "\tqualityLevel = " << value.qualityLevel << '\n';
14885	s << '}';
14886	return s;
14887}
14888
14889std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR& value)
14890{
14891	s << "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR = {\n";
14892	s << "\tsType = " << value.sType << '\n';
14893	s << "\tpNext = " << value.pNext << '\n';
14894	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
14895	s << "\tqualityLevel = " << value.qualityLevel << '\n';
14896	s << '}';
14897	return s;
14898}
14899
14900std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQualityLevelPropertiesKHR& value)
14901{
14902	s << "VkVideoEncodeQualityLevelPropertiesKHR = {\n";
14903	s << "\tsType = " << value.sType << '\n';
14904	s << "\tpNext = " << value.pNext << '\n';
14905	s << "\tpreferredRateControlMode = " << value.preferredRateControlMode << '\n';
14906	s << "\tpreferredRateControlLayerCount = " << value.preferredRateControlLayerCount << '\n';
14907	s << '}';
14908	return s;
14909}
14910
14911std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
14912{
14913	s << "VkVideoEncodeRateControlInfoKHR = {\n";
14914	s << "\tsType = " << value.sType << '\n';
14915	s << "\tpNext = " << value.pNext << '\n';
14916	s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
14917	s << "\trateControlMode = " << value.rateControlMode << '\n';
14918	s << "\tlayerCount = " << value.layerCount << '\n';
14919	s << "\tpLayers = " << value.pLayers << '\n';
14920	s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
14921	s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
14922	s << '}';
14923	return s;
14924}
14925
14926std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
14927{
14928	s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
14929	s << "\tsType = " << value.sType << '\n';
14930	s << "\tpNext = " << value.pNext << '\n';
14931	s << "\taverageBitrate = " << value.averageBitrate << '\n';
14932	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
14933	s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
14934	s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
14935	s << '}';
14936	return s;
14937}
14938
14939std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
14940{
14941	s << "VkVideoEncodeCapabilitiesKHR = {\n";
14942	s << "\tsType = " << value.sType << '\n';
14943	s << "\tpNext = " << value.pNext << '\n';
14944	s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
14945	s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
14946	s << "\tmaxRateControlLayers = " << value.maxRateControlLayers << '\n';
14947	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
14948	s << "\tmaxQualityLevels = " << value.maxQualityLevels << '\n';
14949	s << "\tencodeInputPictureGranularity = " << value.encodeInputPictureGranularity << '\n';
14950	s << "\tsupportedEncodeFeedbackFlags = " << getVideoEncodeFeedbackFlagsKHRStr(value.supportedEncodeFeedbackFlags) << '\n';
14951	s << '}';
14952	return s;
14953}
14954
14955std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesKHR& value)
14956{
14957	s << "VkVideoEncodeH264CapabilitiesKHR = {\n";
14958	s << "\tsType = " << value.sType << '\n';
14959	s << "\tpNext = " << value.pNext << '\n';
14960	s << "\tflags = " << getVideoEncodeH264CapabilityFlagsKHRStr(value.flags) << '\n';
14961	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
14962	s << "\tmaxSliceCount = " << value.maxSliceCount << '\n';
14963	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
14964	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
14965	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
14966	s << "\tmaxTemporalLayerCount = " << value.maxTemporalLayerCount << '\n';
14967	s << "\texpectDyadicTemporalLayerPattern = " << value.expectDyadicTemporalLayerPattern << '\n';
14968	s << "\tminQp = " << value.minQp << '\n';
14969	s << "\tmaxQp = " << value.maxQp << '\n';
14970	s << "\tprefersGopRemainingFrames = " << value.prefersGopRemainingFrames << '\n';
14971	s << "\trequiresGopRemainingFrames = " << value.requiresGopRemainingFrames << '\n';
14972	s << "\tstdSyntaxFlags = " << getVideoEncodeH264StdFlagsKHRStr(value.stdSyntaxFlags) << '\n';
14973	s << '}';
14974	return s;
14975}
14976
14977std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QualityLevelPropertiesKHR& value)
14978{
14979	s << "VkVideoEncodeH264QualityLevelPropertiesKHR = {\n";
14980	s << "\tsType = " << value.sType << '\n';
14981	s << "\tpNext = " << value.pNext << '\n';
14982	s << "\tpreferredRateControlFlags = " << getVideoEncodeH264RateControlFlagsKHRStr(value.preferredRateControlFlags) << '\n';
14983	s << "\tpreferredGopFrameCount = " << value.preferredGopFrameCount << '\n';
14984	s << "\tpreferredIdrPeriod = " << value.preferredIdrPeriod << '\n';
14985	s << "\tpreferredConsecutiveBFrameCount = " << value.preferredConsecutiveBFrameCount << '\n';
14986	s << "\tpreferredTemporalLayerCount = " << value.preferredTemporalLayerCount << '\n';
14987	s << "\tpreferredConstantQp = " << value.preferredConstantQp << '\n';
14988	s << "\tpreferredMaxL0ReferenceCount = " << value.preferredMaxL0ReferenceCount << '\n';
14989	s << "\tpreferredMaxL1ReferenceCount = " << value.preferredMaxL1ReferenceCount << '\n';
14990	s << "\tpreferredStdEntropyCodingModeFlag = " << value.preferredStdEntropyCodingModeFlag << '\n';
14991	s << '}';
14992	return s;
14993}
14994
14995std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionCreateInfoKHR& value)
14996{
14997	s << "VkVideoEncodeH264SessionCreateInfoKHR = {\n";
14998	s << "\tsType = " << value.sType << '\n';
14999	s << "\tpNext = " << value.pNext << '\n';
15000	s << "\tuseMaxLevelIdc = " << value.useMaxLevelIdc << '\n';
15001	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
15002	s << '}';
15003	return s;
15004}
15005
15006std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoKHR& value)
15007{
15008	s << "VkVideoEncodeH264SessionParametersAddInfoKHR = {\n";
15009	s << "\tsType = " << value.sType << '\n';
15010	s << "\tpNext = " << value.pNext << '\n';
15011	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
15012	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
15013	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
15014	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
15015	s << '}';
15016	return s;
15017}
15018
15019std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoKHR& value)
15020{
15021	s << "VkVideoEncodeH264SessionParametersCreateInfoKHR = {\n";
15022	s << "\tsType = " << value.sType << '\n';
15023	s << "\tpNext = " << value.pNext << '\n';
15024	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
15025	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
15026	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
15027	s << '}';
15028	return s;
15029}
15030
15031std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersGetInfoKHR& value)
15032{
15033	s << "VkVideoEncodeH264SessionParametersGetInfoKHR = {\n";
15034	s << "\tsType = " << value.sType << '\n';
15035	s << "\tpNext = " << value.pNext << '\n';
15036	s << "\twriteStdSPS = " << value.writeStdSPS << '\n';
15037	s << "\twriteStdPPS = " << value.writeStdPPS << '\n';
15038	s << "\tstdSPSId = " << value.stdSPSId << '\n';
15039	s << "\tstdPPSId = " << value.stdPPSId << '\n';
15040	s << '}';
15041	return s;
15042}
15043
15044std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersFeedbackInfoKHR& value)
15045{
15046	s << "VkVideoEncodeH264SessionParametersFeedbackInfoKHR = {\n";
15047	s << "\tsType = " << value.sType << '\n';
15048	s << "\tpNext = " << value.pNext << '\n';
15049	s << "\thasStdSPSOverrides = " << value.hasStdSPSOverrides << '\n';
15050	s << "\thasStdPPSOverrides = " << value.hasStdPPSOverrides << '\n';
15051	s << '}';
15052	return s;
15053}
15054
15055std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoKHR& value)
15056{
15057	s << "VkVideoEncodeH264DpbSlotInfoKHR = {\n";
15058	s << "\tsType = " << value.sType << '\n';
15059	s << "\tpNext = " << value.pNext << '\n';
15060	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
15061	s << '}';
15062	return s;
15063}
15064
15065std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264PictureInfoKHR& value)
15066{
15067	s << "VkVideoEncodeH264PictureInfoKHR = {\n";
15068	s << "\tsType = " << value.sType << '\n';
15069	s << "\tpNext = " << value.pNext << '\n';
15070	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
15071	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
15072	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
15073	s << "\tgeneratePrefixNalu = " << value.generatePrefixNalu << '\n';
15074	s << '}';
15075	return s;
15076}
15077
15078std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileInfoKHR& value)
15079{
15080	s << "VkVideoEncodeH264ProfileInfoKHR = {\n";
15081	s << "\tsType = " << value.sType << '\n';
15082	s << "\tpNext = " << value.pNext << '\n';
15083	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
15084	s << '}';
15085	return s;
15086}
15087
15088std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceInfoKHR& value)
15089{
15090	s << "VkVideoEncodeH264NaluSliceInfoKHR = {\n";
15091	s << "\tsType = " << value.sType << '\n';
15092	s << "\tpNext = " << value.pNext << '\n';
15093	s << "\tconstantQp = " << value.constantQp << '\n';
15094	s << "\tpStdSliceHeader = " << value.pStdSliceHeader << '\n';
15095	s << '}';
15096	return s;
15097}
15098
15099std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoKHR& value)
15100{
15101	s << "VkVideoEncodeH264RateControlInfoKHR = {\n";
15102	s << "\tsType = " << value.sType << '\n';
15103	s << "\tpNext = " << value.pNext << '\n';
15104	s << "\tflags = " << getVideoEncodeH264RateControlFlagsKHRStr(value.flags) << '\n';
15105	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
15106	s << "\tidrPeriod = " << value.idrPeriod << '\n';
15107	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
15108	s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
15109	s << '}';
15110	return s;
15111}
15112
15113std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpKHR& value)
15114{
15115	s << "VkVideoEncodeH264QpKHR = {\n";
15116	s << "\tqpI = " << value.qpI << '\n';
15117	s << "\tqpP = " << value.qpP << '\n';
15118	s << "\tqpB = " << value.qpB << '\n';
15119	s << '}';
15120	return s;
15121}
15122
15123std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeKHR& value)
15124{
15125	s << "VkVideoEncodeH264FrameSizeKHR = {\n";
15126	s << "\tframeISize = " << value.frameISize << '\n';
15127	s << "\tframePSize = " << value.framePSize << '\n';
15128	s << "\tframeBSize = " << value.frameBSize << '\n';
15129	s << '}';
15130	return s;
15131}
15132
15133std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264GopRemainingFrameInfoKHR& value)
15134{
15135	s << "VkVideoEncodeH264GopRemainingFrameInfoKHR = {\n";
15136	s << "\tsType = " << value.sType << '\n';
15137	s << "\tpNext = " << value.pNext << '\n';
15138	s << "\tuseGopRemainingFrames = " << value.useGopRemainingFrames << '\n';
15139	s << "\tgopRemainingI = " << value.gopRemainingI << '\n';
15140	s << "\tgopRemainingP = " << value.gopRemainingP << '\n';
15141	s << "\tgopRemainingB = " << value.gopRemainingB << '\n';
15142	s << '}';
15143	return s;
15144}
15145
15146std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoKHR& value)
15147{
15148	s << "VkVideoEncodeH264RateControlLayerInfoKHR = {\n";
15149	s << "\tsType = " << value.sType << '\n';
15150	s << "\tpNext = " << value.pNext << '\n';
15151	s << "\tuseMinQp = " << value.useMinQp << '\n';
15152	s << "\tminQp = " << value.minQp << '\n';
15153	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
15154	s << "\tmaxQp = " << value.maxQp << '\n';
15155	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
15156	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
15157	s << '}';
15158	return s;
15159}
15160
15161std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesKHR& value)
15162{
15163	s << "VkVideoEncodeH265CapabilitiesKHR = {\n";
15164	s << "\tsType = " << value.sType << '\n';
15165	s << "\tpNext = " << value.pNext << '\n';
15166	s << "\tflags = " << getVideoEncodeH265CapabilityFlagsKHRStr(value.flags) << '\n';
15167	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
15168	s << "\tmaxSliceSegmentCount = " << value.maxSliceSegmentCount << '\n';
15169	s << "\tmaxTiles = " << value.maxTiles << '\n';
15170	s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsKHRStr(value.ctbSizes) << '\n';
15171	s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsKHRStr(value.transformBlockSizes) << '\n';
15172	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
15173	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
15174	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
15175	s << "\tmaxSubLayerCount = " << value.maxSubLayerCount << '\n';
15176	s << "\texpectDyadicTemporalSubLayerPattern = " << value.expectDyadicTemporalSubLayerPattern << '\n';
15177	s << "\tminQp = " << value.minQp << '\n';
15178	s << "\tmaxQp = " << value.maxQp << '\n';
15179	s << "\tprefersGopRemainingFrames = " << value.prefersGopRemainingFrames << '\n';
15180	s << "\trequiresGopRemainingFrames = " << value.requiresGopRemainingFrames << '\n';
15181	s << "\tstdSyntaxFlags = " << getVideoEncodeH265StdFlagsKHRStr(value.stdSyntaxFlags) << '\n';
15182	s << '}';
15183	return s;
15184}
15185
15186std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QualityLevelPropertiesKHR& value)
15187{
15188	s << "VkVideoEncodeH265QualityLevelPropertiesKHR = {\n";
15189	s << "\tsType = " << value.sType << '\n';
15190	s << "\tpNext = " << value.pNext << '\n';
15191	s << "\tpreferredRateControlFlags = " << getVideoEncodeH265RateControlFlagsKHRStr(value.preferredRateControlFlags) << '\n';
15192	s << "\tpreferredGopFrameCount = " << value.preferredGopFrameCount << '\n';
15193	s << "\tpreferredIdrPeriod = " << value.preferredIdrPeriod << '\n';
15194	s << "\tpreferredConsecutiveBFrameCount = " << value.preferredConsecutiveBFrameCount << '\n';
15195	s << "\tpreferredSubLayerCount = " << value.preferredSubLayerCount << '\n';
15196	s << "\tpreferredConstantQp = " << value.preferredConstantQp << '\n';
15197	s << "\tpreferredMaxL0ReferenceCount = " << value.preferredMaxL0ReferenceCount << '\n';
15198	s << "\tpreferredMaxL1ReferenceCount = " << value.preferredMaxL1ReferenceCount << '\n';
15199	s << '}';
15200	return s;
15201}
15202
15203std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionCreateInfoKHR& value)
15204{
15205	s << "VkVideoEncodeH265SessionCreateInfoKHR = {\n";
15206	s << "\tsType = " << value.sType << '\n';
15207	s << "\tpNext = " << value.pNext << '\n';
15208	s << "\tuseMaxLevelIdc = " << value.useMaxLevelIdc << '\n';
15209	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
15210	s << '}';
15211	return s;
15212}
15213
15214std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoKHR& value)
15215{
15216	s << "VkVideoEncodeH265SessionParametersAddInfoKHR = {\n";
15217	s << "\tsType = " << value.sType << '\n';
15218	s << "\tpNext = " << value.pNext << '\n';
15219	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
15220	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
15221	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
15222	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
15223	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
15224	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
15225	s << '}';
15226	return s;
15227}
15228
15229std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoKHR& value)
15230{
15231	s << "VkVideoEncodeH265SessionParametersCreateInfoKHR = {\n";
15232	s << "\tsType = " << value.sType << '\n';
15233	s << "\tpNext = " << value.pNext << '\n';
15234	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
15235	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
15236	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
15237	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
15238	s << '}';
15239	return s;
15240}
15241
15242std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersGetInfoKHR& value)
15243{
15244	s << "VkVideoEncodeH265SessionParametersGetInfoKHR = {\n";
15245	s << "\tsType = " << value.sType << '\n';
15246	s << "\tpNext = " << value.pNext << '\n';
15247	s << "\twriteStdVPS = " << value.writeStdVPS << '\n';
15248	s << "\twriteStdSPS = " << value.writeStdSPS << '\n';
15249	s << "\twriteStdPPS = " << value.writeStdPPS << '\n';
15250	s << "\tstdVPSId = " << value.stdVPSId << '\n';
15251	s << "\tstdSPSId = " << value.stdSPSId << '\n';
15252	s << "\tstdPPSId = " << value.stdPPSId << '\n';
15253	s << '}';
15254	return s;
15255}
15256
15257std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersFeedbackInfoKHR& value)
15258{
15259	s << "VkVideoEncodeH265SessionParametersFeedbackInfoKHR = {\n";
15260	s << "\tsType = " << value.sType << '\n';
15261	s << "\tpNext = " << value.pNext << '\n';
15262	s << "\thasStdVPSOverrides = " << value.hasStdVPSOverrides << '\n';
15263	s << "\thasStdSPSOverrides = " << value.hasStdSPSOverrides << '\n';
15264	s << "\thasStdPPSOverrides = " << value.hasStdPPSOverrides << '\n';
15265	s << '}';
15266	return s;
15267}
15268
15269std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265PictureInfoKHR& value)
15270{
15271	s << "VkVideoEncodeH265PictureInfoKHR = {\n";
15272	s << "\tsType = " << value.sType << '\n';
15273	s << "\tpNext = " << value.pNext << '\n';
15274	s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
15275	s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
15276	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
15277	s << '}';
15278	return s;
15279}
15280
15281std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentInfoKHR& value)
15282{
15283	s << "VkVideoEncodeH265NaluSliceSegmentInfoKHR = {\n";
15284	s << "\tsType = " << value.sType << '\n';
15285	s << "\tpNext = " << value.pNext << '\n';
15286	s << "\tconstantQp = " << value.constantQp << '\n';
15287	s << "\tpStdSliceSegmentHeader = " << value.pStdSliceSegmentHeader << '\n';
15288	s << '}';
15289	return s;
15290}
15291
15292std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoKHR& value)
15293{
15294	s << "VkVideoEncodeH265RateControlInfoKHR = {\n";
15295	s << "\tsType = " << value.sType << '\n';
15296	s << "\tpNext = " << value.pNext << '\n';
15297	s << "\tflags = " << getVideoEncodeH265RateControlFlagsKHRStr(value.flags) << '\n';
15298	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
15299	s << "\tidrPeriod = " << value.idrPeriod << '\n';
15300	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
15301	s << "\tsubLayerCount = " << value.subLayerCount << '\n';
15302	s << '}';
15303	return s;
15304}
15305
15306std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpKHR& value)
15307{
15308	s << "VkVideoEncodeH265QpKHR = {\n";
15309	s << "\tqpI = " << value.qpI << '\n';
15310	s << "\tqpP = " << value.qpP << '\n';
15311	s << "\tqpB = " << value.qpB << '\n';
15312	s << '}';
15313	return s;
15314}
15315
15316std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeKHR& value)
15317{
15318	s << "VkVideoEncodeH265FrameSizeKHR = {\n";
15319	s << "\tframeISize = " << value.frameISize << '\n';
15320	s << "\tframePSize = " << value.framePSize << '\n';
15321	s << "\tframeBSize = " << value.frameBSize << '\n';
15322	s << '}';
15323	return s;
15324}
15325
15326std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265GopRemainingFrameInfoKHR& value)
15327{
15328	s << "VkVideoEncodeH265GopRemainingFrameInfoKHR = {\n";
15329	s << "\tsType = " << value.sType << '\n';
15330	s << "\tpNext = " << value.pNext << '\n';
15331	s << "\tuseGopRemainingFrames = " << value.useGopRemainingFrames << '\n';
15332	s << "\tgopRemainingI = " << value.gopRemainingI << '\n';
15333	s << "\tgopRemainingP = " << value.gopRemainingP << '\n';
15334	s << "\tgopRemainingB = " << value.gopRemainingB << '\n';
15335	s << '}';
15336	return s;
15337}
15338
15339std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoKHR& value)
15340{
15341	s << "VkVideoEncodeH265RateControlLayerInfoKHR = {\n";
15342	s << "\tsType = " << value.sType << '\n';
15343	s << "\tpNext = " << value.pNext << '\n';
15344	s << "\tuseMinQp = " << value.useMinQp << '\n';
15345	s << "\tminQp = " << value.minQp << '\n';
15346	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
15347	s << "\tmaxQp = " << value.maxQp << '\n';
15348	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
15349	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
15350	s << '}';
15351	return s;
15352}
15353
15354std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileInfoKHR& value)
15355{
15356	s << "VkVideoEncodeH265ProfileInfoKHR = {\n";
15357	s << "\tsType = " << value.sType << '\n';
15358	s << "\tpNext = " << value.pNext << '\n';
15359	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
15360	s << '}';
15361	return s;
15362}
15363
15364std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoKHR& value)
15365{
15366	s << "VkVideoEncodeH265DpbSlotInfoKHR = {\n";
15367	s << "\tsType = " << value.sType << '\n';
15368	s << "\tpNext = " << value.pNext << '\n';
15369	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
15370	s << '}';
15371	return s;
15372}
15373
15374std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
15375{
15376	s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
15377	s << "\tsType = " << value.sType << '\n';
15378	s << "\tpNext = " << value.pNext << '\n';
15379	s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
15380	s << '}';
15381	return s;
15382}
15383
15384std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
15385{
15386	s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
15387	s << "\tsType = " << value.sType << '\n';
15388	s << "\tpNext = " << value.pNext << '\n';
15389	s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
15390	s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
15391	s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
15392	s << '}';
15393	return s;
15394}
15395
15396std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
15397{
15398	s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
15399	s << "\tsType = " << value.sType << '\n';
15400	s << "\tpNext = " << value.pNext << '\n';
15401	s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
15402	s << '}';
15403	return s;
15404}
15405
15406std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
15407{
15408	s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
15409	s << "\tsType = " << value.sType << '\n';
15410	s << "\tpNext = " << value.pNext << '\n';
15411	s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
15412	s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
15413	s << '}';
15414	return s;
15415}
15416
15417std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
15418{
15419	s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
15420	s << "\tsType = " << value.sType << '\n';
15421	s << "\tpNext = " << value.pNext << '\n';
15422	s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
15423	s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
15424	s << '}';
15425	return s;
15426}
15427
15428std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
15429{
15430	s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
15431	s << "\tsType = " << value.sType << '\n';
15432	s << "\tpNext = " << value.pNext << '\n';
15433	s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
15434	s << '}';
15435	return s;
15436}
15437
15438std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
15439{
15440	s << "VkCuModuleCreateInfoNVX = {\n";
15441	s << "\tsType = " << value.sType << '\n';
15442	s << "\tpNext = " << value.pNext << '\n';
15443	s << "\tdataSize = " << value.dataSize << '\n';
15444	s << "\tpData = " << value.pData << '\n';
15445	s << '}';
15446	return s;
15447}
15448
15449std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
15450{
15451	s << "VkCuFunctionCreateInfoNVX = {\n";
15452	s << "\tsType = " << value.sType << '\n';
15453	s << "\tpNext = " << value.pNext << '\n';
15454	s << "\tmodule = " << value.module << '\n';
15455	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
15456	s << '}';
15457	return s;
15458}
15459
15460std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
15461{
15462	s << "VkCuLaunchInfoNVX = {\n";
15463	s << "\tsType = " << value.sType << '\n';
15464	s << "\tpNext = " << value.pNext << '\n';
15465	s << "\tfunction = " << value.function << '\n';
15466	s << "\tgridDimX = " << value.gridDimX << '\n';
15467	s << "\tgridDimY = " << value.gridDimY << '\n';
15468	s << "\tgridDimZ = " << value.gridDimZ << '\n';
15469	s << "\tblockDimX = " << value.blockDimX << '\n';
15470	s << "\tblockDimY = " << value.blockDimY << '\n';
15471	s << "\tblockDimZ = " << value.blockDimZ << '\n';
15472	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
15473	s << "\tparamCount = " << value.paramCount << '\n';
15474	s << "\tpParams = " << value.pParams << '\n';
15475	s << "\textraCount = " << value.extraCount << '\n';
15476	s << "\tpExtras = " << value.pExtras << '\n';
15477	s << '}';
15478	return s;
15479}
15480
15481std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferFeaturesEXT& value)
15482{
15483	s << "VkPhysicalDeviceDescriptorBufferFeaturesEXT = {\n";
15484	s << "\tsType = " << value.sType << '\n';
15485	s << "\tpNext = " << value.pNext << '\n';
15486	s << "\tdescriptorBuffer = " << value.descriptorBuffer << '\n';
15487	s << "\tdescriptorBufferCaptureReplay = " << value.descriptorBufferCaptureReplay << '\n';
15488	s << "\tdescriptorBufferImageLayoutIgnored = " << value.descriptorBufferImageLayoutIgnored << '\n';
15489	s << "\tdescriptorBufferPushDescriptors = " << value.descriptorBufferPushDescriptors << '\n';
15490	s << '}';
15491	return s;
15492}
15493
15494std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferPropertiesEXT& value)
15495{
15496	s << "VkPhysicalDeviceDescriptorBufferPropertiesEXT = {\n";
15497	s << "\tsType = " << value.sType << '\n';
15498	s << "\tpNext = " << value.pNext << '\n';
15499	s << "\tcombinedImageSamplerDescriptorSingleArray = " << value.combinedImageSamplerDescriptorSingleArray << '\n';
15500	s << "\tbufferlessPushDescriptors = " << value.bufferlessPushDescriptors << '\n';
15501	s << "\tallowSamplerImageViewPostSubmitCreation = " << value.allowSamplerImageViewPostSubmitCreation << '\n';
15502	s << "\tdescriptorBufferOffsetAlignment = " << value.descriptorBufferOffsetAlignment << '\n';
15503	s << "\tmaxDescriptorBufferBindings = " << value.maxDescriptorBufferBindings << '\n';
15504	s << "\tmaxResourceDescriptorBufferBindings = " << value.maxResourceDescriptorBufferBindings << '\n';
15505	s << "\tmaxSamplerDescriptorBufferBindings = " << value.maxSamplerDescriptorBufferBindings << '\n';
15506	s << "\tmaxEmbeddedImmutableSamplerBindings = " << value.maxEmbeddedImmutableSamplerBindings << '\n';
15507	s << "\tmaxEmbeddedImmutableSamplers = " << value.maxEmbeddedImmutableSamplers << '\n';
15508	s << "\tbufferCaptureReplayDescriptorDataSize = " << value.bufferCaptureReplayDescriptorDataSize << '\n';
15509	s << "\timageCaptureReplayDescriptorDataSize = " << value.imageCaptureReplayDescriptorDataSize << '\n';
15510	s << "\timageViewCaptureReplayDescriptorDataSize = " << value.imageViewCaptureReplayDescriptorDataSize << '\n';
15511	s << "\tsamplerCaptureReplayDescriptorDataSize = " << value.samplerCaptureReplayDescriptorDataSize << '\n';
15512	s << "\taccelerationStructureCaptureReplayDescriptorDataSize = " << value.accelerationStructureCaptureReplayDescriptorDataSize << '\n';
15513	s << "\tsamplerDescriptorSize = " << value.samplerDescriptorSize << '\n';
15514	s << "\tcombinedImageSamplerDescriptorSize = " << value.combinedImageSamplerDescriptorSize << '\n';
15515	s << "\tsampledImageDescriptorSize = " << value.sampledImageDescriptorSize << '\n';
15516	s << "\tstorageImageDescriptorSize = " << value.storageImageDescriptorSize << '\n';
15517	s << "\tuniformTexelBufferDescriptorSize = " << value.uniformTexelBufferDescriptorSize << '\n';
15518	s << "\trobustUniformTexelBufferDescriptorSize = " << value.robustUniformTexelBufferDescriptorSize << '\n';
15519	s << "\tstorageTexelBufferDescriptorSize = " << value.storageTexelBufferDescriptorSize << '\n';
15520	s << "\trobustStorageTexelBufferDescriptorSize = " << value.robustStorageTexelBufferDescriptorSize << '\n';
15521	s << "\tuniformBufferDescriptorSize = " << value.uniformBufferDescriptorSize << '\n';
15522	s << "\trobustUniformBufferDescriptorSize = " << value.robustUniformBufferDescriptorSize << '\n';
15523	s << "\tstorageBufferDescriptorSize = " << value.storageBufferDescriptorSize << '\n';
15524	s << "\trobustStorageBufferDescriptorSize = " << value.robustStorageBufferDescriptorSize << '\n';
15525	s << "\tinputAttachmentDescriptorSize = " << value.inputAttachmentDescriptorSize << '\n';
15526	s << "\taccelerationStructureDescriptorSize = " << value.accelerationStructureDescriptorSize << '\n';
15527	s << "\tmaxSamplerDescriptorBufferRange = " << value.maxSamplerDescriptorBufferRange << '\n';
15528	s << "\tmaxResourceDescriptorBufferRange = " << value.maxResourceDescriptorBufferRange << '\n';
15529	s << "\tsamplerDescriptorBufferAddressSpaceSize = " << value.samplerDescriptorBufferAddressSpaceSize << '\n';
15530	s << "\tresourceDescriptorBufferAddressSpaceSize = " << value.resourceDescriptorBufferAddressSpaceSize << '\n';
15531	s << "\tdescriptorBufferAddressSpaceSize = " << value.descriptorBufferAddressSpaceSize << '\n';
15532	s << '}';
15533	return s;
15534}
15535
15536std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT& value)
15537{
15538	s << "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = {\n";
15539	s << "\tsType = " << value.sType << '\n';
15540	s << "\tpNext = " << value.pNext << '\n';
15541	s << "\tcombinedImageSamplerDensityMapDescriptorSize = " << value.combinedImageSamplerDensityMapDescriptorSize << '\n';
15542	s << '}';
15543	return s;
15544}
15545
15546std::ostream& operator<< (std::ostream& s, const VkDescriptorAddressInfoEXT& value)
15547{
15548	s << "VkDescriptorAddressInfoEXT = {\n";
15549	s << "\tsType = " << value.sType << '\n';
15550	s << "\tpNext = " << value.pNext << '\n';
15551	s << "\taddress = " << value.address << '\n';
15552	s << "\trange = " << value.range << '\n';
15553	s << "\tformat = " << value.format << '\n';
15554	s << '}';
15555	return s;
15556}
15557
15558std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingInfoEXT& value)
15559{
15560	s << "VkDescriptorBufferBindingInfoEXT = {\n";
15561	s << "\tsType = " << value.sType << '\n';
15562	s << "\tpNext = " << value.pNext << '\n';
15563	s << "\taddress = " << value.address << '\n';
15564	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
15565	s << '}';
15566	return s;
15567}
15568
15569std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT& value)
15570{
15571	s << "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT = {\n";
15572	s << "\tsType = " << value.sType << '\n';
15573	s << "\tpNext = " << value.pNext << '\n';
15574	s << "\tbuffer = " << value.buffer << '\n';
15575	s << '}';
15576	return s;
15577}
15578
15579std::ostream& operator<< (std::ostream& s, const VkDescriptorDataEXT& value)
15580{
15581	s << "VkDescriptorDataEXT = {\n";
15582	s << "\tpSampler = " << value.pSampler << '\n';
15583	s << "\tpCombinedImageSampler = " << value.pCombinedImageSampler << '\n';
15584	s << "\tpInputAttachmentImage = " << value.pInputAttachmentImage << '\n';
15585	s << "\tpSampledImage = " << value.pSampledImage << '\n';
15586	s << "\tpStorageImage = " << value.pStorageImage << '\n';
15587	s << "\tpUniformTexelBuffer = " << value.pUniformTexelBuffer << '\n';
15588	s << "\tpStorageTexelBuffer = " << value.pStorageTexelBuffer << '\n';
15589	s << "\tpUniformBuffer = " << value.pUniformBuffer << '\n';
15590	s << "\tpStorageBuffer = " << value.pStorageBuffer << '\n';
15591	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
15592	s << '}';
15593	return s;
15594}
15595
15596std::ostream& operator<< (std::ostream& s, const VkDescriptorGetInfoEXT& value)
15597{
15598	s << "VkDescriptorGetInfoEXT = {\n";
15599	s << "\tsType = " << value.sType << '\n';
15600	s << "\tpNext = " << value.pNext << '\n';
15601	s << "\ttype = " << value.type << '\n';
15602	s << "\tdata = " << value.data << '\n';
15603	s << '}';
15604	return s;
15605}
15606
15607std::ostream& operator<< (std::ostream& s, const VkBufferCaptureDescriptorDataInfoEXT& value)
15608{
15609	s << "VkBufferCaptureDescriptorDataInfoEXT = {\n";
15610	s << "\tsType = " << value.sType << '\n';
15611	s << "\tpNext = " << value.pNext << '\n';
15612	s << "\tbuffer = " << value.buffer << '\n';
15613	s << '}';
15614	return s;
15615}
15616
15617std::ostream& operator<< (std::ostream& s, const VkImageCaptureDescriptorDataInfoEXT& value)
15618{
15619	s << "VkImageCaptureDescriptorDataInfoEXT = {\n";
15620	s << "\tsType = " << value.sType << '\n';
15621	s << "\tpNext = " << value.pNext << '\n';
15622	s << "\timage = " << value.image << '\n';
15623	s << '}';
15624	return s;
15625}
15626
15627std::ostream& operator<< (std::ostream& s, const VkImageViewCaptureDescriptorDataInfoEXT& value)
15628{
15629	s << "VkImageViewCaptureDescriptorDataInfoEXT = {\n";
15630	s << "\tsType = " << value.sType << '\n';
15631	s << "\tpNext = " << value.pNext << '\n';
15632	s << "\timageView = " << value.imageView << '\n';
15633	s << '}';
15634	return s;
15635}
15636
15637std::ostream& operator<< (std::ostream& s, const VkSamplerCaptureDescriptorDataInfoEXT& value)
15638{
15639	s << "VkSamplerCaptureDescriptorDataInfoEXT = {\n";
15640	s << "\tsType = " << value.sType << '\n';
15641	s << "\tpNext = " << value.pNext << '\n';
15642	s << "\tsampler = " << value.sampler << '\n';
15643	s << '}';
15644	return s;
15645}
15646
15647std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCaptureDescriptorDataInfoEXT& value)
15648{
15649	s << "VkAccelerationStructureCaptureDescriptorDataInfoEXT = {\n";
15650	s << "\tsType = " << value.sType << '\n';
15651	s << "\tpNext = " << value.pNext << '\n';
15652	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
15653	s << "\taccelerationStructureNV = " << value.accelerationStructureNV << '\n';
15654	s << '}';
15655	return s;
15656}
15657
15658std::ostream& operator<< (std::ostream& s, const VkOpaqueCaptureDescriptorDataCreateInfoEXT& value)
15659{
15660	s << "VkOpaqueCaptureDescriptorDataCreateInfoEXT = {\n";
15661	s << "\tsType = " << value.sType << '\n';
15662	s << "\tpNext = " << value.pNext << '\n';
15663	s << "\topaqueCaptureDescriptorData = " << value.opaqueCaptureDescriptorData << '\n';
15664	s << '}';
15665	return s;
15666}
15667
15668std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
15669{
15670	s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
15671	s << "\tsType = " << value.sType << '\n';
15672	s << "\tpNext = " << value.pNext << '\n';
15673	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
15674	s << '}';
15675	return s;
15676}
15677
15678std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
15679{
15680	s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
15681	s << "\tsType = " << value.sType << '\n';
15682	s << "\tpNext = " << value.pNext << '\n';
15683	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
15684	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
15685	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
15686	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
15687	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
15688	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
15689	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
15690	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
15691	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
15692	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
15693	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
15694	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
15695	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
15696	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
15697	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
15698	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
15699	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
15700	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
15701	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
15702	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
15703	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
15704	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
15705	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
15706	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
15707	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
15708	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
15709	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
15710	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
15711	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
15712	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
15713	s << '}';
15714	return s;
15715}
15716
15717std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
15718{
15719	s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
15720	s << "\tsType = " << value.sType << '\n';
15721	s << "\tpNext = " << value.pNext << '\n';
15722	s << "\thasPrimary = " << value.hasPrimary << '\n';
15723	s << "\thasRender = " << value.hasRender << '\n';
15724	s << "\tprimaryMajor = " << value.primaryMajor << '\n';
15725	s << "\tprimaryMinor = " << value.primaryMinor << '\n';
15726	s << "\trenderMajor = " << value.renderMajor << '\n';
15727	s << "\trenderMinor = " << value.renderMinor << '\n';
15728	s << '}';
15729	return s;
15730}
15731
15732std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
15733{
15734	s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
15735	s << "\tsType = " << value.sType << '\n';
15736	s << "\tpNext = " << value.pNext << '\n';
15737	s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
15738	s << '}';
15739	return s;
15740}
15741
15742std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
15743{
15744	s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
15745	s << "\tsType = " << value.sType << '\n';
15746	s << "\tpNext = " << value.pNext << '\n';
15747	s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
15748	s << '}';
15749	return s;
15750}
15751
15752std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
15753{
15754	s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
15755	s << "\tsType = " << value.sType << '\n';
15756	s << "\tpNext = " << value.pNext << '\n';
15757	s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
15758	s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
15759	s << '}';
15760	return s;
15761}
15762
15763std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
15764{
15765	s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
15766	s << "\tsType = " << value.sType << '\n';
15767	s << "\tpNext = " << value.pNext << '\n';
15768	s << "\tvertexData = " << value.vertexData << '\n';
15769	s << '}';
15770	return s;
15771}
15772
15773std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
15774{
15775	s << "VkAccelerationStructureMotionInfoNV = {\n";
15776	s << "\tsType = " << value.sType << '\n';
15777	s << "\tpNext = " << value.pNext << '\n';
15778	s << "\tmaxInstances = " << value.maxInstances << '\n';
15779	s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
15780	s << '}';
15781	return s;
15782}
15783
15784std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
15785{
15786	s << "VkSRTDataNV = {\n";
15787	s << "\tsx = " << value.sx << '\n';
15788	s << "\ta = " << value.a << '\n';
15789	s << "\tb = " << value.b << '\n';
15790	s << "\tpvx = " << value.pvx << '\n';
15791	s << "\tsy = " << value.sy << '\n';
15792	s << "\tc = " << value.c << '\n';
15793	s << "\tpvy = " << value.pvy << '\n';
15794	s << "\tsz = " << value.sz << '\n';
15795	s << "\tpvz = " << value.pvz << '\n';
15796	s << "\tqx = " << value.qx << '\n';
15797	s << "\tqy = " << value.qy << '\n';
15798	s << "\tqz = " << value.qz << '\n';
15799	s << "\tqw = " << value.qw << '\n';
15800	s << "\ttx = " << value.tx << '\n';
15801	s << "\tty = " << value.ty << '\n';
15802	s << "\ttz = " << value.tz << '\n';
15803	s << '}';
15804	return s;
15805}
15806
15807std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
15808{
15809	s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
15810	s << "\ttransformT0 = " << value.transformT0 << '\n';
15811	s << "\ttransformT1 = " << value.transformT1 << '\n';
15812	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
15813	s << "\tmask = " << value.mask << '\n';
15814	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
15815	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
15816	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
15817	s << '}';
15818	return s;
15819}
15820
15821std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
15822{
15823	s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
15824	s << "\ttransformT0 = " << value.transformT0 << '\n';
15825	s << "\ttransformT1 = " << value.transformT1 << '\n';
15826	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
15827	s << "\tmask = " << value.mask << '\n';
15828	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
15829	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
15830	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
15831	s << '}';
15832	return s;
15833}
15834
15835std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
15836{
15837	s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
15838	s << "\tstaticInstance = " << value.staticInstance << '\n';
15839	s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
15840	s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
15841	s << '}';
15842	return s;
15843}
15844
15845std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
15846{
15847	s << "VkAccelerationStructureMotionInstanceNV = {\n";
15848	s << "\ttype = " << value.type << '\n';
15849	s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
15850	s << "\tdata = " << value.data << '\n';
15851	s << '}';
15852	return s;
15853}
15854
15855std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
15856{
15857	s << "VkMemoryGetRemoteAddressInfoNV = {\n";
15858	s << "\tsType = " << value.sType << '\n';
15859	s << "\tpNext = " << value.pNext << '\n';
15860	s << "\tmemory = " << value.memory << '\n';
15861	s << "\thandleType = " << value.handleType << '\n';
15862	s << '}';
15863	return s;
15864}
15865
15866std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
15867{
15868	s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
15869	s << "\tsType = " << value.sType << '\n';
15870	s << "\tpNext = " << value.pNext << '\n';
15871	s << "\tcollection = " << value.collection << '\n';
15872	s << "\tindex = " << value.index << '\n';
15873	s << '}';
15874	return s;
15875}
15876
15877std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
15878{
15879	s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
15880	s << "\tsType = " << value.sType << '\n';
15881	s << "\tpNext = " << value.pNext << '\n';
15882	s << "\tcollection = " << value.collection << '\n';
15883	s << "\tindex = " << value.index << '\n';
15884	s << '}';
15885	return s;
15886}
15887
15888std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
15889{
15890	s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
15891	s << "\tsType = " << value.sType << '\n';
15892	s << "\tpNext = " << value.pNext << '\n';
15893	s << "\tcollection = " << value.collection << '\n';
15894	s << "\tindex = " << value.index << '\n';
15895	s << '}';
15896	return s;
15897}
15898
15899std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
15900{
15901	s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
15902	s << "\tsType = " << value.sType << '\n';
15903	s << "\tpNext = " << value.pNext << '\n';
15904	s << "\tcollectionToken = " << value.collectionToken << '\n';
15905	s << '}';
15906	return s;
15907}
15908
15909std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
15910{
15911	s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
15912	s << "\tsType = " << value.sType << '\n';
15913	s << "\tpNext = " << value.pNext << '\n';
15914	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
15915	s << "\tbufferCount = " << value.bufferCount << '\n';
15916	s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
15917	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
15918	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
15919	s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
15920	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
15921	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
15922	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
15923	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
15924	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
15925	s << '}';
15926	return s;
15927}
15928
15929std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
15930{
15931	s << "VkBufferConstraintsInfoFUCHSIA = {\n";
15932	s << "\tsType = " << value.sType << '\n';
15933	s << "\tpNext = " << value.pNext << '\n';
15934	s << "\tcreateInfo = " << value.createInfo << '\n';
15935	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
15936	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
15937	s << '}';
15938	return s;
15939}
15940
15941std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
15942{
15943	s << "VkSysmemColorSpaceFUCHSIA = {\n";
15944	s << "\tsType = " << value.sType << '\n';
15945	s << "\tpNext = " << value.pNext << '\n';
15946	s << "\tcolorSpace = " << value.colorSpace << '\n';
15947	s << '}';
15948	return s;
15949}
15950
15951std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
15952{
15953	s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
15954	s << "\tsType = " << value.sType << '\n';
15955	s << "\tpNext = " << value.pNext << '\n';
15956	s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
15957	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
15958	s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
15959	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
15960	s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
15961	s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
15962	s << '}';
15963	return s;
15964}
15965
15966std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
15967{
15968	s << "VkImageConstraintsInfoFUCHSIA = {\n";
15969	s << "\tsType = " << value.sType << '\n';
15970	s << "\tpNext = " << value.pNext << '\n';
15971	s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
15972	s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
15973	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
15974	s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
15975	s << '}';
15976	return s;
15977}
15978
15979std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
15980{
15981	s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
15982	s << "\tsType = " << value.sType << '\n';
15983	s << "\tpNext = " << value.pNext << '\n';
15984	s << "\tminBufferCount = " << value.minBufferCount << '\n';
15985	s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
15986	s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
15987	s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
15988	s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
15989	s << '}';
15990	return s;
15991}
15992
15993std::ostream& operator<< (std::ostream& s, const VkCudaModuleCreateInfoNV& value)
15994{
15995	s << "VkCudaModuleCreateInfoNV = {\n";
15996	s << "\tsType = " << value.sType << '\n';
15997	s << "\tpNext = " << value.pNext << '\n';
15998	s << "\tdataSize = " << value.dataSize << '\n';
15999	s << "\tpData = " << value.pData << '\n';
16000	s << '}';
16001	return s;
16002}
16003
16004std::ostream& operator<< (std::ostream& s, const VkCudaFunctionCreateInfoNV& value)
16005{
16006	s << "VkCudaFunctionCreateInfoNV = {\n";
16007	s << "\tsType = " << value.sType << '\n';
16008	s << "\tpNext = " << value.pNext << '\n';
16009	s << "\tmodule = " << value.module << '\n';
16010	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
16011	s << '}';
16012	return s;
16013}
16014
16015std::ostream& operator<< (std::ostream& s, const VkCudaLaunchInfoNV& value)
16016{
16017	s << "VkCudaLaunchInfoNV = {\n";
16018	s << "\tsType = " << value.sType << '\n';
16019	s << "\tpNext = " << value.pNext << '\n';
16020	s << "\tfunction = " << value.function << '\n';
16021	s << "\tgridDimX = " << value.gridDimX << '\n';
16022	s << "\tgridDimY = " << value.gridDimY << '\n';
16023	s << "\tgridDimZ = " << value.gridDimZ << '\n';
16024	s << "\tblockDimX = " << value.blockDimX << '\n';
16025	s << "\tblockDimY = " << value.blockDimY << '\n';
16026	s << "\tblockDimZ = " << value.blockDimZ << '\n';
16027	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
16028	s << "\tparamCount = " << value.paramCount << '\n';
16029	s << "\tpParams = " << value.pParams << '\n';
16030	s << "\textraCount = " << value.extraCount << '\n';
16031	s << "\tpExtras = " << value.pExtras << '\n';
16032	s << '}';
16033	return s;
16034}
16035
16036std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
16037{
16038	s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
16039	s << "\tsType = " << value.sType << '\n';
16040	s << "\tpNext = " << value.pNext << '\n';
16041	s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
16042	s << '}';
16043	return s;
16044}
16045
16046std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
16047{
16048	s << "VkFormatProperties3 = {\n";
16049	s << "\tsType = " << value.sType << '\n';
16050	s << "\tpNext = " << value.pNext << '\n';
16051	s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
16052	s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
16053	s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
16054	s << '}';
16055	return s;
16056}
16057
16058std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
16059{
16060	s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
16061	s << "\tsType = " << value.sType << '\n';
16062	s << "\tpNext = " << value.pNext << '\n';
16063	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
16064	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
16065	s << '}';
16066	return s;
16067}
16068
16069std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
16070{
16071	s << "VkDrmFormatModifierProperties2EXT = {\n";
16072	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
16073	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
16074	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
16075	s << '}';
16076	return s;
16077}
16078
16079std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
16080{
16081	s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
16082	s << "\tsType = " << value.sType << '\n';
16083	s << "\tpNext = " << value.pNext << '\n';
16084	s << "\tformat = " << value.format << '\n';
16085	s << "\texternalFormat = " << value.externalFormat << '\n';
16086	s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
16087	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
16088	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
16089	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
16090	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
16091	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
16092	s << '}';
16093	return s;
16094}
16095
16096std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
16097{
16098	s << "VkPipelineRenderingCreateInfo = {\n";
16099	s << "\tsType = " << value.sType << '\n';
16100	s << "\tpNext = " << value.pNext << '\n';
16101	s << "\tviewMask = " << value.viewMask << '\n';
16102	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
16103	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
16104	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
16105	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
16106	s << '}';
16107	return s;
16108}
16109
16110std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
16111{
16112	s << "VkRenderingInfo = {\n";
16113	s << "\tsType = " << value.sType << '\n';
16114	s << "\tpNext = " << value.pNext << '\n';
16115	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
16116	s << "\trenderArea = " << value.renderArea << '\n';
16117	s << "\tlayerCount = " << value.layerCount << '\n';
16118	s << "\tviewMask = " << value.viewMask << '\n';
16119	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
16120	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
16121	s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
16122	s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
16123	s << '}';
16124	return s;
16125}
16126
16127std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
16128{
16129	s << "VkRenderingAttachmentInfo = {\n";
16130	s << "\tsType = " << value.sType << '\n';
16131	s << "\tpNext = " << value.pNext << '\n';
16132	s << "\timageView = " << value.imageView << '\n';
16133	s << "\timageLayout = " << value.imageLayout << '\n';
16134	s << "\tresolveMode = " << value.resolveMode << '\n';
16135	s << "\tresolveImageView = " << value.resolveImageView << '\n';
16136	s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
16137	s << "\tloadOp = " << value.loadOp << '\n';
16138	s << "\tstoreOp = " << value.storeOp << '\n';
16139	s << "\tclearValue = " << value.clearValue << '\n';
16140	s << '}';
16141	return s;
16142}
16143
16144std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
16145{
16146	s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
16147	s << "\tsType = " << value.sType << '\n';
16148	s << "\tpNext = " << value.pNext << '\n';
16149	s << "\timageView = " << value.imageView << '\n';
16150	s << "\timageLayout = " << value.imageLayout << '\n';
16151	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
16152	s << '}';
16153	return s;
16154}
16155
16156std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
16157{
16158	s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
16159	s << "\tsType = " << value.sType << '\n';
16160	s << "\tpNext = " << value.pNext << '\n';
16161	s << "\timageView = " << value.imageView << '\n';
16162	s << "\timageLayout = " << value.imageLayout << '\n';
16163	s << '}';
16164	return s;
16165}
16166
16167std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
16168{
16169	s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
16170	s << "\tsType = " << value.sType << '\n';
16171	s << "\tpNext = " << value.pNext << '\n';
16172	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
16173	s << '}';
16174	return s;
16175}
16176
16177std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
16178{
16179	s << "VkCommandBufferInheritanceRenderingInfo = {\n";
16180	s << "\tsType = " << value.sType << '\n';
16181	s << "\tpNext = " << value.pNext << '\n';
16182	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
16183	s << "\tviewMask = " << value.viewMask << '\n';
16184	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
16185	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
16186	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
16187	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
16188	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
16189	s << '}';
16190	return s;
16191}
16192
16193std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
16194{
16195	s << "VkAttachmentSampleCountInfoAMD = {\n";
16196	s << "\tsType = " << value.sType << '\n';
16197	s << "\tpNext = " << value.pNext << '\n';
16198	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
16199	s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
16200	s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
16201	s << '}';
16202	return s;
16203}
16204
16205std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
16206{
16207	s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
16208	s << "\tsType = " << value.sType << '\n';
16209	s << "\tpNext = " << value.pNext << '\n';
16210	s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
16211	s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
16212	s << '}';
16213	return s;
16214}
16215
16216std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
16217{
16218	s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
16219	s << "\tsType = " << value.sType << '\n';
16220	s << "\tpNext = " << value.pNext << '\n';
16221	s << "\tminLod = " << value.minLod << '\n';
16222	s << '}';
16223	return s;
16224}
16225
16226std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
16227{
16228	s << "VkImageViewMinLodCreateInfoEXT = {\n";
16229	s << "\tsType = " << value.sType << '\n';
16230	s << "\tpNext = " << value.pNext << '\n';
16231	s << "\tminLod = " << value.minLod << '\n';
16232	s << '}';
16233	return s;
16234}
16235
16236std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT& value)
16237{
16238	s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = {\n";
16239	s << "\tsType = " << value.sType << '\n';
16240	s << "\tpNext = " << value.pNext << '\n';
16241	s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
16242	s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
16243	s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
16244	s << '}';
16245	return s;
16246}
16247
16248std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
16249{
16250	s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
16251	s << "\tsType = " << value.sType << '\n';
16252	s << "\tpNext = " << value.pNext << '\n';
16253	s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
16254	s << '}';
16255	return s;
16256}
16257
16258std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
16259{
16260	s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
16261	s << "\tsType = " << value.sType << '\n';
16262	s << "\tpNext = " << value.pNext << '\n';
16263	s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
16264	s << '}';
16265	return s;
16266}
16267
16268std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
16269{
16270	s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
16271	s << "\tsType = " << value.sType << '\n';
16272	s << "\tpNext = " << value.pNext << '\n';
16273	s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
16274	s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
16275	s << '}';
16276	return s;
16277}
16278
16279std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
16280{
16281	s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
16282	s << "\tsType = " << value.sType << '\n';
16283	s << "\tpNext = " << value.pNext << '\n';
16284	s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
16285	s << '}';
16286	return s;
16287}
16288
16289std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
16290{
16291	s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
16292	s << "\tsType = " << value.sType << '\n';
16293	s << "\tpNext = " << value.pNext << '\n';
16294	s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
16295	s << '}';
16296	return s;
16297}
16298
16299std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
16300{
16301	s << "VkDescriptorSetBindingReferenceVALVE = {\n";
16302	s << "\tsType = " << value.sType << '\n';
16303	s << "\tpNext = " << value.pNext << '\n';
16304	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
16305	s << "\tbinding = " << value.binding << '\n';
16306	s << '}';
16307	return s;
16308}
16309
16310std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
16311{
16312	s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
16313	s << "\tsType = " << value.sType << '\n';
16314	s << "\tpNext = " << value.pNext << '\n';
16315	s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
16316	s << "\tdescriptorSize = " << value.descriptorSize << '\n';
16317	s << '}';
16318	return s;
16319}
16320
16321std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNestedCommandBufferFeaturesEXT& value)
16322{
16323	s << "VkPhysicalDeviceNestedCommandBufferFeaturesEXT = {\n";
16324	s << "\tsType = " << value.sType << '\n';
16325	s << "\tpNext = " << value.pNext << '\n';
16326	s << "\tnestedCommandBuffer = " << value.nestedCommandBuffer << '\n';
16327	s << "\tnestedCommandBufferRendering = " << value.nestedCommandBufferRendering << '\n';
16328	s << "\tnestedCommandBufferSimultaneousUse = " << value.nestedCommandBufferSimultaneousUse << '\n';
16329	s << '}';
16330	return s;
16331}
16332
16333std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNestedCommandBufferPropertiesEXT& value)
16334{
16335	s << "VkPhysicalDeviceNestedCommandBufferPropertiesEXT = {\n";
16336	s << "\tsType = " << value.sType << '\n';
16337	s << "\tpNext = " << value.pNext << '\n';
16338	s << "\tmaxCommandBufferNestingLevel = " << value.maxCommandBufferNestingLevel << '\n';
16339	s << '}';
16340	return s;
16341}
16342
16343std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
16344{
16345	s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
16346	s << "\tsType = " << value.sType << '\n';
16347	s << "\tpNext = " << value.pNext << '\n';
16348	s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
16349	s << '}';
16350	return s;
16351}
16352
16353std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
16354{
16355	s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
16356	s << "\tsType = " << value.sType << '\n';
16357	s << "\tpNext = " << value.pNext << '\n';
16358	s << "\tshaderModuleIdentifierAlgorithmUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderModuleIdentifierAlgorithmUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderModuleIdentifierAlgorithmUUID))) << '\n';
16359	s << '}';
16360	return s;
16361}
16362
16363std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
16364{
16365	s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
16366	s << "\tsType = " << value.sType << '\n';
16367	s << "\tpNext = " << value.pNext << '\n';
16368	s << "\tidentifierSize = " << value.identifierSize << '\n';
16369	s << "\tpIdentifier = " << value.pIdentifier << '\n';
16370	s << '}';
16371	return s;
16372}
16373
16374std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
16375{
16376	s << "VkShaderModuleIdentifierEXT = {\n";
16377	s << "\tsType = " << value.sType << '\n';
16378	s << "\tpNext = " << value.pNext << '\n';
16379	s << "\tidentifierSize = " << value.identifierSize << '\n';
16380	s << "\tidentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.identifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.identifier))) << '\n';
16381	s << '}';
16382	return s;
16383}
16384
16385std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
16386{
16387	s << "VkImageCompressionControlEXT = {\n";
16388	s << "\tsType = " << value.sType << '\n';
16389	s << "\tpNext = " << value.pNext << '\n';
16390	s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
16391	s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
16392	s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
16393	s << '}';
16394	return s;
16395}
16396
16397std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
16398{
16399	s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
16400	s << "\tsType = " << value.sType << '\n';
16401	s << "\tpNext = " << value.pNext << '\n';
16402	s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
16403	s << '}';
16404	return s;
16405}
16406
16407std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
16408{
16409	s << "VkImageCompressionPropertiesEXT = {\n";
16410	s << "\tsType = " << value.sType << '\n';
16411	s << "\tpNext = " << value.pNext << '\n';
16412	s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
16413	s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
16414	s << '}';
16415	return s;
16416}
16417
16418std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
16419{
16420	s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
16421	s << "\tsType = " << value.sType << '\n';
16422	s << "\tpNext = " << value.pNext << '\n';
16423	s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
16424	s << '}';
16425	return s;
16426}
16427
16428std::ostream& operator<< (std::ostream& s, const VkImageSubresource2KHR& value)
16429{
16430	s << "VkImageSubresource2KHR = {\n";
16431	s << "\tsType = " << value.sType << '\n';
16432	s << "\tpNext = " << value.pNext << '\n';
16433	s << "\timageSubresource = " << value.imageSubresource << '\n';
16434	s << '}';
16435	return s;
16436}
16437
16438std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2KHR& value)
16439{
16440	s << "VkSubresourceLayout2KHR = {\n";
16441	s << "\tsType = " << value.sType << '\n';
16442	s << "\tpNext = " << value.pNext << '\n';
16443	s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
16444	s << '}';
16445	return s;
16446}
16447
16448std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
16449{
16450	s << "VkRenderPassCreationControlEXT = {\n";
16451	s << "\tsType = " << value.sType << '\n';
16452	s << "\tpNext = " << value.pNext << '\n';
16453	s << "\tdisallowMerging = " << value.disallowMerging << '\n';
16454	s << '}';
16455	return s;
16456}
16457
16458std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
16459{
16460	s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
16461	s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
16462	s << '}';
16463	return s;
16464}
16465
16466std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
16467{
16468	s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
16469	s << "\tsType = " << value.sType << '\n';
16470	s << "\tpNext = " << value.pNext << '\n';
16471	s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
16472	s << '}';
16473	return s;
16474}
16475
16476std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
16477{
16478	s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
16479	s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
16480	s << "\tdescription = " << (const char*)value.description << '\n';
16481	s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
16482	s << '}';
16483	return s;
16484}
16485
16486std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
16487{
16488	s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
16489	s << "\tsType = " << value.sType << '\n';
16490	s << "\tpNext = " << value.pNext << '\n';
16491	s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
16492	s << '}';
16493	return s;
16494}
16495
16496std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
16497{
16498	s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
16499	s << "\tsType = " << value.sType << '\n';
16500	s << "\tpNext = " << value.pNext << '\n';
16501	s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
16502	s << '}';
16503	return s;
16504}
16505
16506std::ostream& operator<< (std::ostream& s, const VkMicromapBuildInfoEXT& value)
16507{
16508	s << "VkMicromapBuildInfoEXT = {\n";
16509	s << "\tsType = " << value.sType << '\n';
16510	s << "\tpNext = " << value.pNext << '\n';
16511	s << "\ttype = " << value.type << '\n';
16512	s << "\tflags = " << getBuildMicromapFlagsEXTStr(value.flags) << '\n';
16513	s << "\tmode = " << value.mode << '\n';
16514	s << "\tdstMicromap = " << value.dstMicromap << '\n';
16515	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
16516	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
16517	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
16518	s << "\tdata = " << value.data << '\n';
16519	s << "\tscratchData = " << value.scratchData << '\n';
16520	s << "\ttriangleArray = " << value.triangleArray << '\n';
16521	s << "\ttriangleArrayStride = " << value.triangleArrayStride << '\n';
16522	s << '}';
16523	return s;
16524}
16525
16526std::ostream& operator<< (std::ostream& s, const VkMicromapCreateInfoEXT& value)
16527{
16528	s << "VkMicromapCreateInfoEXT = {\n";
16529	s << "\tsType = " << value.sType << '\n';
16530	s << "\tpNext = " << value.pNext << '\n';
16531	s << "\tcreateFlags = " << getMicromapCreateFlagsEXTStr(value.createFlags) << '\n';
16532	s << "\tbuffer = " << value.buffer << '\n';
16533	s << "\toffset = " << value.offset << '\n';
16534	s << "\tsize = " << value.size << '\n';
16535	s << "\ttype = " << value.type << '\n';
16536	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
16537	s << '}';
16538	return s;
16539}
16540
16541std::ostream& operator<< (std::ostream& s, const VkMicromapVersionInfoEXT& value)
16542{
16543	s << "VkMicromapVersionInfoEXT = {\n";
16544	s << "\tsType = " << value.sType << '\n';
16545	s << "\tpNext = " << value.pNext << '\n';
16546	s << "\tpVersionData = " << value.pVersionData << '\n';
16547	s << '}';
16548	return s;
16549}
16550
16551std::ostream& operator<< (std::ostream& s, const VkCopyMicromapInfoEXT& value)
16552{
16553	s << "VkCopyMicromapInfoEXT = {\n";
16554	s << "\tsType = " << value.sType << '\n';
16555	s << "\tpNext = " << value.pNext << '\n';
16556	s << "\tsrc = " << value.src << '\n';
16557	s << "\tdst = " << value.dst << '\n';
16558	s << "\tmode = " << value.mode << '\n';
16559	s << '}';
16560	return s;
16561}
16562
16563std::ostream& operator<< (std::ostream& s, const VkCopyMicromapToMemoryInfoEXT& value)
16564{
16565	s << "VkCopyMicromapToMemoryInfoEXT = {\n";
16566	s << "\tsType = " << value.sType << '\n';
16567	s << "\tpNext = " << value.pNext << '\n';
16568	s << "\tsrc = " << value.src << '\n';
16569	s << "\tdst = " << value.dst << '\n';
16570	s << "\tmode = " << value.mode << '\n';
16571	s << '}';
16572	return s;
16573}
16574
16575std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToMicromapInfoEXT& value)
16576{
16577	s << "VkCopyMemoryToMicromapInfoEXT = {\n";
16578	s << "\tsType = " << value.sType << '\n';
16579	s << "\tpNext = " << value.pNext << '\n';
16580	s << "\tsrc = " << value.src << '\n';
16581	s << "\tdst = " << value.dst << '\n';
16582	s << "\tmode = " << value.mode << '\n';
16583	s << '}';
16584	return s;
16585}
16586
16587std::ostream& operator<< (std::ostream& s, const VkMicromapBuildSizesInfoEXT& value)
16588{
16589	s << "VkMicromapBuildSizesInfoEXT = {\n";
16590	s << "\tsType = " << value.sType << '\n';
16591	s << "\tpNext = " << value.pNext << '\n';
16592	s << "\tmicromapSize = " << value.micromapSize << '\n';
16593	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
16594	s << "\tdiscardable = " << value.discardable << '\n';
16595	s << '}';
16596	return s;
16597}
16598
16599std::ostream& operator<< (std::ostream& s, const VkMicromapUsageEXT& value)
16600{
16601	s << "VkMicromapUsageEXT = {\n";
16602	s << "\tcount = " << value.count << '\n';
16603	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
16604	s << "\tformat = " << value.format << '\n';
16605	s << '}';
16606	return s;
16607}
16608
16609std::ostream& operator<< (std::ostream& s, const VkMicromapTriangleEXT& value)
16610{
16611	s << "VkMicromapTriangleEXT = {\n";
16612	s << "\tdataOffset = " << value.dataOffset << '\n';
16613	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
16614	s << "\tformat = " << value.format << '\n';
16615	s << '}';
16616	return s;
16617}
16618
16619std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapFeaturesEXT& value)
16620{
16621	s << "VkPhysicalDeviceOpacityMicromapFeaturesEXT = {\n";
16622	s << "\tsType = " << value.sType << '\n';
16623	s << "\tpNext = " << value.pNext << '\n';
16624	s << "\tmicromap = " << value.micromap << '\n';
16625	s << "\tmicromapCaptureReplay = " << value.micromapCaptureReplay << '\n';
16626	s << "\tmicromapHostCommands = " << value.micromapHostCommands << '\n';
16627	s << '}';
16628	return s;
16629}
16630
16631std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapPropertiesEXT& value)
16632{
16633	s << "VkPhysicalDeviceOpacityMicromapPropertiesEXT = {\n";
16634	s << "\tsType = " << value.sType << '\n';
16635	s << "\tpNext = " << value.pNext << '\n';
16636	s << "\tmaxOpacity2StateSubdivisionLevel = " << value.maxOpacity2StateSubdivisionLevel << '\n';
16637	s << "\tmaxOpacity4StateSubdivisionLevel = " << value.maxOpacity4StateSubdivisionLevel << '\n';
16638	s << '}';
16639	return s;
16640}
16641
16642std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesOpacityMicromapEXT& value)
16643{
16644	s << "VkAccelerationStructureTrianglesOpacityMicromapEXT = {\n";
16645	s << "\tsType = " << value.sType << '\n';
16646	s << "\tpNext = " << value.pNext << '\n';
16647	s << "\tindexType = " << value.indexType << '\n';
16648	s << "\tindexBuffer = " << value.indexBuffer << '\n';
16649	s << "\tindexStride = " << value.indexStride << '\n';
16650	s << "\tbaseTriangle = " << value.baseTriangle << '\n';
16651	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
16652	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
16653	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
16654	s << "\tmicromap = " << value.micromap << '\n';
16655	s << '}';
16656	return s;
16657}
16658
16659std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDisplacementMicromapFeaturesNV& value)
16660{
16661	s << "VkPhysicalDeviceDisplacementMicromapFeaturesNV = {\n";
16662	s << "\tsType = " << value.sType << '\n';
16663	s << "\tpNext = " << value.pNext << '\n';
16664	s << "\tdisplacementMicromap = " << value.displacementMicromap << '\n';
16665	s << '}';
16666	return s;
16667}
16668
16669std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDisplacementMicromapPropertiesNV& value)
16670{
16671	s << "VkPhysicalDeviceDisplacementMicromapPropertiesNV = {\n";
16672	s << "\tsType = " << value.sType << '\n';
16673	s << "\tpNext = " << value.pNext << '\n';
16674	s << "\tmaxDisplacementMicromapSubdivisionLevel = " << value.maxDisplacementMicromapSubdivisionLevel << '\n';
16675	s << '}';
16676	return s;
16677}
16678
16679std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesDisplacementMicromapNV& value)
16680{
16681	s << "VkAccelerationStructureTrianglesDisplacementMicromapNV = {\n";
16682	s << "\tsType = " << value.sType << '\n';
16683	s << "\tpNext = " << value.pNext << '\n';
16684	s << "\tdisplacementBiasAndScaleFormat = " << value.displacementBiasAndScaleFormat << '\n';
16685	s << "\tdisplacementVectorFormat = " << value.displacementVectorFormat << '\n';
16686	s << "\tdisplacementBiasAndScaleBuffer = " << value.displacementBiasAndScaleBuffer << '\n';
16687	s << "\tdisplacementBiasAndScaleStride = " << value.displacementBiasAndScaleStride << '\n';
16688	s << "\tdisplacementVectorBuffer = " << value.displacementVectorBuffer << '\n';
16689	s << "\tdisplacementVectorStride = " << value.displacementVectorStride << '\n';
16690	s << "\tdisplacedMicromapPrimitiveFlags = " << value.displacedMicromapPrimitiveFlags << '\n';
16691	s << "\tdisplacedMicromapPrimitiveFlagsStride = " << value.displacedMicromapPrimitiveFlagsStride << '\n';
16692	s << "\tindexType = " << value.indexType << '\n';
16693	s << "\tindexBuffer = " << value.indexBuffer << '\n';
16694	s << "\tindexStride = " << value.indexStride << '\n';
16695	s << "\tbaseTriangle = " << value.baseTriangle << '\n';
16696	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
16697	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
16698	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
16699	s << "\tmicromap = " << value.micromap << '\n';
16700	s << '}';
16701	return s;
16702}
16703
16704std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
16705{
16706	s << "VkPipelinePropertiesIdentifierEXT = {\n";
16707	s << "\tsType = " << value.sType << '\n';
16708	s << "\tpNext = " << value.pNext << '\n';
16709	s << "\tpipelineIdentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineIdentifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineIdentifier))) << '\n';
16710	s << '}';
16711	return s;
16712}
16713
16714std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
16715{
16716	s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
16717	s << "\tsType = " << value.sType << '\n';
16718	s << "\tpNext = " << value.pNext << '\n';
16719	s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
16720	s << '}';
16721	return s;
16722}
16723
16724std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
16725{
16726	s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
16727	s << "\tsType = " << value.sType << '\n';
16728	s << "\tpNext = " << value.pNext << '\n';
16729	s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
16730	s << '}';
16731	return s;
16732}
16733
16734std::ostream& operator<< (std::ostream& s, const VkExternalMemoryAcquireUnmodifiedEXT& value)
16735{
16736	s << "VkExternalMemoryAcquireUnmodifiedEXT = {\n";
16737	s << "\tsType = " << value.sType << '\n';
16738	s << "\tpNext = " << value.pNext << '\n';
16739	s << "\tacquireUnmodifiedMemory = " << value.acquireUnmodifiedMemory << '\n';
16740	s << '}';
16741	return s;
16742}
16743
16744std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
16745{
16746	s << "VkExportMetalObjectCreateInfoEXT = {\n";
16747	s << "\tsType = " << value.sType << '\n';
16748	s << "\tpNext = " << value.pNext << '\n';
16749	s << "\texportObjectType = " << value.exportObjectType << '\n';
16750	s << '}';
16751	return s;
16752}
16753
16754std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
16755{
16756	s << "VkExportMetalObjectsInfoEXT = {\n";
16757	s << "\tsType = " << value.sType << '\n';
16758	s << "\tpNext = " << value.pNext << '\n';
16759	s << '}';
16760	return s;
16761}
16762
16763std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
16764{
16765	s << "VkExportMetalDeviceInfoEXT = {\n";
16766	s << "\tsType = " << value.sType << '\n';
16767	s << "\tpNext = " << value.pNext << '\n';
16768	s << "\tmtlDevice = " << value.mtlDevice << '\n';
16769	s << '}';
16770	return s;
16771}
16772
16773std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
16774{
16775	s << "VkExportMetalCommandQueueInfoEXT = {\n";
16776	s << "\tsType = " << value.sType << '\n';
16777	s << "\tpNext = " << value.pNext << '\n';
16778	s << "\tqueue = " << value.queue << '\n';
16779	s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
16780	s << '}';
16781	return s;
16782}
16783
16784std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
16785{
16786	s << "VkExportMetalBufferInfoEXT = {\n";
16787	s << "\tsType = " << value.sType << '\n';
16788	s << "\tpNext = " << value.pNext << '\n';
16789	s << "\tmemory = " << value.memory << '\n';
16790	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
16791	s << '}';
16792	return s;
16793}
16794
16795std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
16796{
16797	s << "VkImportMetalBufferInfoEXT = {\n";
16798	s << "\tsType = " << value.sType << '\n';
16799	s << "\tpNext = " << value.pNext << '\n';
16800	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
16801	s << '}';
16802	return s;
16803}
16804
16805std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
16806{
16807	s << "VkExportMetalTextureInfoEXT = {\n";
16808	s << "\tsType = " << value.sType << '\n';
16809	s << "\tpNext = " << value.pNext << '\n';
16810	s << "\timage = " << value.image << '\n';
16811	s << "\timageView = " << value.imageView << '\n';
16812	s << "\tbufferView = " << value.bufferView << '\n';
16813	s << "\tplane = " << value.plane << '\n';
16814	s << "\tmtlTexture = " << value.mtlTexture << '\n';
16815	s << '}';
16816	return s;
16817}
16818
16819std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
16820{
16821	s << "VkImportMetalTextureInfoEXT = {\n";
16822	s << "\tsType = " << value.sType << '\n';
16823	s << "\tpNext = " << value.pNext << '\n';
16824	s << "\tplane = " << value.plane << '\n';
16825	s << "\tmtlTexture = " << value.mtlTexture << '\n';
16826	s << '}';
16827	return s;
16828}
16829
16830std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
16831{
16832	s << "VkExportMetalIOSurfaceInfoEXT = {\n";
16833	s << "\tsType = " << value.sType << '\n';
16834	s << "\tpNext = " << value.pNext << '\n';
16835	s << "\timage = " << value.image << '\n';
16836	s << "\tioSurface = " << value.ioSurface << '\n';
16837	s << '}';
16838	return s;
16839}
16840
16841std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
16842{
16843	s << "VkImportMetalIOSurfaceInfoEXT = {\n";
16844	s << "\tsType = " << value.sType << '\n';
16845	s << "\tpNext = " << value.pNext << '\n';
16846	s << "\tioSurface = " << value.ioSurface << '\n';
16847	s << '}';
16848	return s;
16849}
16850
16851std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
16852{
16853	s << "VkExportMetalSharedEventInfoEXT = {\n";
16854	s << "\tsType = " << value.sType << '\n';
16855	s << "\tpNext = " << value.pNext << '\n';
16856	s << "\tsemaphore = " << value.semaphore << '\n';
16857	s << "\tevent = " << value.event << '\n';
16858	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
16859	s << '}';
16860	return s;
16861}
16862
16863std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
16864{
16865	s << "VkImportMetalSharedEventInfoEXT = {\n";
16866	s << "\tsType = " << value.sType << '\n';
16867	s << "\tpNext = " << value.pNext << '\n';
16868	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
16869	s << '}';
16870	return s;
16871}
16872
16873std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
16874{
16875	s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
16876	s << "\tsType = " << value.sType << '\n';
16877	s << "\tpNext = " << value.pNext << '\n';
16878	s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
16879	s << '}';
16880	return s;
16881}
16882
16883std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
16884{
16885	s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
16886	s << "\tsType = " << value.sType << '\n';
16887	s << "\tpNext = " << value.pNext << '\n';
16888	s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
16889	s << '}';
16890	return s;
16891}
16892
16893std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
16894{
16895	s << "VkPipelineRobustnessCreateInfoEXT = {\n";
16896	s << "\tsType = " << value.sType << '\n';
16897	s << "\tpNext = " << value.pNext << '\n';
16898	s << "\tstorageBuffers = " << value.storageBuffers << '\n';
16899	s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
16900	s << "\tvertexInputs = " << value.vertexInputs << '\n';
16901	s << "\timages = " << value.images << '\n';
16902	s << '}';
16903	return s;
16904}
16905
16906std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
16907{
16908	s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
16909	s << "\tsType = " << value.sType << '\n';
16910	s << "\tpNext = " << value.pNext << '\n';
16911	s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
16912	s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
16913	s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
16914	s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
16915	s << '}';
16916	return s;
16917}
16918
16919std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
16920{
16921	s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
16922	s << "\tsType = " << value.sType << '\n';
16923	s << "\tpNext = " << value.pNext << '\n';
16924	s << "\tfilterCenter = " << value.filterCenter << '\n';
16925	s << "\tfilterSize = " << value.filterSize << '\n';
16926	s << "\tnumPhases = " << value.numPhases << '\n';
16927	s << '}';
16928	return s;
16929}
16930
16931std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
16932{
16933	s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
16934	s << "\tsType = " << value.sType << '\n';
16935	s << "\tpNext = " << value.pNext << '\n';
16936	s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
16937	s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
16938	s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
16939	s << '}';
16940	return s;
16941}
16942
16943std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
16944{
16945	s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
16946	s << "\tsType = " << value.sType << '\n';
16947	s << "\tpNext = " << value.pNext << '\n';
16948	s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
16949	s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
16950	s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
16951	s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
16952	s << '}';
16953	return s;
16954}
16955
16956std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
16957{
16958	s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
16959	s << "\tsType = " << value.sType << '\n';
16960	s << "\tpNext = " << value.pNext << '\n';
16961	s << "\ttileProperties = " << value.tileProperties << '\n';
16962	s << '}';
16963	return s;
16964}
16965
16966std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
16967{
16968	s << "VkTilePropertiesQCOM = {\n";
16969	s << "\tsType = " << value.sType << '\n';
16970	s << "\tpNext = " << value.pNext << '\n';
16971	s << "\ttileSize = " << value.tileSize << '\n';
16972	s << "\tapronSize = " << value.apronSize << '\n';
16973	s << "\torigin = " << value.origin << '\n';
16974	s << '}';
16975	return s;
16976}
16977
16978std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAmigoProfilingFeaturesSEC& value)
16979{
16980	s << "VkPhysicalDeviceAmigoProfilingFeaturesSEC = {\n";
16981	s << "\tsType = " << value.sType << '\n';
16982	s << "\tpNext = " << value.pNext << '\n';
16983	s << "\tamigoProfiling = " << value.amigoProfiling << '\n';
16984	s << '}';
16985	return s;
16986}
16987
16988std::ostream& operator<< (std::ostream& s, const VkAmigoProfilingSubmitInfoSEC& value)
16989{
16990	s << "VkAmigoProfilingSubmitInfoSEC = {\n";
16991	s << "\tsType = " << value.sType << '\n';
16992	s << "\tpNext = " << value.pNext << '\n';
16993	s << "\tfirstDrawTimestamp = " << value.firstDrawTimestamp << '\n';
16994	s << "\tswapBufferTimestamp = " << value.swapBufferTimestamp << '\n';
16995	s << '}';
16996	return s;
16997}
16998
16999std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT& value)
17000{
17001	s << "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = {\n";
17002	s << "\tsType = " << value.sType << '\n';
17003	s << "\tpNext = " << value.pNext << '\n';
17004	s << "\tattachmentFeedbackLoopLayout = " << value.attachmentFeedbackLoopLayout << '\n';
17005	s << '}';
17006	return s;
17007}
17008
17009std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT& value)
17010{
17011	s << "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = {\n";
17012	s << "\tsType = " << value.sType << '\n';
17013	s << "\tpNext = " << value.pNext << '\n';
17014	s << "\tdepthClampZeroOne = " << value.depthClampZeroOne << '\n';
17015	s << '}';
17016	return s;
17017}
17018
17019std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAddressBindingReportFeaturesEXT& value)
17020{
17021	s << "VkPhysicalDeviceAddressBindingReportFeaturesEXT = {\n";
17022	s << "\tsType = " << value.sType << '\n';
17023	s << "\tpNext = " << value.pNext << '\n';
17024	s << "\treportAddressBinding = " << value.reportAddressBinding << '\n';
17025	s << '}';
17026	return s;
17027}
17028
17029std::ostream& operator<< (std::ostream& s, const VkDeviceAddressBindingCallbackDataEXT& value)
17030{
17031	s << "VkDeviceAddressBindingCallbackDataEXT = {\n";
17032	s << "\tsType = " << value.sType << '\n';
17033	s << "\tpNext = " << value.pNext << '\n';
17034	s << "\tflags = " << getDeviceAddressBindingFlagsEXTStr(value.flags) << '\n';
17035	s << "\tbaseAddress = " << value.baseAddress << '\n';
17036	s << "\tsize = " << value.size << '\n';
17037	s << "\tbindingType = " << value.bindingType << '\n';
17038	s << '}';
17039	return s;
17040}
17041
17042std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowFeaturesNV& value)
17043{
17044	s << "VkPhysicalDeviceOpticalFlowFeaturesNV = {\n";
17045	s << "\tsType = " << value.sType << '\n';
17046	s << "\tpNext = " << value.pNext << '\n';
17047	s << "\topticalFlow = " << value.opticalFlow << '\n';
17048	s << '}';
17049	return s;
17050}
17051
17052std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowPropertiesNV& value)
17053{
17054	s << "VkPhysicalDeviceOpticalFlowPropertiesNV = {\n";
17055	s << "\tsType = " << value.sType << '\n';
17056	s << "\tpNext = " << value.pNext << '\n';
17057	s << "\tsupportedOutputGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedOutputGridSizes) << '\n';
17058	s << "\tsupportedHintGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedHintGridSizes) << '\n';
17059	s << "\thintSupported = " << value.hintSupported << '\n';
17060	s << "\tcostSupported = " << value.costSupported << '\n';
17061	s << "\tbidirectionalFlowSupported = " << value.bidirectionalFlowSupported << '\n';
17062	s << "\tglobalFlowSupported = " << value.globalFlowSupported << '\n';
17063	s << "\tminWidth = " << value.minWidth << '\n';
17064	s << "\tminHeight = " << value.minHeight << '\n';
17065	s << "\tmaxWidth = " << value.maxWidth << '\n';
17066	s << "\tmaxHeight = " << value.maxHeight << '\n';
17067	s << "\tmaxNumRegionsOfInterest = " << value.maxNumRegionsOfInterest << '\n';
17068	s << '}';
17069	return s;
17070}
17071
17072std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatInfoNV& value)
17073{
17074	s << "VkOpticalFlowImageFormatInfoNV = {\n";
17075	s << "\tsType = " << value.sType << '\n';
17076	s << "\tpNext = " << value.pNext << '\n';
17077	s << "\tusage = " << getOpticalFlowUsageFlagsNVStr(value.usage) << '\n';
17078	s << '}';
17079	return s;
17080}
17081
17082std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatPropertiesNV& value)
17083{
17084	s << "VkOpticalFlowImageFormatPropertiesNV = {\n";
17085	s << "\tsType = " << value.sType << '\n';
17086	s << "\tpNext = " << value.pNext << '\n';
17087	s << "\tformat = " << value.format << '\n';
17088	s << '}';
17089	return s;
17090}
17091
17092std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreateInfoNV& value)
17093{
17094	s << "VkOpticalFlowSessionCreateInfoNV = {\n";
17095	s << "\tsType = " << value.sType << '\n';
17096	s << "\tpNext = " << value.pNext << '\n';
17097	s << "\twidth = " << value.width << '\n';
17098	s << "\theight = " << value.height << '\n';
17099	s << "\timageFormat = " << value.imageFormat << '\n';
17100	s << "\tflowVectorFormat = " << value.flowVectorFormat << '\n';
17101	s << "\tcostFormat = " << value.costFormat << '\n';
17102	s << "\toutputGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.outputGridSize) << '\n';
17103	s << "\thintGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.hintGridSize) << '\n';
17104	s << "\tperformanceLevel = " << value.performanceLevel << '\n';
17105	s << "\tflags = " << getOpticalFlowSessionCreateFlagsNVStr(value.flags) << '\n';
17106	s << '}';
17107	return s;
17108}
17109
17110std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreatePrivateDataInfoNV& value)
17111{
17112	s << "VkOpticalFlowSessionCreatePrivateDataInfoNV = {\n";
17113	s << "\tsType = " << value.sType << '\n';
17114	s << "\tpNext = " << value.pNext << '\n';
17115	s << "\tid = " << value.id << '\n';
17116	s << "\tsize = " << value.size << '\n';
17117	s << "\tpPrivateData = " << value.pPrivateData << '\n';
17118	s << '}';
17119	return s;
17120}
17121
17122std::ostream& operator<< (std::ostream& s, const VkOpticalFlowExecuteInfoNV& value)
17123{
17124	s << "VkOpticalFlowExecuteInfoNV = {\n";
17125	s << "\tsType = " << value.sType << '\n';
17126	s << "\tpNext = " << value.pNext << '\n';
17127	s << "\tflags = " << getOpticalFlowExecuteFlagsNVStr(value.flags) << '\n';
17128	s << "\tregionCount = " << value.regionCount << '\n';
17129	s << "\tpRegions = " << value.pRegions << '\n';
17130	s << '}';
17131	return s;
17132}
17133
17134std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFaultFeaturesEXT& value)
17135{
17136	s << "VkPhysicalDeviceFaultFeaturesEXT = {\n";
17137	s << "\tsType = " << value.sType << '\n';
17138	s << "\tpNext = " << value.pNext << '\n';
17139	s << "\tdeviceFault = " << value.deviceFault << '\n';
17140	s << "\tdeviceFaultVendorBinary = " << value.deviceFaultVendorBinary << '\n';
17141	s << '}';
17142	return s;
17143}
17144
17145std::ostream& operator<< (std::ostream& s, const VkDeviceFaultAddressInfoEXT& value)
17146{
17147	s << "VkDeviceFaultAddressInfoEXT = {\n";
17148	s << "\taddressType = " << value.addressType << '\n';
17149	s << "\treportedAddress = " << value.reportedAddress << '\n';
17150	s << "\taddressPrecision = " << value.addressPrecision << '\n';
17151	s << '}';
17152	return s;
17153}
17154
17155std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorInfoEXT& value)
17156{
17157	s << "VkDeviceFaultVendorInfoEXT = {\n";
17158	s << "\tdescription = " << (const char*)value.description << '\n';
17159	s << "\tvendorFaultCode = " << value.vendorFaultCode << '\n';
17160	s << "\tvendorFaultData = " << value.vendorFaultData << '\n';
17161	s << '}';
17162	return s;
17163}
17164
17165std::ostream& operator<< (std::ostream& s, const VkDeviceFaultCountsEXT& value)
17166{
17167	s << "VkDeviceFaultCountsEXT = {\n";
17168	s << "\tsType = " << value.sType << '\n';
17169	s << "\tpNext = " << value.pNext << '\n';
17170	s << "\taddressInfoCount = " << value.addressInfoCount << '\n';
17171	s << "\tvendorInfoCount = " << value.vendorInfoCount << '\n';
17172	s << "\tvendorBinarySize = " << value.vendorBinarySize << '\n';
17173	s << '}';
17174	return s;
17175}
17176
17177std::ostream& operator<< (std::ostream& s, const VkDeviceFaultInfoEXT& value)
17178{
17179	s << "VkDeviceFaultInfoEXT = {\n";
17180	s << "\tsType = " << value.sType << '\n';
17181	s << "\tpNext = " << value.pNext << '\n';
17182	s << "\tdescription = " << (const char*)value.description << '\n';
17183	s << "\tpAddressInfos = " << value.pAddressInfos << '\n';
17184	s << "\tpVendorInfos = " << value.pVendorInfos << '\n';
17185	s << "\tpVendorBinaryData = " << value.pVendorBinaryData << '\n';
17186	s << '}';
17187	return s;
17188}
17189
17190std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorBinaryHeaderVersionOneEXT& value)
17191{
17192	s << "VkDeviceFaultVendorBinaryHeaderVersionOneEXT = {\n";
17193	s << "\theaderSize = " << value.headerSize << '\n';
17194	s << "\theaderVersion = " << value.headerVersion << '\n';
17195	s << "\tvendorID = " << value.vendorID << '\n';
17196	s << "\tdeviceID = " << value.deviceID << '\n';
17197	s << "\tdriverVersion = " << value.driverVersion << '\n';
17198	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';
17199	s << "\tapplicationNameOffset = " << value.applicationNameOffset << '\n';
17200	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
17201	s << "\tengineNameOffset = " << value.engineNameOffset << '\n';
17202	s << "\tengineVersion = " << value.engineVersion << '\n';
17203	s << "\tapiVersion = " << value.apiVersion << '\n';
17204	s << '}';
17205	return s;
17206}
17207
17208std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT& value)
17209{
17210	s << "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = {\n";
17211	s << "\tsType = " << value.sType << '\n';
17212	s << "\tpNext = " << value.pNext << '\n';
17213	s << "\tpipelineLibraryGroupHandles = " << value.pipelineLibraryGroupHandles << '\n';
17214	s << '}';
17215	return s;
17216}
17217
17218std::ostream& operator<< (std::ostream& s, const VkDepthBiasInfoEXT& value)
17219{
17220	s << "VkDepthBiasInfoEXT = {\n";
17221	s << "\tsType = " << value.sType << '\n';
17222	s << "\tpNext = " << value.pNext << '\n';
17223	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
17224	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
17225	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
17226	s << '}';
17227	return s;
17228}
17229
17230std::ostream& operator<< (std::ostream& s, const VkDepthBiasRepresentationInfoEXT& value)
17231{
17232	s << "VkDepthBiasRepresentationInfoEXT = {\n";
17233	s << "\tsType = " << value.sType << '\n';
17234	s << "\tpNext = " << value.pNext << '\n';
17235	s << "\tdepthBiasRepresentation = " << value.depthBiasRepresentation << '\n';
17236	s << "\tdepthBiasExact = " << value.depthBiasExact << '\n';
17237	s << '}';
17238	return s;
17239}
17240
17241std::ostream& operator<< (std::ostream& s, const VkDecompressMemoryRegionNV& value)
17242{
17243	s << "VkDecompressMemoryRegionNV = {\n";
17244	s << "\tsrcAddress = " << value.srcAddress << '\n';
17245	s << "\tdstAddress = " << value.dstAddress << '\n';
17246	s << "\tcompressedSize = " << value.compressedSize << '\n';
17247	s << "\tdecompressedSize = " << value.decompressedSize << '\n';
17248	s << "\tdecompressionMethod = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethod) << '\n';
17249	s << '}';
17250	return s;
17251}
17252
17253std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM& value)
17254{
17255	s << "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = {\n";
17256	s << "\tsType = " << value.sType << '\n';
17257	s << "\tpNext = " << value.pNext << '\n';
17258	s << "\tshaderCoreMask = " << value.shaderCoreMask << '\n';
17259	s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
17260	s << "\tshaderWarpsPerCore = " << value.shaderWarpsPerCore << '\n';
17261	s << '}';
17262	return s;
17263}
17264
17265std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM& value)
17266{
17267	s << "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = {\n";
17268	s << "\tsType = " << value.sType << '\n';
17269	s << "\tpNext = " << value.pNext << '\n';
17270	s << "\tshaderCoreBuiltins = " << value.shaderCoreBuiltins << '\n';
17271	s << '}';
17272	return s;
17273}
17274
17275std::ostream& operator<< (std::ostream& s, const VkFrameBoundaryEXT& value)
17276{
17277	s << "VkFrameBoundaryEXT = {\n";
17278	s << "\tsType = " << value.sType << '\n';
17279	s << "\tpNext = " << value.pNext << '\n';
17280	s << "\tflags = " << getFrameBoundaryFlagsEXTStr(value.flags) << '\n';
17281	s << "\tframeID = " << value.frameID << '\n';
17282	s << "\timageCount = " << value.imageCount << '\n';
17283	s << "\tpImages = " << value.pImages << '\n';
17284	s << "\tbufferCount = " << value.bufferCount << '\n';
17285	s << "\tpBuffers = " << value.pBuffers << '\n';
17286	s << "\ttagName = " << value.tagName << '\n';
17287	s << "\ttagSize = " << value.tagSize << '\n';
17288	s << "\tpTag = " << value.pTag << '\n';
17289	s << '}';
17290	return s;
17291}
17292
17293std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFrameBoundaryFeaturesEXT& value)
17294{
17295	s << "VkPhysicalDeviceFrameBoundaryFeaturesEXT = {\n";
17296	s << "\tsType = " << value.sType << '\n';
17297	s << "\tpNext = " << value.pNext << '\n';
17298	s << "\tframeBoundary = " << value.frameBoundary << '\n';
17299	s << '}';
17300	return s;
17301}
17302
17303std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT& value)
17304{
17305	s << "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = {\n";
17306	s << "\tsType = " << value.sType << '\n';
17307	s << "\tpNext = " << value.pNext << '\n';
17308	s << "\tdynamicRenderingUnusedAttachments = " << value.dynamicRenderingUnusedAttachments << '\n';
17309	s << '}';
17310	return s;
17311}
17312
17313std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeEXT& value)
17314{
17315	s << "VkSurfacePresentModeEXT = {\n";
17316	s << "\tsType = " << value.sType << '\n';
17317	s << "\tpNext = " << value.pNext << '\n';
17318	s << "\tpresentMode = " << value.presentMode << '\n';
17319	s << '}';
17320	return s;
17321}
17322
17323std::ostream& operator<< (std::ostream& s, const VkSurfacePresentScalingCapabilitiesEXT& value)
17324{
17325	s << "VkSurfacePresentScalingCapabilitiesEXT = {\n";
17326	s << "\tsType = " << value.sType << '\n';
17327	s << "\tpNext = " << value.pNext << '\n';
17328	s << "\tsupportedPresentScaling = " << getPresentScalingFlagsEXTStr(value.supportedPresentScaling) << '\n';
17329	s << "\tsupportedPresentGravityX = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityX) << '\n';
17330	s << "\tsupportedPresentGravityY = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityY) << '\n';
17331	s << "\tminScaledImageExtent = " << value.minScaledImageExtent << '\n';
17332	s << "\tmaxScaledImageExtent = " << value.maxScaledImageExtent << '\n';
17333	s << '}';
17334	return s;
17335}
17336
17337std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeCompatibilityEXT& value)
17338{
17339	s << "VkSurfacePresentModeCompatibilityEXT = {\n";
17340	s << "\tsType = " << value.sType << '\n';
17341	s << "\tpNext = " << value.pNext << '\n';
17342	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
17343	s << "\tpPresentModes = " << value.pPresentModes << '\n';
17344	s << '}';
17345	return s;
17346}
17347
17348std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT& value)
17349{
17350	s << "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT = {\n";
17351	s << "\tsType = " << value.sType << '\n';
17352	s << "\tpNext = " << value.pNext << '\n';
17353	s << "\tswapchainMaintenance1 = " << value.swapchainMaintenance1 << '\n';
17354	s << '}';
17355	return s;
17356}
17357
17358std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentFenceInfoEXT& value)
17359{
17360	s << "VkSwapchainPresentFenceInfoEXT = {\n";
17361	s << "\tsType = " << value.sType << '\n';
17362	s << "\tpNext = " << value.pNext << '\n';
17363	s << "\tswapchainCount = " << value.swapchainCount << '\n';
17364	s << "\tpFences = " << value.pFences << '\n';
17365	s << '}';
17366	return s;
17367}
17368
17369std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModesCreateInfoEXT& value)
17370{
17371	s << "VkSwapchainPresentModesCreateInfoEXT = {\n";
17372	s << "\tsType = " << value.sType << '\n';
17373	s << "\tpNext = " << value.pNext << '\n';
17374	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
17375	s << "\tpPresentModes = " << value.pPresentModes << '\n';
17376	s << '}';
17377	return s;
17378}
17379
17380std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModeInfoEXT& value)
17381{
17382	s << "VkSwapchainPresentModeInfoEXT = {\n";
17383	s << "\tsType = " << value.sType << '\n';
17384	s << "\tpNext = " << value.pNext << '\n';
17385	s << "\tswapchainCount = " << value.swapchainCount << '\n';
17386	s << "\tpPresentModes = " << value.pPresentModes << '\n';
17387	s << '}';
17388	return s;
17389}
17390
17391std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentScalingCreateInfoEXT& value)
17392{
17393	s << "VkSwapchainPresentScalingCreateInfoEXT = {\n";
17394	s << "\tsType = " << value.sType << '\n';
17395	s << "\tpNext = " << value.pNext << '\n';
17396	s << "\tscalingBehavior = " << getPresentScalingFlagsEXTStr(value.scalingBehavior) << '\n';
17397	s << "\tpresentGravityX = " << getPresentGravityFlagsEXTStr(value.presentGravityX) << '\n';
17398	s << "\tpresentGravityY = " << getPresentGravityFlagsEXTStr(value.presentGravityY) << '\n';
17399	s << '}';
17400	return s;
17401}
17402
17403std::ostream& operator<< (std::ostream& s, const VkReleaseSwapchainImagesInfoEXT& value)
17404{
17405	s << "VkReleaseSwapchainImagesInfoEXT = {\n";
17406	s << "\tsType = " << value.sType << '\n';
17407	s << "\tpNext = " << value.pNext << '\n';
17408	s << "\tswapchain = " << value.swapchain << '\n';
17409	s << "\timageIndexCount = " << value.imageIndexCount << '\n';
17410	s << "\tpImageIndices = " << value.pImageIndices << '\n';
17411	s << '}';
17412	return s;
17413}
17414
17415std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthBiasControlFeaturesEXT& value)
17416{
17417	s << "VkPhysicalDeviceDepthBiasControlFeaturesEXT = {\n";
17418	s << "\tsType = " << value.sType << '\n';
17419	s << "\tpNext = " << value.pNext << '\n';
17420	s << "\tdepthBiasControl = " << value.depthBiasControl << '\n';
17421	s << "\tleastRepresentableValueForceUnormRepresentation = " << value.leastRepresentableValueForceUnormRepresentation << '\n';
17422	s << "\tfloatRepresentation = " << value.floatRepresentation << '\n';
17423	s << "\tdepthBiasExact = " << value.depthBiasExact << '\n';
17424	s << '}';
17425	return s;
17426}
17427
17428std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV& value)
17429{
17430	s << "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV = {\n";
17431	s << "\tsType = " << value.sType << '\n';
17432	s << "\tpNext = " << value.pNext << '\n';
17433	s << "\trayTracingInvocationReorder = " << value.rayTracingInvocationReorder << '\n';
17434	s << '}';
17435	return s;
17436}
17437
17438std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV& value)
17439{
17440	s << "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV = {\n";
17441	s << "\tsType = " << value.sType << '\n';
17442	s << "\tpNext = " << value.pNext << '\n';
17443	s << "\trayTracingInvocationReorderReorderingHint = " << value.rayTracingInvocationReorderReorderingHint << '\n';
17444	s << '}';
17445	return s;
17446}
17447
17448std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV& value)
17449{
17450	s << "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = {\n";
17451	s << "\tsType = " << value.sType << '\n';
17452	s << "\tpNext = " << value.pNext << '\n';
17453	s << "\textendedSparseAddressSpace = " << value.extendedSparseAddressSpace << '\n';
17454	s << '}';
17455	return s;
17456}
17457
17458std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV& value)
17459{
17460	s << "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV = {\n";
17461	s << "\tsType = " << value.sType << '\n';
17462	s << "\tpNext = " << value.pNext << '\n';
17463	s << "\textendedSparseAddressSpaceSize = " << value.extendedSparseAddressSpaceSize << '\n';
17464	s << "\textendedSparseImageUsageFlags = " << getImageUsageFlagsStr(value.extendedSparseImageUsageFlags) << '\n';
17465	s << "\textendedSparseBufferUsageFlags = " << getBufferUsageFlagsStr(value.extendedSparseBufferUsageFlags) << '\n';
17466	s << '}';
17467	return s;
17468}
17469
17470std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingInfoLUNARG& value)
17471{
17472	s << "VkDirectDriverLoadingInfoLUNARG = {\n";
17473	s << "\tsType = " << value.sType << '\n';
17474	s << "\tpNext = " << value.pNext << '\n';
17475	s << "\tflags = " << getDirectDriverLoadingFlagsLUNARGStr(value.flags) << '\n';
17476	s << "\tpfnGetInstanceProcAddr = " << value.pfnGetInstanceProcAddr << '\n';
17477	s << '}';
17478	return s;
17479}
17480
17481std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingListLUNARG& value)
17482{
17483	s << "VkDirectDriverLoadingListLUNARG = {\n";
17484	s << "\tsType = " << value.sType << '\n';
17485	s << "\tpNext = " << value.pNext << '\n';
17486	s << "\tmode = " << value.mode << '\n';
17487	s << "\tdriverCount = " << value.driverCount << '\n';
17488	s << "\tpDrivers = " << value.pDrivers << '\n';
17489	s << '}';
17490	return s;
17491}
17492
17493std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM& value)
17494{
17495	s << "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = {\n";
17496	s << "\tsType = " << value.sType << '\n';
17497	s << "\tpNext = " << value.pNext << '\n';
17498	s << "\tmultiviewPerViewViewports = " << value.multiviewPerViewViewports << '\n';
17499	s << '}';
17500	return s;
17501}
17502
17503std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR& value)
17504{
17505	s << "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR = {\n";
17506	s << "\tsType = " << value.sType << '\n';
17507	s << "\tpNext = " << value.pNext << '\n';
17508	s << "\trayTracingPositionFetch = " << value.rayTracingPositionFetch << '\n';
17509	s << '}';
17510	return s;
17511}
17512
17513std::ostream& operator<< (std::ostream& s, const VkDeviceImageSubresourceInfoKHR& value)
17514{
17515	s << "VkDeviceImageSubresourceInfoKHR = {\n";
17516	s << "\tsType = " << value.sType << '\n';
17517	s << "\tpNext = " << value.pNext << '\n';
17518	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
17519	s << "\tpSubresource = " << value.pSubresource << '\n';
17520	s << '}';
17521	return s;
17522}
17523
17524std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesARM& value)
17525{
17526	s << "VkPhysicalDeviceShaderCorePropertiesARM = {\n";
17527	s << "\tsType = " << value.sType << '\n';
17528	s << "\tpNext = " << value.pNext << '\n';
17529	s << "\tpixelRate = " << value.pixelRate << '\n';
17530	s << "\ttexelRate = " << value.texelRate << '\n';
17531	s << "\tfmaRate = " << value.fmaRate << '\n';
17532	s << '}';
17533	return s;
17534}
17535
17536std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM& value)
17537{
17538	s << "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = {\n";
17539	s << "\tsType = " << value.sType << '\n';
17540	s << "\tpNext = " << value.pNext << '\n';
17541	s << "\tmultiviewPerViewRenderAreas = " << value.multiviewPerViewRenderAreas << '\n';
17542	s << '}';
17543	return s;
17544}
17545
17546std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM& value)
17547{
17548	s << "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = {\n";
17549	s << "\tsType = " << value.sType << '\n';
17550	s << "\tpNext = " << value.pNext << '\n';
17551	s << "\tperViewRenderAreaCount = " << value.perViewRenderAreaCount << '\n';
17552	s << "\tpPerViewRenderAreas = " << value.pPerViewRenderAreas << '\n';
17553	s << '}';
17554	return s;
17555}
17556
17557std::ostream& operator<< (std::ostream& s, const VkQueryLowLatencySupportNV& value)
17558{
17559	s << "VkQueryLowLatencySupportNV = {\n";
17560	s << "\tsType = " << value.sType << '\n';
17561	s << "\tpNext = " << value.pNext << '\n';
17562	s << "\tpQueriedLowLatencyData = " << value.pQueriedLowLatencyData << '\n';
17563	s << '}';
17564	return s;
17565}
17566
17567std::ostream& operator<< (std::ostream& s, const VkMemoryMapInfoKHR& value)
17568{
17569	s << "VkMemoryMapInfoKHR = {\n";
17570	s << "\tsType = " << value.sType << '\n';
17571	s << "\tpNext = " << value.pNext << '\n';
17572	s << "\tflags = " << getMemoryMapFlagsStr(value.flags) << '\n';
17573	s << "\tmemory = " << value.memory << '\n';
17574	s << "\toffset = " << value.offset << '\n';
17575	s << "\tsize = " << value.size << '\n';
17576	s << '}';
17577	return s;
17578}
17579
17580std::ostream& operator<< (std::ostream& s, const VkMemoryUnmapInfoKHR& value)
17581{
17582	s << "VkMemoryUnmapInfoKHR = {\n";
17583	s << "\tsType = " << value.sType << '\n';
17584	s << "\tpNext = " << value.pNext << '\n';
17585	s << "\tflags = " << getMemoryUnmapFlagsKHRStr(value.flags) << '\n';
17586	s << "\tmemory = " << value.memory << '\n';
17587	s << '}';
17588	return s;
17589}
17590
17591std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderObjectFeaturesEXT& value)
17592{
17593	s << "VkPhysicalDeviceShaderObjectFeaturesEXT = {\n";
17594	s << "\tsType = " << value.sType << '\n';
17595	s << "\tpNext = " << value.pNext << '\n';
17596	s << "\tshaderObject = " << value.shaderObject << '\n';
17597	s << '}';
17598	return s;
17599}
17600
17601std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderObjectPropertiesEXT& value)
17602{
17603	s << "VkPhysicalDeviceShaderObjectPropertiesEXT = {\n";
17604	s << "\tsType = " << value.sType << '\n';
17605	s << "\tpNext = " << value.pNext << '\n';
17606	s << "\tshaderBinaryUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderBinaryUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderBinaryUUID))) << '\n';
17607	s << "\tshaderBinaryVersion = " << value.shaderBinaryVersion << '\n';
17608	s << '}';
17609	return s;
17610}
17611
17612std::ostream& operator<< (std::ostream& s, const VkShaderCreateInfoEXT& value)
17613{
17614	s << "VkShaderCreateInfoEXT = {\n";
17615	s << "\tsType = " << value.sType << '\n';
17616	s << "\tpNext = " << value.pNext << '\n';
17617	s << "\tflags = " << getShaderCreateFlagsEXTStr(value.flags) << '\n';
17618	s << "\tstage = " << value.stage << '\n';
17619	s << "\tnextStage = " << getShaderStageFlagsStr(value.nextStage) << '\n';
17620	s << "\tcodeType = " << value.codeType << '\n';
17621	s << "\tcodeSize = " << value.codeSize << '\n';
17622	s << "\tpCode = " << value.pCode << '\n';
17623	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
17624	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
17625	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
17626	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
17627	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
17628	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
17629	s << '}';
17630	return s;
17631}
17632
17633std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTileImageFeaturesEXT& value)
17634{
17635	s << "VkPhysicalDeviceShaderTileImageFeaturesEXT = {\n";
17636	s << "\tsType = " << value.sType << '\n';
17637	s << "\tpNext = " << value.pNext << '\n';
17638	s << "\tshaderTileImageColorReadAccess = " << value.shaderTileImageColorReadAccess << '\n';
17639	s << "\tshaderTileImageDepthReadAccess = " << value.shaderTileImageDepthReadAccess << '\n';
17640	s << "\tshaderTileImageStencilReadAccess = " << value.shaderTileImageStencilReadAccess << '\n';
17641	s << '}';
17642	return s;
17643}
17644
17645std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTileImagePropertiesEXT& value)
17646{
17647	s << "VkPhysicalDeviceShaderTileImagePropertiesEXT = {\n";
17648	s << "\tsType = " << value.sType << '\n';
17649	s << "\tpNext = " << value.pNext << '\n';
17650	s << "\tshaderTileImageCoherentReadAccelerated = " << value.shaderTileImageCoherentReadAccelerated << '\n';
17651	s << "\tshaderTileImageReadSampleFromPixelRateInvocation = " << value.shaderTileImageReadSampleFromPixelRateInvocation << '\n';
17652	s << "\tshaderTileImageReadFromHelperInvocation = " << value.shaderTileImageReadFromHelperInvocation << '\n';
17653	s << '}';
17654	return s;
17655}
17656
17657std::ostream& operator<< (std::ostream& s, const VkImportScreenBufferInfoQNX& value)
17658{
17659	s << "VkImportScreenBufferInfoQNX = {\n";
17660	s << "\tsType = " << value.sType << '\n';
17661	s << "\tpNext = " << value.pNext << '\n';
17662	s << "\tbuffer = " << value.buffer << '\n';
17663	s << '}';
17664	return s;
17665}
17666
17667std::ostream& operator<< (std::ostream& s, const VkScreenBufferPropertiesQNX& value)
17668{
17669	s << "VkScreenBufferPropertiesQNX = {\n";
17670	s << "\tsType = " << value.sType << '\n';
17671	s << "\tpNext = " << value.pNext << '\n';
17672	s << "\tallocationSize = " << value.allocationSize << '\n';
17673	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
17674	s << '}';
17675	return s;
17676}
17677
17678std::ostream& operator<< (std::ostream& s, const VkScreenBufferFormatPropertiesQNX& value)
17679{
17680	s << "VkScreenBufferFormatPropertiesQNX = {\n";
17681	s << "\tsType = " << value.sType << '\n';
17682	s << "\tpNext = " << value.pNext << '\n';
17683	s << "\tformat = " << value.format << '\n';
17684	s << "\texternalFormat = " << value.externalFormat << '\n';
17685	s << "\tscreenUsage = " << value.screenUsage << '\n';
17686	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
17687	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
17688	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
17689	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
17690	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
17691	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
17692	s << '}';
17693	return s;
17694}
17695
17696std::ostream& operator<< (std::ostream& s, const VkExternalFormatQNX& value)
17697{
17698	s << "VkExternalFormatQNX = {\n";
17699	s << "\tsType = " << value.sType << '\n';
17700	s << "\tpNext = " << value.pNext << '\n';
17701	s << "\texternalFormat = " << value.externalFormat << '\n';
17702	s << '}';
17703	return s;
17704}
17705
17706std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX& value)
17707{
17708	s << "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = {\n";
17709	s << "\tsType = " << value.sType << '\n';
17710	s << "\tpNext = " << value.pNext << '\n';
17711	s << "\tscreenBufferImport = " << value.screenBufferImport << '\n';
17712	s << '}';
17713	return s;
17714}
17715
17716std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesKHR& value)
17717{
17718	s << "VkPhysicalDeviceCooperativeMatrixFeaturesKHR = {\n";
17719	s << "\tsType = " << value.sType << '\n';
17720	s << "\tpNext = " << value.pNext << '\n';
17721	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
17722	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
17723	s << '}';
17724	return s;
17725}
17726
17727std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesKHR& value)
17728{
17729	s << "VkCooperativeMatrixPropertiesKHR = {\n";
17730	s << "\tsType = " << value.sType << '\n';
17731	s << "\tpNext = " << value.pNext << '\n';
17732	s << "\tMSize = " << value.MSize << '\n';
17733	s << "\tNSize = " << value.NSize << '\n';
17734	s << "\tKSize = " << value.KSize << '\n';
17735	s << "\tAType = " << value.AType << '\n';
17736	s << "\tBType = " << value.BType << '\n';
17737	s << "\tCType = " << value.CType << '\n';
17738	s << "\tResultType = " << value.ResultType << '\n';
17739	s << "\tsaturatingAccumulation = " << value.saturatingAccumulation << '\n';
17740	s << "\tscope = " << value.scope << '\n';
17741	s << '}';
17742	return s;
17743}
17744
17745std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesKHR& value)
17746{
17747	s << "VkPhysicalDeviceCooperativeMatrixPropertiesKHR = {\n";
17748	s << "\tsType = " << value.sType << '\n';
17749	s << "\tpNext = " << value.pNext << '\n';
17750	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
17751	s << '}';
17752	return s;
17753}
17754
17755std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEnqueuePropertiesAMDX& value)
17756{
17757	s << "VkPhysicalDeviceShaderEnqueuePropertiesAMDX = {\n";
17758	s << "\tsType = " << value.sType << '\n';
17759	s << "\tpNext = " << value.pNext << '\n';
17760	s << "\tmaxExecutionGraphDepth = " << value.maxExecutionGraphDepth << '\n';
17761	s << "\tmaxExecutionGraphShaderOutputNodes = " << value.maxExecutionGraphShaderOutputNodes << '\n';
17762	s << "\tmaxExecutionGraphShaderPayloadSize = " << value.maxExecutionGraphShaderPayloadSize << '\n';
17763	s << "\tmaxExecutionGraphShaderPayloadCount = " << value.maxExecutionGraphShaderPayloadCount << '\n';
17764	s << "\texecutionGraphDispatchAddressAlignment = " << value.executionGraphDispatchAddressAlignment << '\n';
17765	s << '}';
17766	return s;
17767}
17768
17769std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEnqueueFeaturesAMDX& value)
17770{
17771	s << "VkPhysicalDeviceShaderEnqueueFeaturesAMDX = {\n";
17772	s << "\tsType = " << value.sType << '\n';
17773	s << "\tpNext = " << value.pNext << '\n';
17774	s << "\tshaderEnqueue = " << value.shaderEnqueue << '\n';
17775	s << '}';
17776	return s;
17777}
17778
17779std::ostream& operator<< (std::ostream& s, const VkExecutionGraphPipelineCreateInfoAMDX& value)
17780{
17781	s << "VkExecutionGraphPipelineCreateInfoAMDX = {\n";
17782	s << "\tsType = " << value.sType << '\n';
17783	s << "\tpNext = " << value.pNext << '\n';
17784	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
17785	s << "\tstageCount = " << value.stageCount << '\n';
17786	s << "\tpStages = " << value.pStages << '\n';
17787	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
17788	s << "\tlayout = " << value.layout << '\n';
17789	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
17790	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
17791	s << '}';
17792	return s;
17793}
17794
17795std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageNodeCreateInfoAMDX& value)
17796{
17797	s << "VkPipelineShaderStageNodeCreateInfoAMDX = {\n";
17798	s << "\tsType = " << value.sType << '\n';
17799	s << "\tpNext = " << value.pNext << '\n';
17800	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
17801	s << "\tindex = " << value.index << '\n';
17802	s << '}';
17803	return s;
17804}
17805
17806std::ostream& operator<< (std::ostream& s, const VkExecutionGraphPipelineScratchSizeAMDX& value)
17807{
17808	s << "VkExecutionGraphPipelineScratchSizeAMDX = {\n";
17809	s << "\tsType = " << value.sType << '\n';
17810	s << "\tpNext = " << value.pNext << '\n';
17811	s << "\tsize = " << value.size << '\n';
17812	s << '}';
17813	return s;
17814}
17815
17816std::ostream& operator<< (std::ostream& s, const VkDispatchGraphInfoAMDX& value)
17817{
17818	s << "VkDispatchGraphInfoAMDX = {\n";
17819	s << "\tnodeIndex = " << value.nodeIndex << '\n';
17820	s << "\tpayloadCount = " << value.payloadCount << '\n';
17821	s << "\tpayloads = " << value.payloads << '\n';
17822	s << "\tpayloadStride = " << value.payloadStride << '\n';
17823	s << '}';
17824	return s;
17825}
17826
17827std::ostream& operator<< (std::ostream& s, const VkDispatchGraphCountInfoAMDX& value)
17828{
17829	s << "VkDispatchGraphCountInfoAMDX = {\n";
17830	s << "\tcount = " << value.count << '\n';
17831	s << "\tinfos = " << value.infos << '\n';
17832	s << "\tstride = " << value.stride << '\n';
17833	s << '}';
17834	return s;
17835}
17836
17837std::ostream& operator<< (std::ostream& s, const VkBindMemoryStatusKHR& value)
17838{
17839	s << "VkBindMemoryStatusKHR = {\n";
17840	s << "\tsType = " << value.sType << '\n';
17841	s << "\tpNext = " << value.pNext << '\n';
17842	s << "\tpResult = " << value.pResult << '\n';
17843	s << '}';
17844	return s;
17845}
17846
17847std::ostream& operator<< (std::ostream& s, const VkBindDescriptorSetsInfoKHR& value)
17848{
17849	s << "VkBindDescriptorSetsInfoKHR = {\n";
17850	s << "\tsType = " << value.sType << '\n';
17851	s << "\tpNext = " << value.pNext << '\n';
17852	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
17853	s << "\tlayout = " << value.layout << '\n';
17854	s << "\tfirstSet = " << value.firstSet << '\n';
17855	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
17856	s << "\tpDescriptorSets = " << value.pDescriptorSets << '\n';
17857	s << "\tdynamicOffsetCount = " << value.dynamicOffsetCount << '\n';
17858	s << "\tpDynamicOffsets = " << value.pDynamicOffsets << '\n';
17859	s << '}';
17860	return s;
17861}
17862
17863std::ostream& operator<< (std::ostream& s, const VkPushConstantsInfoKHR& value)
17864{
17865	s << "VkPushConstantsInfoKHR = {\n";
17866	s << "\tsType = " << value.sType << '\n';
17867	s << "\tpNext = " << value.pNext << '\n';
17868	s << "\tlayout = " << value.layout << '\n';
17869	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
17870	s << "\toffset = " << value.offset << '\n';
17871	s << "\tsize = " << value.size << '\n';
17872	s << "\tpValues = " << value.pValues << '\n';
17873	s << '}';
17874	return s;
17875}
17876
17877std::ostream& operator<< (std::ostream& s, const VkPushDescriptorSetInfoKHR& value)
17878{
17879	s << "VkPushDescriptorSetInfoKHR = {\n";
17880	s << "\tsType = " << value.sType << '\n';
17881	s << "\tpNext = " << value.pNext << '\n';
17882	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
17883	s << "\tlayout = " << value.layout << '\n';
17884	s << "\tset = " << value.set << '\n';
17885	s << "\tdescriptorWriteCount = " << value.descriptorWriteCount << '\n';
17886	s << "\tpDescriptorWrites = " << value.pDescriptorWrites << '\n';
17887	s << '}';
17888	return s;
17889}
17890
17891std::ostream& operator<< (std::ostream& s, const VkPushDescriptorSetWithTemplateInfoKHR& value)
17892{
17893	s << "VkPushDescriptorSetWithTemplateInfoKHR = {\n";
17894	s << "\tsType = " << value.sType << '\n';
17895	s << "\tpNext = " << value.pNext << '\n';
17896	s << "\tdescriptorUpdateTemplate = " << value.descriptorUpdateTemplate << '\n';
17897	s << "\tlayout = " << value.layout << '\n';
17898	s << "\tset = " << value.set << '\n';
17899	s << "\tpData = " << value.pData << '\n';
17900	s << '}';
17901	return s;
17902}
17903
17904std::ostream& operator<< (std::ostream& s, const VkSetDescriptorBufferOffsetsInfoEXT& value)
17905{
17906	s << "VkSetDescriptorBufferOffsetsInfoEXT = {\n";
17907	s << "\tsType = " << value.sType << '\n';
17908	s << "\tpNext = " << value.pNext << '\n';
17909	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
17910	s << "\tlayout = " << value.layout << '\n';
17911	s << "\tfirstSet = " << value.firstSet << '\n';
17912	s << "\tsetCount = " << value.setCount << '\n';
17913	s << "\tpBufferIndices = " << value.pBufferIndices << '\n';
17914	s << "\tpOffsets = " << value.pOffsets << '\n';
17915	s << '}';
17916	return s;
17917}
17918
17919std::ostream& operator<< (std::ostream& s, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT& value)
17920{
17921	s << "VkBindDescriptorBufferEmbeddedSamplersInfoEXT = {\n";
17922	s << "\tsType = " << value.sType << '\n';
17923	s << "\tpNext = " << value.pNext << '\n';
17924	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
17925	s << "\tlayout = " << value.layout << '\n';
17926	s << "\tset = " << value.set << '\n';
17927	s << '}';
17928	return s;
17929}
17930
17931std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCubicClampFeaturesQCOM& value)
17932{
17933	s << "VkPhysicalDeviceCubicClampFeaturesQCOM = {\n";
17934	s << "\tsType = " << value.sType << '\n';
17935	s << "\tpNext = " << value.pNext << '\n';
17936	s << "\tcubicRangeClamp = " << value.cubicRangeClamp << '\n';
17937	s << '}';
17938	return s;
17939}
17940
17941std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM& value)
17942{
17943	s << "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM = {\n";
17944	s << "\tsType = " << value.sType << '\n';
17945	s << "\tpNext = " << value.pNext << '\n';
17946	s << "\tycbcrDegamma = " << value.ycbcrDegamma << '\n';
17947	s << '}';
17948	return s;
17949}
17950
17951std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM& value)
17952{
17953	s << "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = {\n";
17954	s << "\tsType = " << value.sType << '\n';
17955	s << "\tpNext = " << value.pNext << '\n';
17956	s << "\tenableYDegamma = " << value.enableYDegamma << '\n';
17957	s << "\tenableCbCrDegamma = " << value.enableCbCrDegamma << '\n';
17958	s << '}';
17959	return s;
17960}
17961
17962std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCubicWeightsFeaturesQCOM& value)
17963{
17964	s << "VkPhysicalDeviceCubicWeightsFeaturesQCOM = {\n";
17965	s << "\tsType = " << value.sType << '\n';
17966	s << "\tpNext = " << value.pNext << '\n';
17967	s << "\tselectableCubicWeights = " << value.selectableCubicWeights << '\n';
17968	s << '}';
17969	return s;
17970}
17971
17972std::ostream& operator<< (std::ostream& s, const VkSamplerCubicWeightsCreateInfoQCOM& value)
17973{
17974	s << "VkSamplerCubicWeightsCreateInfoQCOM = {\n";
17975	s << "\tsType = " << value.sType << '\n';
17976	s << "\tpNext = " << value.pNext << '\n';
17977	s << "\tcubicWeights = " << value.cubicWeights << '\n';
17978	s << '}';
17979	return s;
17980}
17981
17982std::ostream& operator<< (std::ostream& s, const VkBlitImageCubicWeightsInfoQCOM& value)
17983{
17984	s << "VkBlitImageCubicWeightsInfoQCOM = {\n";
17985	s << "\tsType = " << value.sType << '\n';
17986	s << "\tpNext = " << value.pNext << '\n';
17987	s << "\tcubicWeights = " << value.cubicWeights << '\n';
17988	s << '}';
17989	return s;
17990}
17991
17992std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessing2FeaturesQCOM& value)
17993{
17994	s << "VkPhysicalDeviceImageProcessing2FeaturesQCOM = {\n";
17995	s << "\tsType = " << value.sType << '\n';
17996	s << "\tpNext = " << value.pNext << '\n';
17997	s << "\ttextureBlockMatch2 = " << value.textureBlockMatch2 << '\n';
17998	s << '}';
17999	return s;
18000}
18001
18002std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessing2PropertiesQCOM& value)
18003{
18004	s << "VkPhysicalDeviceImageProcessing2PropertiesQCOM = {\n";
18005	s << "\tsType = " << value.sType << '\n';
18006	s << "\tpNext = " << value.pNext << '\n';
18007	s << "\tmaxBlockMatchWindow = " << value.maxBlockMatchWindow << '\n';
18008	s << '}';
18009	return s;
18010}
18011
18012std::ostream& operator<< (std::ostream& s, const VkSamplerBlockMatchWindowCreateInfoQCOM& value)
18013{
18014	s << "VkSamplerBlockMatchWindowCreateInfoQCOM = {\n";
18015	s << "\tsType = " << value.sType << '\n';
18016	s << "\tpNext = " << value.pNext << '\n';
18017	s << "\twindowExtent = " << value.windowExtent << '\n';
18018	s << "\twindowCompareMode = " << value.windowCompareMode << '\n';
18019	s << '}';
18020	return s;
18021}
18022
18023std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV& value)
18024{
18025	s << "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV = {\n";
18026	s << "\tsType = " << value.sType << '\n';
18027	s << "\tpNext = " << value.pNext << '\n';
18028	s << "\tdescriptorPoolOverallocation = " << value.descriptorPoolOverallocation << '\n';
18029	s << '}';
18030	return s;
18031}
18032
18033std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLayeredDriverPropertiesMSFT& value)
18034{
18035	s << "VkPhysicalDeviceLayeredDriverPropertiesMSFT = {\n";
18036	s << "\tsType = " << value.sType << '\n';
18037	s << "\tpNext = " << value.pNext << '\n';
18038	s << "\tunderlyingAPI = " << value.underlyingAPI << '\n';
18039	s << '}';
18040	return s;
18041}
18042
18043std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerStageDescriptorSetFeaturesNV& value)
18044{
18045	s << "VkPhysicalDevicePerStageDescriptorSetFeaturesNV = {\n";
18046	s << "\tsType = " << value.sType << '\n';
18047	s << "\tpNext = " << value.pNext << '\n';
18048	s << "\tperStageDescriptorSet = " << value.perStageDescriptorSet << '\n';
18049	s << "\tdynamicPipelineLayout = " << value.dynamicPipelineLayout << '\n';
18050	s << '}';
18051	return s;
18052}
18053
18054std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID& value)
18055{
18056	s << "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID = {\n";
18057	s << "\tsType = " << value.sType << '\n';
18058	s << "\tpNext = " << value.pNext << '\n';
18059	s << "\texternalFormatResolve = " << value.externalFormatResolve << '\n';
18060	s << '}';
18061	return s;
18062}
18063
18064std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID& value)
18065{
18066	s << "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID = {\n";
18067	s << "\tsType = " << value.sType << '\n';
18068	s << "\tpNext = " << value.pNext << '\n';
18069	s << "\tnullColorAttachmentWithExternalFormatResolve = " << value.nullColorAttachmentWithExternalFormatResolve << '\n';
18070	s << "\texternalFormatResolveChromaOffsetX = " << value.externalFormatResolveChromaOffsetX << '\n';
18071	s << "\texternalFormatResolveChromaOffsetY = " << value.externalFormatResolveChromaOffsetY << '\n';
18072	s << '}';
18073	return s;
18074}
18075
18076std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatResolvePropertiesANDROID& value)
18077{
18078	s << "VkAndroidHardwareBufferFormatResolvePropertiesANDROID = {\n";
18079	s << "\tsType = " << value.sType << '\n';
18080	s << "\tpNext = " << value.pNext << '\n';
18081	s << "\tcolorAttachmentFormat = " << value.colorAttachmentFormat << '\n';
18082	s << '}';
18083	return s;
18084}
18085
18086std::ostream& operator<< (std::ostream& s, const VkLatencySleepModeInfoNV& value)
18087{
18088	s << "VkLatencySleepModeInfoNV = {\n";
18089	s << "\tsType = " << value.sType << '\n';
18090	s << "\tpNext = " << value.pNext << '\n';
18091	s << "\tlowLatencyMode = " << value.lowLatencyMode << '\n';
18092	s << "\tlowLatencyBoost = " << value.lowLatencyBoost << '\n';
18093	s << "\tminimumIntervalUs = " << value.minimumIntervalUs << '\n';
18094	s << '}';
18095	return s;
18096}
18097
18098std::ostream& operator<< (std::ostream& s, const VkLatencySleepInfoNV& value)
18099{
18100	s << "VkLatencySleepInfoNV = {\n";
18101	s << "\tsType = " << value.sType << '\n';
18102	s << "\tpNext = " << value.pNext << '\n';
18103	s << "\tsignalSemaphore = " << value.signalSemaphore << '\n';
18104	s << "\tvalue = " << value.value << '\n';
18105	s << '}';
18106	return s;
18107}
18108
18109std::ostream& operator<< (std::ostream& s, const VkSetLatencyMarkerInfoNV& value)
18110{
18111	s << "VkSetLatencyMarkerInfoNV = {\n";
18112	s << "\tsType = " << value.sType << '\n';
18113	s << "\tpNext = " << value.pNext << '\n';
18114	s << "\tpresentID = " << value.presentID << '\n';
18115	s << "\tmarker = " << value.marker << '\n';
18116	s << '}';
18117	return s;
18118}
18119
18120std::ostream& operator<< (std::ostream& s, const VkGetLatencyMarkerInfoNV& value)
18121{
18122	s << "VkGetLatencyMarkerInfoNV = {\n";
18123	s << "\tsType = " << value.sType << '\n';
18124	s << "\tpNext = " << value.pNext << '\n';
18125	s << "\ttimingCount = " << value.timingCount << '\n';
18126	s << "\tpTimings = " << value.pTimings << '\n';
18127	s << '}';
18128	return s;
18129}
18130
18131std::ostream& operator<< (std::ostream& s, const VkLatencyTimingsFrameReportNV& value)
18132{
18133	s << "VkLatencyTimingsFrameReportNV = {\n";
18134	s << "\tsType = " << value.sType << '\n';
18135	s << "\tpNext = " << value.pNext << '\n';
18136	s << "\tpresentID = " << value.presentID << '\n';
18137	s << "\tinputSampleTimeUs = " << value.inputSampleTimeUs << '\n';
18138	s << "\tsimStartTimeUs = " << value.simStartTimeUs << '\n';
18139	s << "\tsimEndTimeUs = " << value.simEndTimeUs << '\n';
18140	s << "\trenderSubmitStartTimeUs = " << value.renderSubmitStartTimeUs << '\n';
18141	s << "\trenderSubmitEndTimeUs = " << value.renderSubmitEndTimeUs << '\n';
18142	s << "\tpresentStartTimeUs = " << value.presentStartTimeUs << '\n';
18143	s << "\tpresentEndTimeUs = " << value.presentEndTimeUs << '\n';
18144	s << "\tdriverStartTimeUs = " << value.driverStartTimeUs << '\n';
18145	s << "\tdriverEndTimeUs = " << value.driverEndTimeUs << '\n';
18146	s << "\tosRenderQueueStartTimeUs = " << value.osRenderQueueStartTimeUs << '\n';
18147	s << "\tosRenderQueueEndTimeUs = " << value.osRenderQueueEndTimeUs << '\n';
18148	s << "\tgpuRenderStartTimeUs = " << value.gpuRenderStartTimeUs << '\n';
18149	s << "\tgpuRenderEndTimeUs = " << value.gpuRenderEndTimeUs << '\n';
18150	s << '}';
18151	return s;
18152}
18153
18154std::ostream& operator<< (std::ostream& s, const VkOutOfBandQueueTypeInfoNV& value)
18155{
18156	s << "VkOutOfBandQueueTypeInfoNV = {\n";
18157	s << "\tsType = " << value.sType << '\n';
18158	s << "\tpNext = " << value.pNext << '\n';
18159	s << "\tqueueType = " << value.queueType << '\n';
18160	s << '}';
18161	return s;
18162}
18163
18164std::ostream& operator<< (std::ostream& s, const VkLatencySubmissionPresentIdNV& value)
18165{
18166	s << "VkLatencySubmissionPresentIdNV = {\n";
18167	s << "\tsType = " << value.sType << '\n';
18168	s << "\tpNext = " << value.pNext << '\n';
18169	s << "\tpresentID = " << value.presentID << '\n';
18170	s << '}';
18171	return s;
18172}
18173
18174std::ostream& operator<< (std::ostream& s, const VkSwapchainLatencyCreateInfoNV& value)
18175{
18176	s << "VkSwapchainLatencyCreateInfoNV = {\n";
18177	s << "\tsType = " << value.sType << '\n';
18178	s << "\tpNext = " << value.pNext << '\n';
18179	s << "\tlatencyModeEnable = " << value.latencyModeEnable << '\n';
18180	s << '}';
18181	return s;
18182}
18183
18184std::ostream& operator<< (std::ostream& s, const VkLatencySurfaceCapabilitiesNV& value)
18185{
18186	s << "VkLatencySurfaceCapabilitiesNV = {\n";
18187	s << "\tsType = " << value.sType << '\n';
18188	s << "\tpNext = " << value.pNext << '\n';
18189	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
18190	s << "\tpPresentModes = " << value.pPresentModes << '\n';
18191	s << '}';
18192	return s;
18193}
18194
18195std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCudaKernelLaunchFeaturesNV& value)
18196{
18197	s << "VkPhysicalDeviceCudaKernelLaunchFeaturesNV = {\n";
18198	s << "\tsType = " << value.sType << '\n';
18199	s << "\tpNext = " << value.pNext << '\n';
18200	s << "\tcudaKernelLaunchFeatures = " << value.cudaKernelLaunchFeatures << '\n';
18201	s << '}';
18202	return s;
18203}
18204
18205std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCudaKernelLaunchPropertiesNV& value)
18206{
18207	s << "VkPhysicalDeviceCudaKernelLaunchPropertiesNV = {\n";
18208	s << "\tsType = " << value.sType << '\n';
18209	s << "\tpNext = " << value.pNext << '\n';
18210	s << "\tcomputeCapabilityMinor = " << value.computeCapabilityMinor << '\n';
18211	s << "\tcomputeCapabilityMajor = " << value.computeCapabilityMajor << '\n';
18212	s << '}';
18213	return s;
18214}
18215
18216std::ostream& operator<< (std::ostream& s, const VkDeviceQueueShaderCoreControlCreateInfoARM& value)
18217{
18218	s << "VkDeviceQueueShaderCoreControlCreateInfoARM = {\n";
18219	s << "\tsType = " << value.sType << '\n';
18220	s << "\tpNext = " << value.pNext << '\n';
18221	s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
18222	s << '}';
18223	return s;
18224}
18225
18226std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSchedulingControlsFeaturesARM& value)
18227{
18228	s << "VkPhysicalDeviceSchedulingControlsFeaturesARM = {\n";
18229	s << "\tsType = " << value.sType << '\n';
18230	s << "\tpNext = " << value.pNext << '\n';
18231	s << "\tschedulingControls = " << value.schedulingControls << '\n';
18232	s << '}';
18233	return s;
18234}
18235
18236std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSchedulingControlsPropertiesARM& value)
18237{
18238	s << "VkPhysicalDeviceSchedulingControlsPropertiesARM = {\n";
18239	s << "\tsType = " << value.sType << '\n';
18240	s << "\tpNext = " << value.pNext << '\n';
18241	s << "\tschedulingControlsFlags = " << getPhysicalDeviceSchedulingControlsFlagsARMStr(value.schedulingControlsFlags) << '\n';
18242	s << '}';
18243	return s;
18244}
18245
18246std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG& value)
18247{
18248	s << "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG = {\n";
18249	s << "\tsType = " << value.sType << '\n';
18250	s << "\tpNext = " << value.pNext << '\n';
18251	s << "\trelaxedLineRasterization = " << value.relaxedLineRasterization << '\n';
18252	s << '}';
18253	return s;
18254}
18255
18256std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRenderPassStripedFeaturesARM& value)
18257{
18258	s << "VkPhysicalDeviceRenderPassStripedFeaturesARM = {\n";
18259	s << "\tsType = " << value.sType << '\n';
18260	s << "\tpNext = " << value.pNext << '\n';
18261	s << "\trenderPassStriped = " << value.renderPassStriped << '\n';
18262	s << '}';
18263	return s;
18264}
18265
18266std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRenderPassStripedPropertiesARM& value)
18267{
18268	s << "VkPhysicalDeviceRenderPassStripedPropertiesARM = {\n";
18269	s << "\tsType = " << value.sType << '\n';
18270	s << "\tpNext = " << value.pNext << '\n';
18271	s << "\trenderPassStripeGranularity = " << value.renderPassStripeGranularity << '\n';
18272	s << "\tmaxRenderPassStripes = " << value.maxRenderPassStripes << '\n';
18273	s << '}';
18274	return s;
18275}
18276
18277std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeInfoARM& value)
18278{
18279	s << "VkRenderPassStripeInfoARM = {\n";
18280	s << "\tsType = " << value.sType << '\n';
18281	s << "\tpNext = " << value.pNext << '\n';
18282	s << "\tstripeArea = " << value.stripeArea << '\n';
18283	s << '}';
18284	return s;
18285}
18286
18287std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeBeginInfoARM& value)
18288{
18289	s << "VkRenderPassStripeBeginInfoARM = {\n";
18290	s << "\tsType = " << value.sType << '\n';
18291	s << "\tpNext = " << value.pNext << '\n';
18292	s << "\tstripeInfoCount = " << value.stripeInfoCount << '\n';
18293	s << "\tpStripeInfos = " << value.pStripeInfos << '\n';
18294	s << '}';
18295	return s;
18296}
18297
18298std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeSubmitInfoARM& value)
18299{
18300	s << "VkRenderPassStripeSubmitInfoARM = {\n";
18301	s << "\tsType = " << value.sType << '\n';
18302	s << "\tpNext = " << value.pNext << '\n';
18303	s << "\tstripeSemaphoreInfoCount = " << value.stripeSemaphoreInfoCount << '\n';
18304	s << "\tpStripeSemaphoreInfos = " << value.pStripeSemaphoreInfos << '\n';
18305	s << '}';
18306	return s;
18307}
18308
18309std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR& value)
18310{
18311	s << "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR = {\n";
18312	s << "\tsType = " << value.sType << '\n';
18313	s << "\tpNext = " << value.pNext << '\n';
18314	s << "\tshaderMaximalReconvergence = " << value.shaderMaximalReconvergence << '\n';
18315	s << '}';
18316	return s;
18317}
18318
18319std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR& value)
18320{
18321	s << "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR = {\n";
18322	s << "\tsType = " << value.sType << '\n';
18323	s << "\tpNext = " << value.pNext << '\n';
18324	s << "\tshaderSubgroupRotate = " << value.shaderSubgroupRotate << '\n';
18325	s << "\tshaderSubgroupRotateClustered = " << value.shaderSubgroupRotateClustered << '\n';
18326	s << '}';
18327	return s;
18328}
18329
18330std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderExpectAssumeFeaturesKHR& value)
18331{
18332	s << "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR = {\n";
18333	s << "\tsType = " << value.sType << '\n';
18334	s << "\tpNext = " << value.pNext << '\n';
18335	s << "\tshaderExpectAssume = " << value.shaderExpectAssume << '\n';
18336	s << '}';
18337	return s;
18338}
18339
18340std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloatControls2FeaturesKHR& value)
18341{
18342	s << "VkPhysicalDeviceShaderFloatControls2FeaturesKHR = {\n";
18343	s << "\tsType = " << value.sType << '\n';
18344	s << "\tpNext = " << value.pNext << '\n';
18345	s << "\tshaderFloatControls2 = " << value.shaderFloatControls2 << '\n';
18346	s << '}';
18347	return s;
18348}
18349
18350std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR& value)
18351{
18352	s << "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR = {\n";
18353	s << "\tsType = " << value.sType << '\n';
18354	s << "\tpNext = " << value.pNext << '\n';
18355	s << "\tdynamicRenderingLocalRead = " << value.dynamicRenderingLocalRead << '\n';
18356	s << '}';
18357	return s;
18358}
18359
18360std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentLocationInfoKHR& value)
18361{
18362	s << "VkRenderingAttachmentLocationInfoKHR = {\n";
18363	s << "\tsType = " << value.sType << '\n';
18364	s << "\tpNext = " << value.pNext << '\n';
18365	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
18366	s << "\tpColorAttachmentLocations = " << value.pColorAttachmentLocations << '\n';
18367	s << '}';
18368	return s;
18369}
18370
18371std::ostream& operator<< (std::ostream& s, const VkRenderingInputAttachmentIndexInfoKHR& value)
18372{
18373	s << "VkRenderingInputAttachmentIndexInfoKHR = {\n";
18374	s << "\tsType = " << value.sType << '\n';
18375	s << "\tpNext = " << value.pNext << '\n';
18376	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
18377	s << "\tpColorAttachmentInputIndices = " << value.pColorAttachmentInputIndices << '\n';
18378	s << "\tpDepthInputAttachmentIndex = " << value.pDepthInputAttachmentIndex << '\n';
18379	s << "\tpStencilInputAttachmentIndex = " << value.pStencilInputAttachmentIndex << '\n';
18380	s << '}';
18381	return s;
18382}
18383
18384std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderQuadControlFeaturesKHR& value)
18385{
18386	s << "VkPhysicalDeviceShaderQuadControlFeaturesKHR = {\n";
18387	s << "\tsType = " << value.sType << '\n';
18388	s << "\tpNext = " << value.pNext << '\n';
18389	s << "\tshaderQuadControl = " << value.shaderQuadControl << '\n';
18390	s << '}';
18391	return s;
18392}
18393
18394std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
18395{
18396	s << "StdVideoH264SpsVuiFlags = {\n";
18397	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
18398	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
18399	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
18400	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
18401	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
18402	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
18403	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
18404	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
18405	s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
18406	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
18407	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
18408	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
18409	s << '}';
18410	return s;
18411}
18412
18413std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
18414{
18415	s << "StdVideoH264HrdParameters = {\n";
18416	s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
18417	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
18418	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
18419	s << "\treserved1 = " << value.reserved1 << '\n';
18420	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';
18421	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';
18422	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';
18423	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
18424	s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
18425	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
18426	s << "\ttime_offset_length = " << value.time_offset_length << '\n';
18427	s << '}';
18428	return s;
18429}
18430
18431std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
18432{
18433	s << "StdVideoH264SequenceParameterSetVui = {\n";
18434	s << "\tflags = " << value.flags << '\n';
18435	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
18436	s << "\tsar_width = " << value.sar_width << '\n';
18437	s << "\tsar_height = " << value.sar_height << '\n';
18438	s << "\tvideo_format = " << value.video_format << '\n';
18439	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
18440	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
18441	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
18442	s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
18443	s << "\ttime_scale = " << value.time_scale << '\n';
18444	s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
18445	s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
18446	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
18447	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
18448	s << "\treserved1 = " << value.reserved1 << '\n';
18449	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
18450	s << '}';
18451	return s;
18452}
18453
18454std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
18455{
18456	s << "StdVideoH264SpsFlags = {\n";
18457	s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
18458	s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
18459	s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
18460	s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
18461	s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
18462	s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
18463	s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
18464	s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
18465	s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
18466	s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
18467	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
18468	s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
18469	s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
18470	s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
18471	s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
18472	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
18473	s << '}';
18474	return s;
18475}
18476
18477std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
18478{
18479	s << "StdVideoH264ScalingLists = {\n";
18480	s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
18481	s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
18482	s << "\tScalingList4x4 = " << '\n';
18483	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS ; ++i0)
18484		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4[i0]), DE_ARRAY_END(value.ScalingList4x4[i0])) << '\n';
18485	s << "\tScalingList8x8 = " << '\n';
18486	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS ; ++i0)
18487		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8[i0]), DE_ARRAY_END(value.ScalingList8x8[i0])) << '\n';
18488	s << '}';
18489	return s;
18490}
18491
18492std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
18493{
18494	s << "StdVideoH264SequenceParameterSet = {\n";
18495	s << "\tflags = " << value.flags << '\n';
18496	s << "\tprofile_idc = " << value.profile_idc << '\n';
18497	s << "\tlevel_idc = " << value.level_idc << '\n';
18498	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
18499	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
18500	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
18501	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
18502	s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
18503	s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
18504	s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
18505	s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
18506	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
18507	s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
18508	s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
18509	s << "\treserved1 = " << value.reserved1 << '\n';
18510	s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
18511	s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
18512	s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
18513	s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
18514	s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
18515	s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
18516	s << "\treserved2 = " << value.reserved2 << '\n';
18517	s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
18518	s << "\tpScalingLists = " << value.pScalingLists << '\n';
18519	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
18520	s << '}';
18521	return s;
18522}
18523
18524std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
18525{
18526	s << "StdVideoH264PpsFlags = {\n";
18527	s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
18528	s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
18529	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
18530	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
18531	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
18532	s << "\tbottom_field_pic_order_in_frame_present_flag = " << value.bottom_field_pic_order_in_frame_present_flag << '\n';
18533	s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
18534	s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
18535	s << '}';
18536	return s;
18537}
18538
18539std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
18540{
18541	s << "StdVideoH264PictureParameterSet = {\n";
18542	s << "\tflags = " << value.flags << '\n';
18543	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
18544	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
18545	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
18546	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
18547	s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
18548	s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
18549	s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
18550	s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
18551	s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
18552	s << "\tpScalingLists = " << value.pScalingLists << '\n';
18553	s << '}';
18554	return s;
18555}
18556
18557std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
18558{
18559	s << "StdVideoDecodeH264PictureInfoFlags = {\n";
18560	s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
18561	s << "\tis_intra = " << value.is_intra << '\n';
18562	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
18563	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
18564	s << "\tis_reference = " << value.is_reference << '\n';
18565	s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
18566	s << '}';
18567	return s;
18568}
18569
18570std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
18571{
18572	s << "StdVideoDecodeH264PictureInfo = {\n";
18573	s << "\tflags = " << value.flags << '\n';
18574	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
18575	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
18576	s << "\treserved1 = " << value.reserved1 << '\n';
18577	s << "\treserved2 = " << value.reserved2 << '\n';
18578	s << "\tframe_num = " << value.frame_num << '\n';
18579	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
18580	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
18581	s << '}';
18582	return s;
18583}
18584
18585std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
18586{
18587	s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
18588	s << "\ttop_field_flag = " << value.top_field_flag << '\n';
18589	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
18590	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
18591	s << "\tis_non_existing = " << value.is_non_existing << '\n';
18592	s << '}';
18593	return s;
18594}
18595
18596std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
18597{
18598	s << "StdVideoDecodeH264ReferenceInfo = {\n";
18599	s << "\tflags = " << value.flags << '\n';
18600	s << "\tFrameNum = " << value.FrameNum << '\n';
18601	s << "\treserved = " << value.reserved << '\n';
18602	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
18603	s << '}';
18604	return s;
18605}
18606
18607std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
18608{
18609	s << "StdVideoEncodeH264WeightTableFlags = {\n";
18610	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
18611	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
18612	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
18613	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
18614	s << '}';
18615	return s;
18616}
18617
18618std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
18619{
18620	s << "StdVideoEncodeH264WeightTable = {\n";
18621	s << "\tflags = " << value.flags << '\n';
18622	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
18623	s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
18624	s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
18625	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
18626	s << "\tchroma_weight_l0 = " << '\n';
18627	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
18628		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0[i0]), DE_ARRAY_END(value.chroma_weight_l0[i0])) << '\n';
18629	s << "\tchroma_offset_l0 = " << '\n';
18630	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
18631		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0[i0]), DE_ARRAY_END(value.chroma_offset_l0[i0])) << '\n';
18632	s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
18633	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
18634	s << "\tchroma_weight_l1 = " << '\n';
18635	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
18636		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1[i0]), DE_ARRAY_END(value.chroma_weight_l1[i0])) << '\n';
18637	s << "\tchroma_offset_l1 = " << '\n';
18638	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
18639		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1[i0]), DE_ARRAY_END(value.chroma_offset_l1[i0])) << '\n';
18640	s << '}';
18641	return s;
18642}
18643
18644std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
18645{
18646	s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
18647	s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
18648	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
18649	s << "\treserved = " << value.reserved << '\n';
18650	s << '}';
18651	return s;
18652}
18653
18654std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
18655{
18656	s << "StdVideoEncodeH264PictureInfoFlags = {\n";
18657	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
18658	s << "\tis_reference = " << value.is_reference << '\n';
18659	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
18660	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
18661	s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
18662	s << "\treserved = " << value.reserved << '\n';
18663	s << '}';
18664	return s;
18665}
18666
18667std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
18668{
18669	s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
18670	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
18671	s << "\treserved = " << value.reserved << '\n';
18672	s << '}';
18673	return s;
18674}
18675
18676std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceListsInfoFlags& value)
18677{
18678	s << "StdVideoEncodeH264ReferenceListsInfoFlags = {\n";
18679	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
18680	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
18681	s << "\treserved = " << value.reserved << '\n';
18682	s << '}';
18683	return s;
18684}
18685
18686std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
18687{
18688	s << "StdVideoEncodeH264RefListModEntry = {\n";
18689	s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
18690	s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
18691	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
18692	s << '}';
18693	return s;
18694}
18695
18696std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
18697{
18698	s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
18699	s << "\tmemory_management_control_operation = " << value.memory_management_control_operation << '\n';
18700	s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
18701	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
18702	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
18703	s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
18704	s << '}';
18705	return s;
18706}
18707
18708std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceListsInfo& value)
18709{
18710	s << "StdVideoEncodeH264ReferenceListsInfo = {\n";
18711	s << "\tflags = " << value.flags << '\n';
18712	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
18713	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
18714	s << "\tRefPicList0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList0))) << '\n';
18715	s << "\tRefPicList1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList1))) << '\n';
18716	s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
18717	s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
18718	s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
18719	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
18720	s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
18721	s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
18722	s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
18723	s << '}';
18724	return s;
18725}
18726
18727std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
18728{
18729	s << "StdVideoEncodeH264PictureInfo = {\n";
18730	s << "\tflags = " << value.flags << '\n';
18731	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
18732	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
18733	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
18734	s << "\tprimary_pic_type = " << value.primary_pic_type << '\n';
18735	s << "\tframe_num = " << value.frame_num << '\n';
18736	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
18737	s << "\ttemporal_id = " << value.temporal_id << '\n';
18738	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
18739	s << "\tpRefLists = " << value.pRefLists << '\n';
18740	s << '}';
18741	return s;
18742}
18743
18744std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
18745{
18746	s << "StdVideoEncodeH264ReferenceInfo = {\n";
18747	s << "\tflags = " << value.flags << '\n';
18748	s << "\tprimary_pic_type = " << value.primary_pic_type << '\n';
18749	s << "\tFrameNum = " << value.FrameNum << '\n';
18750	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
18751	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
18752	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
18753	s << "\ttemporal_id = " << value.temporal_id << '\n';
18754	s << '}';
18755	return s;
18756}
18757
18758std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
18759{
18760	s << "StdVideoEncodeH264SliceHeader = {\n";
18761	s << "\tflags = " << value.flags << '\n';
18762	s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
18763	s << "\tslice_type = " << value.slice_type << '\n';
18764	s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
18765	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
18766	s << "\tslice_qp_delta = " << value.slice_qp_delta << '\n';
18767	s << "\treserved1 = " << value.reserved1 << '\n';
18768	s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
18769	s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
18770	s << "\tpWeightTable = " << value.pWeightTable << '\n';
18771	s << '}';
18772	return s;
18773}
18774
18775std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevelFlags& value)
18776{
18777	s << "StdVideoH265ProfileTierLevelFlags = {\n";
18778	s << "\tgeneral_tier_flag = " << value.general_tier_flag << '\n';
18779	s << "\tgeneral_progressive_source_flag = " << value.general_progressive_source_flag << '\n';
18780	s << "\tgeneral_interlaced_source_flag = " << value.general_interlaced_source_flag << '\n';
18781	s << "\tgeneral_non_packed_constraint_flag = " << value.general_non_packed_constraint_flag << '\n';
18782	s << "\tgeneral_frame_only_constraint_flag = " << value.general_frame_only_constraint_flag << '\n';
18783	s << '}';
18784	return s;
18785}
18786
18787std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevel& value)
18788{
18789	s << "StdVideoH265ProfileTierLevel = {\n";
18790	s << "\tflags = " << value.flags << '\n';
18791	s << "\tgeneral_profile_idc = " << value.general_profile_idc << '\n';
18792	s << "\tgeneral_level_idc = " << value.general_level_idc << '\n';
18793	s << '}';
18794	return s;
18795}
18796
18797std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
18798{
18799	s << "StdVideoH265DecPicBufMgr = {\n";
18800	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';
18801	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';
18802	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';
18803	s << '}';
18804	return s;
18805}
18806
18807std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
18808{
18809	s << "StdVideoH265SubLayerHrdParameters = {\n";
18810	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';
18811	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';
18812	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';
18813	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';
18814	s << "\tcbr_flag = " << value.cbr_flag << '\n';
18815	s << '}';
18816	return s;
18817}
18818
18819std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
18820{
18821	s << "StdVideoH265HrdFlags = {\n";
18822	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
18823	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
18824	s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
18825	s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
18826	s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
18827	s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
18828	s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
18829	s << '}';
18830	return s;
18831}
18832
18833std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
18834{
18835	s << "StdVideoH265HrdParameters = {\n";
18836	s << "\tflags = " << value.flags << '\n';
18837	s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
18838	s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
18839	s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
18840	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
18841	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
18842	s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
18843	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
18844	s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
18845	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
18846	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';
18847	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';
18848	s << "\treserved = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.reserved), DE_ARRAY_END(value.reserved)) << '\n';
18849	s << "\tpSubLayerHrdParametersNal = " << value.pSubLayerHrdParametersNal << '\n';
18850	s << "\tpSubLayerHrdParametersVcl = " << value.pSubLayerHrdParametersVcl << '\n';
18851	s << '}';
18852	return s;
18853}
18854
18855std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
18856{
18857	s << "StdVideoH265VpsFlags = {\n";
18858	s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
18859	s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
18860	s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
18861	s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
18862	s << '}';
18863	return s;
18864}
18865
18866std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
18867{
18868	s << "StdVideoH265VideoParameterSet = {\n";
18869	s << "\tflags = " << value.flags << '\n';
18870	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
18871	s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
18872	s << "\treserved1 = " << value.reserved1 << '\n';
18873	s << "\treserved2 = " << value.reserved2 << '\n';
18874	s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
18875	s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
18876	s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
18877	s << "\treserved3 = " << value.reserved3 << '\n';
18878	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
18879	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
18880	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
18881	s << '}';
18882	return s;
18883}
18884
18885std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
18886{
18887	s << "StdVideoH265ScalingLists = {\n";
18888	s << "\tScalingList4x4 = " << '\n';
18889	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS ; ++i0)
18890		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4[i0]), DE_ARRAY_END(value.ScalingList4x4[i0])) << '\n';
18891	s << "\tScalingList8x8 = " << '\n';
18892	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS ; ++i0)
18893		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8[i0]), DE_ARRAY_END(value.ScalingList8x8[i0])) << '\n';
18894	s << "\tScalingList16x16 = " << '\n';
18895	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS ; ++i0)
18896		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16[i0]), DE_ARRAY_END(value.ScalingList16x16[i0])) << '\n';
18897	s << "\tScalingList32x32 = " << '\n';
18898	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS ; ++i0)
18899		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32[i0]), DE_ARRAY_END(value.ScalingList32x32[i0])) << '\n';
18900	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';
18901	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';
18902	s << '}';
18903	return s;
18904}
18905
18906std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSetFlags& value)
18907{
18908	s << "StdVideoH265ShortTermRefPicSetFlags = {\n";
18909	s << "\tinter_ref_pic_set_prediction_flag = " << value.inter_ref_pic_set_prediction_flag << '\n';
18910	s << "\tdelta_rps_sign = " << value.delta_rps_sign << '\n';
18911	s << '}';
18912	return s;
18913}
18914
18915std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSet& value)
18916{
18917	s << "StdVideoH265ShortTermRefPicSet = {\n";
18918	s << "\tflags = " << value.flags << '\n';
18919	s << "\tdelta_idx_minus1 = " << value.delta_idx_minus1 << '\n';
18920	s << "\tuse_delta_flag = " << value.use_delta_flag << '\n';
18921	s << "\tabs_delta_rps_minus1 = " << value.abs_delta_rps_minus1 << '\n';
18922	s << "\tused_by_curr_pic_flag = " << value.used_by_curr_pic_flag << '\n';
18923	s << "\tused_by_curr_pic_s0_flag = " << value.used_by_curr_pic_s0_flag << '\n';
18924	s << "\tused_by_curr_pic_s1_flag = " << value.used_by_curr_pic_s1_flag << '\n';
18925	s << "\treserved1 = " << value.reserved1 << '\n';
18926	s << "\treserved2 = " << value.reserved2 << '\n';
18927	s << "\treserved3 = " << value.reserved3 << '\n';
18928	s << "\tnum_negative_pics = " << value.num_negative_pics << '\n';
18929	s << "\tnum_positive_pics = " << value.num_positive_pics << '\n';
18930	s << "\tdelta_poc_s0_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_poc_s0_minus1), DE_ARRAY_END(value.delta_poc_s0_minus1)) << '\n';
18931	s << "\tdelta_poc_s1_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_poc_s1_minus1), DE_ARRAY_END(value.delta_poc_s1_minus1)) << '\n';
18932	s << '}';
18933	return s;
18934}
18935
18936std::ostream& operator<< (std::ostream& s, const StdVideoH265LongTermRefPicsSps& value)
18937{
18938	s << "StdVideoH265LongTermRefPicsSps = {\n";
18939	s << "\tused_by_curr_pic_lt_sps_flag = " << value.used_by_curr_pic_lt_sps_flag << '\n';
18940	s << "\tlt_ref_pic_poc_lsb_sps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lt_ref_pic_poc_lsb_sps), DE_ARRAY_END(value.lt_ref_pic_poc_lsb_sps)) << '\n';
18941	s << '}';
18942	return s;
18943}
18944
18945std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
18946{
18947	s << "StdVideoH265SpsVuiFlags = {\n";
18948	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
18949	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
18950	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
18951	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
18952	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
18953	s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
18954	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
18955	s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
18956	s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
18957	s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
18958	s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
18959	s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
18960	s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
18961	s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
18962	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
18963	s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
18964	s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
18965	s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
18966	s << '}';
18967	return s;
18968}
18969
18970std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
18971{
18972	s << "StdVideoH265SequenceParameterSetVui = {\n";
18973	s << "\tflags = " << value.flags << '\n';
18974	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
18975	s << "\tsar_width = " << value.sar_width << '\n';
18976	s << "\tsar_height = " << value.sar_height << '\n';
18977	s << "\tvideo_format = " << value.video_format << '\n';
18978	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
18979	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
18980	s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
18981	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
18982	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
18983	s << "\treserved1 = " << value.reserved1 << '\n';
18984	s << "\treserved2 = " << value.reserved2 << '\n';
18985	s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
18986	s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
18987	s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
18988	s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
18989	s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
18990	s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
18991	s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
18992	s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
18993	s << "\treserved3 = " << value.reserved3 << '\n';
18994	s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
18995	s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
18996	s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
18997	s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
18998	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
18999	s << '}';
19000	return s;
19001}
19002
19003std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
19004{
19005	s << "StdVideoH265PredictorPaletteEntries = {\n";
19006	s << "\tPredictorPaletteEntries = " << '\n';
19007	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE ; ++i0)
19008		s << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries[i0]), DE_ARRAY_END(value.PredictorPaletteEntries[i0])) << '\n';
19009	s << '}';
19010	return s;
19011}
19012
19013std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
19014{
19015	s << "StdVideoH265SpsFlags = {\n";
19016	s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
19017	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
19018	s << "\tconformance_window_flag = " << value.conformance_window_flag << '\n';
19019	s << "\tsps_sub_layer_ordering_info_present_flag = " << value.sps_sub_layer_ordering_info_present_flag << '\n';
19020	s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
19021	s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
19022	s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
19023	s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
19024	s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
19025	s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
19026	s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
19027	s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
19028	s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
19029	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
19030	s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
19031	s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
19032	s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
19033	s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
19034	s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
19035	s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
19036	s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
19037	s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
19038	s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
19039	s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
19040	s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
19041	s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
19042	s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
19043	s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
19044	s << "\tsps_palette_predictor_initializers_present_flag = " << value.sps_palette_predictor_initializers_present_flag << '\n';
19045	s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
19046	s << '}';
19047	return s;
19048}
19049
19050std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
19051{
19052	s << "StdVideoH265SequenceParameterSet = {\n";
19053	s << "\tflags = " << value.flags << '\n';
19054	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
19055	s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
19056	s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
19057	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
19058	s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
19059	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
19060	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
19061	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
19062	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
19063	s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
19064	s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
19065	s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
19066	s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
19067	s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
19068	s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
19069	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
19070	s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
19071	s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
19072	s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
19073	s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
19074	s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
19075	s << "\treserved1 = " << value.reserved1 << '\n';
19076	s << "\treserved2 = " << value.reserved2 << '\n';
19077	s << "\tpalette_max_size = " << value.palette_max_size << '\n';
19078	s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
19079	s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
19080	s << "\tsps_num_palette_predictor_initializers_minus1 = " << value.sps_num_palette_predictor_initializers_minus1 << '\n';
19081	s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
19082	s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
19083	s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
19084	s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
19085	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
19086	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
19087	s << "\tpScalingLists = " << value.pScalingLists << '\n';
19088	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
19089	s << "\tpLongTermRefPicsSps = " << value.pLongTermRefPicsSps << '\n';
19090	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
19091	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
19092	s << '}';
19093	return s;
19094}
19095
19096std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
19097{
19098	s << "StdVideoH265PpsFlags = {\n";
19099	s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
19100	s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
19101	s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
19102	s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
19103	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
19104	s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
19105	s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
19106	s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
19107	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
19108	s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
19109	s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
19110	s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
19111	s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
19112	s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
19113	s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
19114	s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
19115	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
19116	s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
19117	s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
19118	s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
19119	s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
19120	s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
19121	s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
19122	s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
19123	s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
19124	s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
19125	s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
19126	s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
19127	s << "\tpps_palette_predictor_initializers_present_flag = " << value.pps_palette_predictor_initializers_present_flag << '\n';
19128	s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
19129	s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
19130	s << '}';
19131	return s;
19132}
19133
19134std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
19135{
19136	s << "StdVideoH265PictureParameterSet = {\n";
19137	s << "\tflags = " << value.flags << '\n';
19138	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
19139	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
19140	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
19141	s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
19142	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
19143	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
19144	s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
19145	s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
19146	s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
19147	s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
19148	s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
19149	s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
19150	s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
19151	s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
19152	s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
19153	s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
19154	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';
19155	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';
19156	s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
19157	s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
19158	s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
19159	s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
19160	s << "\tpps_act_cr_qp_offset_plus3 = " << value.pps_act_cr_qp_offset_plus3 << '\n';
19161	s << "\tpps_num_palette_predictor_initializers = " << value.pps_num_palette_predictor_initializers << '\n';
19162	s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
19163	s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
19164	s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
19165	s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
19166	s << "\treserved1 = " << value.reserved1 << '\n';
19167	s << "\treserved2 = " << value.reserved2 << '\n';
19168	s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
19169	s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
19170	s << "\treserved3 = " << value.reserved3 << '\n';
19171	s << "\tpScalingLists = " << value.pScalingLists << '\n';
19172	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
19173	s << '}';
19174	return s;
19175}
19176
19177std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
19178{
19179	s << "StdVideoDecodeH265PictureInfoFlags = {\n";
19180	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
19181	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
19182	s << "\tIsReference = " << value.IsReference << '\n';
19183	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
19184	s << '}';
19185	return s;
19186}
19187
19188std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
19189{
19190	s << "StdVideoDecodeH265PictureInfo = {\n";
19191	s << "\tflags = " << value.flags << '\n';
19192	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
19193	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
19194	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
19195	s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
19196	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
19197	s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
19198	s << "\treserved = " << value.reserved << '\n';
19199	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';
19200	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';
19201	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';
19202	s << '}';
19203	return s;
19204}
19205
19206std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
19207{
19208	s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
19209	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
19210	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
19211	s << '}';
19212	return s;
19213}
19214
19215std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
19216{
19217	s << "StdVideoDecodeH265ReferenceInfo = {\n";
19218	s << "\tflags = " << value.flags << '\n';
19219	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
19220	s << '}';
19221	return s;
19222}
19223
19224std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
19225{
19226	s << "StdVideoEncodeH265WeightTableFlags = {\n";
19227	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
19228	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
19229	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
19230	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
19231	s << '}';
19232	return s;
19233}
19234
19235std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
19236{
19237	s << "StdVideoEncodeH265WeightTable = {\n";
19238	s << "\tflags = " << value.flags << '\n';
19239	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
19240	s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
19241	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';
19242	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
19243	s << "\tdelta_chroma_weight_l0 = " << '\n';
19244	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
19245		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0[i0]), DE_ARRAY_END(value.delta_chroma_weight_l0[i0])) << '\n';
19246	s << "\tdelta_chroma_offset_l0 = " << '\n';
19247	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
19248		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0[i0]), DE_ARRAY_END(value.delta_chroma_offset_l0[i0])) << '\n';
19249	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';
19250	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
19251	s << "\tdelta_chroma_weight_l1 = " << '\n';
19252	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
19253		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1[i0]), DE_ARRAY_END(value.delta_chroma_weight_l1[i0])) << '\n';
19254	s << "\tdelta_chroma_offset_l1 = " << '\n';
19255	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
19256		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1[i0]), DE_ARRAY_END(value.delta_chroma_offset_l1[i0])) << '\n';
19257	s << '}';
19258	return s;
19259}
19260
19261std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265LongTermRefPics& value)
19262{
19263	s << "StdVideoEncodeH265LongTermRefPics = {\n";
19264	s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
19265	s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
19266	s << "\tlt_idx_sps = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.lt_idx_sps)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.lt_idx_sps))) << '\n';
19267	s << "\tpoc_lsb_lt = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.poc_lsb_lt)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.poc_lsb_lt))) << '\n';
19268	s << "\tused_by_curr_pic_lt_flag = " << value.used_by_curr_pic_lt_flag << '\n';
19269	s << "\tdelta_poc_msb_present_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.delta_poc_msb_present_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.delta_poc_msb_present_flag))) << '\n';
19270	s << "\tdelta_poc_msb_cycle_lt = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.delta_poc_msb_cycle_lt)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.delta_poc_msb_cycle_lt))) << '\n';
19271	s << '}';
19272	return s;
19273}
19274
19275std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
19276{
19277	s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
19278	s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
19279	s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
19280	s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
19281	s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
19282	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
19283	s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
19284	s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
19285	s << "\tcu_chroma_qp_offset_enabled_flag = " << value.cu_chroma_qp_offset_enabled_flag << '\n';
19286	s << "\tdeblocking_filter_override_flag = " << value.deblocking_filter_override_flag << '\n';
19287	s << "\tslice_deblocking_filter_disabled_flag = " << value.slice_deblocking_filter_disabled_flag << '\n';
19288	s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
19289	s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
19290	s << "\treserved = " << value.reserved << '\n';
19291	s << '}';
19292	return s;
19293}
19294
19295std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
19296{
19297	s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
19298	s << "\tflags = " << value.flags << '\n';
19299	s << "\tslice_type = " << value.slice_type << '\n';
19300	s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
19301	s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
19302	s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
19303	s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
19304	s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
19305	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
19306	s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
19307	s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
19308	s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
19309	s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
19310	s << "\tslice_qp_delta = " << value.slice_qp_delta << '\n';
19311	s << "\treserved1 = " << value.reserved1 << '\n';
19312	s << "\tpWeightTable = " << value.pWeightTable << '\n';
19313	s << '}';
19314	return s;
19315}
19316
19317std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceListsInfoFlags& value)
19318{
19319	s << "StdVideoEncodeH265ReferenceListsInfoFlags = {\n";
19320	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
19321	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
19322	s << "\treserved = " << value.reserved << '\n';
19323	s << '}';
19324	return s;
19325}
19326
19327std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceListsInfo& value)
19328{
19329	s << "StdVideoEncodeH265ReferenceListsInfo = {\n";
19330	s << "\tflags = " << value.flags << '\n';
19331	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
19332	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
19333	s << "\tRefPicList0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList0))) << '\n';
19334	s << "\tRefPicList1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList1))) << '\n';
19335	s << "\tlist_entry_l0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.list_entry_l0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.list_entry_l0))) << '\n';
19336	s << "\tlist_entry_l1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.list_entry_l1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.list_entry_l1))) << '\n';
19337	s << '}';
19338	return s;
19339}
19340
19341std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
19342{
19343	s << "StdVideoEncodeH265PictureInfoFlags = {\n";
19344	s << "\tis_reference = " << value.is_reference << '\n';
19345	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
19346	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
19347	s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
19348	s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
19349	s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
19350	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
19351	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
19352	s << "\tslice_temporal_mvp_enabled_flag = " << value.slice_temporal_mvp_enabled_flag << '\n';
19353	s << "\treserved = " << value.reserved << '\n';
19354	s << '}';
19355	return s;
19356}
19357
19358std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
19359{
19360	s << "StdVideoEncodeH265PictureInfo = {\n";
19361	s << "\tflags = " << value.flags << '\n';
19362	s << "\tpic_type = " << value.pic_type << '\n';
19363	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
19364	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
19365	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
19366	s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
19367	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
19368	s << "\tTemporalId = " << value.TemporalId << '\n';
19369	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
19370	s << "\tpRefLists = " << value.pRefLists << '\n';
19371	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
19372	s << "\tpLongTermRefPics = " << value.pLongTermRefPics << '\n';
19373	s << '}';
19374	return s;
19375}
19376
19377std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
19378{
19379	s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
19380	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
19381	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
19382	s << "\treserved = " << value.reserved << '\n';
19383	s << '}';
19384	return s;
19385}
19386
19387std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
19388{
19389	s << "StdVideoEncodeH265ReferenceInfo = {\n";
19390	s << "\tflags = " << value.flags << '\n';
19391	s << "\tpic_type = " << value.pic_type << '\n';
19392	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
19393	s << "\tTemporalId = " << value.TemporalId << '\n';
19394	s << '}';
19395	return s;
19396}
19397
19398std::ostream& operator<< (std::ostream& s, const StdVideoAV1ColorConfigFlags& value)
19399{
19400	s << "StdVideoAV1ColorConfigFlags = {\n";
19401	s << "\tmono_chrome = " << value.mono_chrome << '\n';
19402	s << "\tcolor_range = " << value.color_range << '\n';
19403	s << "\tseparate_uv_delta_q = " << value.separate_uv_delta_q << '\n';
19404	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
19405	s << "\treserved = " << value.reserved << '\n';
19406	s << '}';
19407	return s;
19408}
19409
19410std::ostream& operator<< (std::ostream& s, const StdVideoAV1ColorConfig& value)
19411{
19412	s << "StdVideoAV1ColorConfig = {\n";
19413	s << "\tflags = " << value.flags << '\n';
19414	s << "\tBitDepth = " << value.BitDepth << '\n';
19415	s << "\tsubsampling_x = " << value.subsampling_x << '\n';
19416	s << "\tsubsampling_y = " << value.subsampling_y << '\n';
19417	s << "\treserved1 = " << value.reserved1 << '\n';
19418	s << "\tcolor_primaries = " << value.color_primaries << '\n';
19419	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
19420	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
19421	s << "\tchroma_sample_position = " << value.chroma_sample_position << '\n';
19422	s << '}';
19423	return s;
19424}
19425
19426std::ostream& operator<< (std::ostream& s, const StdVideoAV1TimingInfoFlags& value)
19427{
19428	s << "StdVideoAV1TimingInfoFlags = {\n";
19429	s << "\tequal_picture_interval = " << value.equal_picture_interval << '\n';
19430	s << "\treserved = " << value.reserved << '\n';
19431	s << '}';
19432	return s;
19433}
19434
19435std::ostream& operator<< (std::ostream& s, const StdVideoAV1TimingInfo& value)
19436{
19437	s << "StdVideoAV1TimingInfo = {\n";
19438	s << "\tflags = " << value.flags << '\n';
19439	s << "\tnum_units_in_display_tick = " << value.num_units_in_display_tick << '\n';
19440	s << "\ttime_scale = " << value.time_scale << '\n';
19441	s << "\tnum_ticks_per_picture_minus_1 = " << value.num_ticks_per_picture_minus_1 << '\n';
19442	s << '}';
19443	return s;
19444}
19445
19446std::ostream& operator<< (std::ostream& s, const StdVideoAV1SequenceHeaderFlags& value)
19447{
19448	s << "StdVideoAV1SequenceHeaderFlags = {\n";
19449	s << "\tstill_picture = " << value.still_picture << '\n';
19450	s << "\treduced_still_picture_header = " << value.reduced_still_picture_header << '\n';
19451	s << "\tuse_128x128_superblock = " << value.use_128x128_superblock << '\n';
19452	s << "\tenable_filter_intra = " << value.enable_filter_intra << '\n';
19453	s << "\tenable_intra_edge_filter = " << value.enable_intra_edge_filter << '\n';
19454	s << "\tenable_interintra_compound = " << value.enable_interintra_compound << '\n';
19455	s << "\tenable_masked_compound = " << value.enable_masked_compound << '\n';
19456	s << "\tenable_warped_motion = " << value.enable_warped_motion << '\n';
19457	s << "\tenable_dual_filter = " << value.enable_dual_filter << '\n';
19458	s << "\tenable_order_hint = " << value.enable_order_hint << '\n';
19459	s << "\tenable_jnt_comp = " << value.enable_jnt_comp << '\n';
19460	s << "\tenable_ref_frame_mvs = " << value.enable_ref_frame_mvs << '\n';
19461	s << "\tframe_id_numbers_present_flag = " << value.frame_id_numbers_present_flag << '\n';
19462	s << "\tenable_superres = " << value.enable_superres << '\n';
19463	s << "\tenable_cdef = " << value.enable_cdef << '\n';
19464	s << "\tenable_restoration = " << value.enable_restoration << '\n';
19465	s << "\tfilm_grain_params_present = " << value.film_grain_params_present << '\n';
19466	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
19467	s << "\tinitial_display_delay_present_flag = " << value.initial_display_delay_present_flag << '\n';
19468	s << "\treserved = " << value.reserved << '\n';
19469	s << '}';
19470	return s;
19471}
19472
19473std::ostream& operator<< (std::ostream& s, const StdVideoAV1SequenceHeader& value)
19474{
19475	s << "StdVideoAV1SequenceHeader = {\n";
19476	s << "\tflags = " << value.flags << '\n';
19477	s << "\tseq_profile = " << value.seq_profile << '\n';
19478	s << "\tframe_width_bits_minus_1 = " << value.frame_width_bits_minus_1 << '\n';
19479	s << "\tframe_height_bits_minus_1 = " << value.frame_height_bits_minus_1 << '\n';
19480	s << "\tmax_frame_width_minus_1 = " << value.max_frame_width_minus_1 << '\n';
19481	s << "\tmax_frame_height_minus_1 = " << value.max_frame_height_minus_1 << '\n';
19482	s << "\tdelta_frame_id_length_minus_2 = " << value.delta_frame_id_length_minus_2 << '\n';
19483	s << "\tadditional_frame_id_length_minus_1 = " << value.additional_frame_id_length_minus_1 << '\n';
19484	s << "\torder_hint_bits_minus_1 = " << value.order_hint_bits_minus_1 << '\n';
19485	s << "\tseq_force_integer_mv = " << value.seq_force_integer_mv << '\n';
19486	s << "\tseq_force_screen_content_tools = " << value.seq_force_screen_content_tools << '\n';
19487	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
19488	s << "\tpColorConfig = " << value.pColorConfig << '\n';
19489	s << "\tpTimingInfo = " << value.pTimingInfo << '\n';
19490	s << '}';
19491	return s;
19492}
19493
19494std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopFilterFlags& value)
19495{
19496	s << "StdVideoAV1LoopFilterFlags = {\n";
19497	s << "\tloop_filter_delta_enabled = " << value.loop_filter_delta_enabled << '\n';
19498	s << "\tloop_filter_delta_update = " << value.loop_filter_delta_update << '\n';
19499	s << "\treserved = " << value.reserved << '\n';
19500	s << '}';
19501	return s;
19502}
19503
19504std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopFilter& value)
19505{
19506	s << "StdVideoAV1LoopFilter = {\n";
19507	s << "\tflags = " << value.flags << '\n';
19508	s << "\tloop_filter_level = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.loop_filter_level)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.loop_filter_level))) << '\n';
19509	s << "\tloop_filter_sharpness = " << value.loop_filter_sharpness << '\n';
19510	s << "\tupdate_ref_delta = " << value.update_ref_delta << '\n';
19511	s << "\tloop_filter_ref_deltas = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.loop_filter_ref_deltas), DE_ARRAY_END(value.loop_filter_ref_deltas)) << '\n';
19512	s << "\tupdate_mode_delta = " << value.update_mode_delta << '\n';
19513	s << "\tloop_filter_mode_deltas = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.loop_filter_mode_deltas), DE_ARRAY_END(value.loop_filter_mode_deltas)) << '\n';
19514	s << '}';
19515	return s;
19516}
19517
19518std::ostream& operator<< (std::ostream& s, const StdVideoAV1QuantizationFlags& value)
19519{
19520	s << "StdVideoAV1QuantizationFlags = {\n";
19521	s << "\tusing_qmatrix = " << value.using_qmatrix << '\n';
19522	s << "\tdiff_uv_delta = " << value.diff_uv_delta << '\n';
19523	s << "\treserved = " << value.reserved << '\n';
19524	s << '}';
19525	return s;
19526}
19527
19528std::ostream& operator<< (std::ostream& s, const StdVideoAV1Quantization& value)
19529{
19530	s << "StdVideoAV1Quantization = {\n";
19531	s << "\tflags = " << value.flags << '\n';
19532	s << "\tbase_q_idx = " << value.base_q_idx << '\n';
19533	s << "\tDeltaQYDc = " << value.DeltaQYDc << '\n';
19534	s << "\tDeltaQUDc = " << value.DeltaQUDc << '\n';
19535	s << "\tDeltaQUAc = " << value.DeltaQUAc << '\n';
19536	s << "\tDeltaQVDc = " << value.DeltaQVDc << '\n';
19537	s << "\tDeltaQVAc = " << value.DeltaQVAc << '\n';
19538	s << "\tqm_y = " << value.qm_y << '\n';
19539	s << "\tqm_u = " << value.qm_u << '\n';
19540	s << "\tqm_v = " << value.qm_v << '\n';
19541	s << '}';
19542	return s;
19543}
19544
19545std::ostream& operator<< (std::ostream& s, const StdVideoAV1Segmentation& value)
19546{
19547	s << "StdVideoAV1Segmentation = {\n";
19548	s << "\tFeatureEnabled = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.FeatureEnabled)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.FeatureEnabled))) << '\n';
19549	s << "\tFeatureData = " << '\n';
19550	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_AV1_MAX_SEGMENTS ; ++i0)
19551		s << tcu::formatArray(DE_ARRAY_BEGIN(value.FeatureData[i0]), DE_ARRAY_END(value.FeatureData[i0])) << '\n';
19552	s << '}';
19553	return s;
19554}
19555
19556std::ostream& operator<< (std::ostream& s, const StdVideoAV1TileInfoFlags& value)
19557{
19558	s << "StdVideoAV1TileInfoFlags = {\n";
19559	s << "\tuniform_tile_spacing_flag = " << value.uniform_tile_spacing_flag << '\n';
19560	s << "\treserved = " << value.reserved << '\n';
19561	s << '}';
19562	return s;
19563}
19564
19565std::ostream& operator<< (std::ostream& s, const StdVideoAV1TileInfo& value)
19566{
19567	s << "StdVideoAV1TileInfo = {\n";
19568	s << "\tflags = " << value.flags << '\n';
19569	s << "\tTileCols = " << value.TileCols << '\n';
19570	s << "\tTileRows = " << value.TileRows << '\n';
19571	s << "\tcontext_update_tile_id = " << value.context_update_tile_id << '\n';
19572	s << "\ttile_size_bytes_minus_1 = " << value.tile_size_bytes_minus_1 << '\n';
19573	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
19574	s << "\tpMiColStarts = " << value.pMiColStarts << '\n';
19575	s << "\tpMiRowStarts = " << value.pMiRowStarts << '\n';
19576	s << "\tpWidthInSbsMinus1 = " << value.pWidthInSbsMinus1 << '\n';
19577	s << "\tpHeightInSbsMinus1 = " << value.pHeightInSbsMinus1 << '\n';
19578	s << '}';
19579	return s;
19580}
19581
19582std::ostream& operator<< (std::ostream& s, const StdVideoAV1CDEF& value)
19583{
19584	s << "StdVideoAV1CDEF = {\n";
19585	s << "\tcdef_damping_minus_3 = " << value.cdef_damping_minus_3 << '\n';
19586	s << "\tcdef_bits = " << value.cdef_bits << '\n';
19587	s << "\tcdef_y_pri_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_y_pri_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_y_pri_strength))) << '\n';
19588	s << "\tcdef_y_sec_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_y_sec_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_y_sec_strength))) << '\n';
19589	s << "\tcdef_uv_pri_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_uv_pri_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_uv_pri_strength))) << '\n';
19590	s << "\tcdef_uv_sec_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_uv_sec_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_uv_sec_strength))) << '\n';
19591	s << '}';
19592	return s;
19593}
19594
19595std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopRestoration& value)
19596{
19597	s << "StdVideoAV1LoopRestoration = {\n";
19598	s << "\tFrameRestorationType = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.FrameRestorationType), DE_ARRAY_END(value.FrameRestorationType)) << '\n';
19599	s << "\tLoopRestorationSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.LoopRestorationSize), DE_ARRAY_END(value.LoopRestorationSize)) << '\n';
19600	s << '}';
19601	return s;
19602}
19603
19604std::ostream& operator<< (std::ostream& s, const StdVideoAV1GlobalMotion& value)
19605{
19606	s << "StdVideoAV1GlobalMotion = {\n";
19607	s << "\tGmType = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.GmType)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.GmType))) << '\n';
19608	s << "\tgm_params = " << '\n';
19609	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_AV1_NUM_REF_FRAMES ; ++i0)
19610		s << tcu::formatArray(DE_ARRAY_BEGIN(value.gm_params[i0]), DE_ARRAY_END(value.gm_params[i0])) << '\n';
19611	s << '}';
19612	return s;
19613}
19614
19615std::ostream& operator<< (std::ostream& s, const StdVideoAV1FilmGrainFlags& value)
19616{
19617	s << "StdVideoAV1FilmGrainFlags = {\n";
19618	s << "\tchroma_scaling_from_luma = " << value.chroma_scaling_from_luma << '\n';
19619	s << "\toverlap_flag = " << value.overlap_flag << '\n';
19620	s << "\tclip_to_restricted_range = " << value.clip_to_restricted_range << '\n';
19621	s << "\tupdate_grain = " << value.update_grain << '\n';
19622	s << "\treserved = " << value.reserved << '\n';
19623	s << '}';
19624	return s;
19625}
19626
19627std::ostream& operator<< (std::ostream& s, const StdVideoAV1FilmGrain& value)
19628{
19629	s << "StdVideoAV1FilmGrain = {\n";
19630	s << "\tflags = " << value.flags << '\n';
19631	s << "\tgrain_scaling_minus_8 = " << value.grain_scaling_minus_8 << '\n';
19632	s << "\tar_coeff_lag = " << value.ar_coeff_lag << '\n';
19633	s << "\tar_coeff_shift_minus_6 = " << value.ar_coeff_shift_minus_6 << '\n';
19634	s << "\tgrain_scale_shift = " << value.grain_scale_shift << '\n';
19635	s << "\tgrain_seed = " << value.grain_seed << '\n';
19636	s << "\tfilm_grain_params_ref_idx = " << value.film_grain_params_ref_idx << '\n';
19637	s << "\tnum_y_points = " << value.num_y_points << '\n';
19638	s << "\tpoint_y_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_y_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_y_value))) << '\n';
19639	s << "\tpoint_y_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_y_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_y_scaling))) << '\n';
19640	s << "\tnum_cb_points = " << value.num_cb_points << '\n';
19641	s << "\tpoint_cb_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cb_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cb_value))) << '\n';
19642	s << "\tpoint_cb_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cb_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cb_scaling))) << '\n';
19643	s << "\tnum_cr_points = " << value.num_cr_points << '\n';
19644	s << "\tpoint_cr_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cr_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cr_value))) << '\n';
19645	s << "\tpoint_cr_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cr_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cr_scaling))) << '\n';
19646	s << "\tar_coeffs_y_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_y_plus_128), DE_ARRAY_END(value.ar_coeffs_y_plus_128)) << '\n';
19647	s << "\tar_coeffs_cb_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_cb_plus_128), DE_ARRAY_END(value.ar_coeffs_cb_plus_128)) << '\n';
19648	s << "\tar_coeffs_cr_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_cr_plus_128), DE_ARRAY_END(value.ar_coeffs_cr_plus_128)) << '\n';
19649	s << "\tcb_mult = " << value.cb_mult << '\n';
19650	s << "\tcb_luma_mult = " << value.cb_luma_mult << '\n';
19651	s << "\tcb_offset = " << value.cb_offset << '\n';
19652	s << "\tcr_mult = " << value.cr_mult << '\n';
19653	s << "\tcr_luma_mult = " << value.cr_luma_mult << '\n';
19654	s << "\tcr_offset = " << value.cr_offset << '\n';
19655	s << '}';
19656	return s;
19657}
19658
19659std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1PictureInfoFlags& value)
19660{
19661	s << "StdVideoDecodeAV1PictureInfoFlags = {\n";
19662	s << "\terror_resilient_mode = " << value.error_resilient_mode << '\n';
19663	s << "\tdisable_cdf_update = " << value.disable_cdf_update << '\n';
19664	s << "\tuse_superres = " << value.use_superres << '\n';
19665	s << "\trender_and_frame_size_different = " << value.render_and_frame_size_different << '\n';
19666	s << "\tallow_screen_content_tools = " << value.allow_screen_content_tools << '\n';
19667	s << "\tis_filter_switchable = " << value.is_filter_switchable << '\n';
19668	s << "\tforce_integer_mv = " << value.force_integer_mv << '\n';
19669	s << "\tframe_size_override_flag = " << value.frame_size_override_flag << '\n';
19670	s << "\tbuffer_removal_time_present_flag = " << value.buffer_removal_time_present_flag << '\n';
19671	s << "\tallow_intrabc = " << value.allow_intrabc << '\n';
19672	s << "\tframe_refs_short_signaling = " << value.frame_refs_short_signaling << '\n';
19673	s << "\tallow_high_precision_mv = " << value.allow_high_precision_mv << '\n';
19674	s << "\tis_motion_mode_switchable = " << value.is_motion_mode_switchable << '\n';
19675	s << "\tuse_ref_frame_mvs = " << value.use_ref_frame_mvs << '\n';
19676	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
19677	s << "\tallow_warped_motion = " << value.allow_warped_motion << '\n';
19678	s << "\treduced_tx_set = " << value.reduced_tx_set << '\n';
19679	s << "\treference_select = " << value.reference_select << '\n';
19680	s << "\tskip_mode_present = " << value.skip_mode_present << '\n';
19681	s << "\tdelta_q_present = " << value.delta_q_present << '\n';
19682	s << "\tdelta_lf_present = " << value.delta_lf_present << '\n';
19683	s << "\tdelta_lf_multi = " << value.delta_lf_multi << '\n';
19684	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
19685	s << "\tsegmentation_update_map = " << value.segmentation_update_map << '\n';
19686	s << "\tsegmentation_temporal_update = " << value.segmentation_temporal_update << '\n';
19687	s << "\tsegmentation_update_data = " << value.segmentation_update_data << '\n';
19688	s << "\tUsesLr = " << value.UsesLr << '\n';
19689	s << "\tusesChromaLr = " << value.usesChromaLr << '\n';
19690	s << "\tapply_grain = " << value.apply_grain << '\n';
19691	s << "\treserved = " << value.reserved << '\n';
19692	s << '}';
19693	return s;
19694}
19695
19696std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1PictureInfo& value)
19697{
19698	s << "StdVideoDecodeAV1PictureInfo = {\n";
19699	s << "\tflags = " << value.flags << '\n';
19700	s << "\tframe_type = " << value.frame_type << '\n';
19701	s << "\tcurrent_frame_id = " << value.current_frame_id << '\n';
19702	s << "\tOrderHint = " << value.OrderHint << '\n';
19703	s << "\tprimary_ref_frame = " << value.primary_ref_frame << '\n';
19704	s << "\trefresh_frame_flags = " << value.refresh_frame_flags << '\n';
19705	s << "\treserved1 = " << value.reserved1 << '\n';
19706	s << "\tinterpolation_filter = " << value.interpolation_filter << '\n';
19707	s << "\tTxMode = " << value.TxMode << '\n';
19708	s << "\tdelta_q_res = " << value.delta_q_res << '\n';
19709	s << "\tdelta_lf_res = " << value.delta_lf_res << '\n';
19710	s << "\tSkipModeFrame = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.SkipModeFrame)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.SkipModeFrame))) << '\n';
19711	s << "\tcoded_denom = " << value.coded_denom << '\n';
19712	s << "\treserved2 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved2)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved2))) << '\n';
19713	s << "\tOrderHints = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.OrderHints)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.OrderHints))) << '\n';
19714	s << "\texpectedFrameId = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.expectedFrameId), DE_ARRAY_END(value.expectedFrameId)) << '\n';
19715	s << "\tpTileInfo = " << value.pTileInfo << '\n';
19716	s << "\tpQuantization = " << value.pQuantization << '\n';
19717	s << "\tpSegmentation = " << value.pSegmentation << '\n';
19718	s << "\tpLoopFilter = " << value.pLoopFilter << '\n';
19719	s << "\tpCDEF = " << value.pCDEF << '\n';
19720	s << "\tpLoopRestoration = " << value.pLoopRestoration << '\n';
19721	s << "\tpGlobalMotion = " << value.pGlobalMotion << '\n';
19722	s << "\tpFilmGrain = " << value.pFilmGrain << '\n';
19723	s << '}';
19724	return s;
19725}
19726
19727std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1ReferenceInfoFlags& value)
19728{
19729	s << "StdVideoDecodeAV1ReferenceInfoFlags = {\n";
19730	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
19731	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
19732	s << "\treserved = " << value.reserved << '\n';
19733	s << '}';
19734	return s;
19735}
19736
19737std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1ReferenceInfo& value)
19738{
19739	s << "StdVideoDecodeAV1ReferenceInfo = {\n";
19740	s << "\tflags = " << value.flags << '\n';
19741	s << "\tframe_type = " << value.frame_type << '\n';
19742	s << "\tRefFrameSignBias = " << value.RefFrameSignBias << '\n';
19743	s << "\tOrderHint = " << value.OrderHint << '\n';
19744	s << "\tSavedOrderHints = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.SavedOrderHints)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.SavedOrderHints))) << '\n';
19745	s << '}';
19746	return s;
19747}
19748