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<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
46template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
47template<> const char*	getTypeName<VkSurfaceKHR>						(void) { return "VkSurfaceKHR";						}
48template<> const char*	getTypeName<VkSwapchainKHR>						(void) { return "VkSwapchainKHR";					}
49template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
50template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
51template<> const char*	getTypeName<VkVideoSessionKHR>					(void) { return "VkVideoSessionKHR";				}
52template<> const char*	getTypeName<VkVideoSessionParametersKHR>		(void) { return "VkVideoSessionParametersKHR";		}
53
54namespace pt
55{
56std::ostream& operator<< (std::ostream& s, XlibDisplayPtr				v) { return s << tcu::toHex(v.internal); }
57std::ostream& operator<< (std::ostream& s, XlibWindow					v) { return s << tcu::toHex(v.internal); }
58std::ostream& operator<< (std::ostream& s, XlibVisualID					v) { return s << tcu::toHex(v.internal); }
59std::ostream& operator<< (std::ostream& s, XcbConnectionPtr				v) { return s << tcu::toHex(v.internal); }
60std::ostream& operator<< (std::ostream& s, XcbWindow					v) { return s << tcu::toHex(v.internal); }
61std::ostream& operator<< (std::ostream& s, XcbVisualid					v) { return s << tcu::toHex(v.internal); }
62std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr			v) { return s << tcu::toHex(v.internal); }
63std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr			v) { return s << tcu::toHex(v.internal); }
64std::ostream& operator<< (std::ostream& s, MirConnectionPtr				v) { return s << tcu::toHex(v.internal); }
65std::ostream& operator<< (std::ostream& s, MirSurfacePtr				v) { return s << tcu::toHex(v.internal); }
66std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr		v) { return s << tcu::toHex(v.internal); }
67std::ostream& operator<< (std::ostream& s, Win32InstanceHandle			v) { return s << tcu::toHex(v.internal); }
68std::ostream& operator<< (std::ostream& s, Win32WindowHandle			v) { return s << tcu::toHex(v.internal); }
69std::ostream& operator<< (std::ostream& s, Win32Handle					v) { return s << tcu::toHex(v.internal); }
70std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr	v) { return s << tcu::toHex(v.internal); }
71std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr		v) { return s << tcu::toHex(v.internal); }
72std::ostream& operator<< (std::ostream& s, Win32MonitorHandle			v) { return s << tcu::toHex(v.internal); }
73std::ostream& operator<< (std::ostream& s, Win32LPCWSTR					v) { return s << tcu::toHex(v.internal); }
74std::ostream& operator<< (std::ostream& s, RROutput						v) { return s << tcu::toHex(v.internal); }
75std::ostream& operator<< (std::ostream& s, zx_handle_t					v) { return s << tcu::toHex(v.internal); }
76std::ostream& operator<< (std::ostream& s, GgpFrameToken				v) { return s << tcu::toHex(v.internal); }
77std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor			v) { return s << tcu::toHex(v.internal); }
78std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
79std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr			v) { return s << tcu::toHex(v.internal); }
80std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr			v) { return s << tcu::toHex(v.internal); }
81std::ostream& operator<< (std::ostream& s, OhosNativeWindowPtr			v) { return s << tcu::toHex(v.internal); }
82std::ostream& operator<< (std::ostream& s, MTLDevice_id					v) { return s << tcu::toHex(v.internal); }
83std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id			v) { return s << tcu::toHex(v.internal); }
84std::ostream& operator<< (std::ostream& s, MTLBuffer_id					v) { return s << tcu::toHex(v.internal); }
85std::ostream& operator<< (std::ostream& s, MTLTexture_id				v) { return s << tcu::toHex(v.internal); }
86std::ostream& operator<< (std::ostream& s, IOSurfaceRef					v) { return s << tcu::toHex(v.internal); }
87std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id			v) { return s << tcu::toHex(v.internal); }
88}
89
90const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
91{
92	switch (value)
93	{
94		case VK_ATTACHMENT_LOAD_OP_LOAD:		return "VK_ATTACHMENT_LOAD_OP_LOAD";
95		case VK_ATTACHMENT_LOAD_OP_CLEAR:		return "VK_ATTACHMENT_LOAD_OP_CLEAR";
96		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:	return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
97		case VK_ATTACHMENT_LOAD_OP_NONE_EXT:	return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
98		default:								return DE_NULL;
99	}
100}
101
102const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
103{
104	switch (value)
105	{
106		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
107		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
108		case VK_ATTACHMENT_STORE_OP_NONE:		return "VK_ATTACHMENT_STORE_OP_NONE";
109		default:								return DE_NULL;
110	}
111}
112
113const char* getBlendFactorName (VkBlendFactor value)
114{
115	switch (value)
116	{
117		case VK_BLEND_FACTOR_ZERO:						return "VK_BLEND_FACTOR_ZERO";
118		case VK_BLEND_FACTOR_ONE:						return "VK_BLEND_FACTOR_ONE";
119		case VK_BLEND_FACTOR_SRC_COLOR:					return "VK_BLEND_FACTOR_SRC_COLOR";
120		case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
121		case VK_BLEND_FACTOR_DST_COLOR:					return "VK_BLEND_FACTOR_DST_COLOR";
122		case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
123		case VK_BLEND_FACTOR_SRC_ALPHA:					return "VK_BLEND_FACTOR_SRC_ALPHA";
124		case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
125		case VK_BLEND_FACTOR_DST_ALPHA:					return "VK_BLEND_FACTOR_DST_ALPHA";
126		case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
127		case VK_BLEND_FACTOR_CONSTANT_COLOR:			return "VK_BLEND_FACTOR_CONSTANT_COLOR";
128		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
129		case VK_BLEND_FACTOR_CONSTANT_ALPHA:			return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
130		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
131		case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:		return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
132		case VK_BLEND_FACTOR_SRC1_COLOR:				return "VK_BLEND_FACTOR_SRC1_COLOR";
133		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
134		case VK_BLEND_FACTOR_SRC1_ALPHA:				return "VK_BLEND_FACTOR_SRC1_ALPHA";
135		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
136		default:										return DE_NULL;
137	}
138}
139
140const char* getBlendOpName (VkBlendOp value)
141{
142	switch (value)
143	{
144		case VK_BLEND_OP_ADD:						return "VK_BLEND_OP_ADD";
145		case VK_BLEND_OP_SUBTRACT:					return "VK_BLEND_OP_SUBTRACT";
146		case VK_BLEND_OP_REVERSE_SUBTRACT:			return "VK_BLEND_OP_REVERSE_SUBTRACT";
147		case VK_BLEND_OP_MIN:						return "VK_BLEND_OP_MIN";
148		case VK_BLEND_OP_MAX:						return "VK_BLEND_OP_MAX";
149		case VK_BLEND_OP_ZERO_EXT:					return "VK_BLEND_OP_ZERO_EXT";
150		case VK_BLEND_OP_SRC_EXT:					return "VK_BLEND_OP_SRC_EXT";
151		case VK_BLEND_OP_DST_EXT:					return "VK_BLEND_OP_DST_EXT";
152		case VK_BLEND_OP_SRC_OVER_EXT:				return "VK_BLEND_OP_SRC_OVER_EXT";
153		case VK_BLEND_OP_DST_OVER_EXT:				return "VK_BLEND_OP_DST_OVER_EXT";
154		case VK_BLEND_OP_SRC_IN_EXT:				return "VK_BLEND_OP_SRC_IN_EXT";
155		case VK_BLEND_OP_DST_IN_EXT:				return "VK_BLEND_OP_DST_IN_EXT";
156		case VK_BLEND_OP_SRC_OUT_EXT:				return "VK_BLEND_OP_SRC_OUT_EXT";
157		case VK_BLEND_OP_DST_OUT_EXT:				return "VK_BLEND_OP_DST_OUT_EXT";
158		case VK_BLEND_OP_SRC_ATOP_EXT:				return "VK_BLEND_OP_SRC_ATOP_EXT";
159		case VK_BLEND_OP_DST_ATOP_EXT:				return "VK_BLEND_OP_DST_ATOP_EXT";
160		case VK_BLEND_OP_XOR_EXT:					return "VK_BLEND_OP_XOR_EXT";
161		case VK_BLEND_OP_MULTIPLY_EXT:				return "VK_BLEND_OP_MULTIPLY_EXT";
162		case VK_BLEND_OP_SCREEN_EXT:				return "VK_BLEND_OP_SCREEN_EXT";
163		case VK_BLEND_OP_OVERLAY_EXT:				return "VK_BLEND_OP_OVERLAY_EXT";
164		case VK_BLEND_OP_DARKEN_EXT:				return "VK_BLEND_OP_DARKEN_EXT";
165		case VK_BLEND_OP_LIGHTEN_EXT:				return "VK_BLEND_OP_LIGHTEN_EXT";
166		case VK_BLEND_OP_COLORDODGE_EXT:			return "VK_BLEND_OP_COLORDODGE_EXT";
167		case VK_BLEND_OP_COLORBURN_EXT:				return "VK_BLEND_OP_COLORBURN_EXT";
168		case VK_BLEND_OP_HARDLIGHT_EXT:				return "VK_BLEND_OP_HARDLIGHT_EXT";
169		case VK_BLEND_OP_SOFTLIGHT_EXT:				return "VK_BLEND_OP_SOFTLIGHT_EXT";
170		case VK_BLEND_OP_DIFFERENCE_EXT:			return "VK_BLEND_OP_DIFFERENCE_EXT";
171		case VK_BLEND_OP_EXCLUSION_EXT:				return "VK_BLEND_OP_EXCLUSION_EXT";
172		case VK_BLEND_OP_INVERT_EXT:				return "VK_BLEND_OP_INVERT_EXT";
173		case VK_BLEND_OP_INVERT_RGB_EXT:			return "VK_BLEND_OP_INVERT_RGB_EXT";
174		case VK_BLEND_OP_LINEARDODGE_EXT:			return "VK_BLEND_OP_LINEARDODGE_EXT";
175		case VK_BLEND_OP_LINEARBURN_EXT:			return "VK_BLEND_OP_LINEARBURN_EXT";
176		case VK_BLEND_OP_VIVIDLIGHT_EXT:			return "VK_BLEND_OP_VIVIDLIGHT_EXT";
177		case VK_BLEND_OP_LINEARLIGHT_EXT:			return "VK_BLEND_OP_LINEARLIGHT_EXT";
178		case VK_BLEND_OP_PINLIGHT_EXT:				return "VK_BLEND_OP_PINLIGHT_EXT";
179		case VK_BLEND_OP_HARDMIX_EXT:				return "VK_BLEND_OP_HARDMIX_EXT";
180		case VK_BLEND_OP_HSL_HUE_EXT:				return "VK_BLEND_OP_HSL_HUE_EXT";
181		case VK_BLEND_OP_HSL_SATURATION_EXT:		return "VK_BLEND_OP_HSL_SATURATION_EXT";
182		case VK_BLEND_OP_HSL_COLOR_EXT:				return "VK_BLEND_OP_HSL_COLOR_EXT";
183		case VK_BLEND_OP_HSL_LUMINOSITY_EXT:		return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
184		case VK_BLEND_OP_PLUS_EXT:					return "VK_BLEND_OP_PLUS_EXT";
185		case VK_BLEND_OP_PLUS_CLAMPED_EXT:			return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
186		case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:	return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
187		case VK_BLEND_OP_PLUS_DARKER_EXT:			return "VK_BLEND_OP_PLUS_DARKER_EXT";
188		case VK_BLEND_OP_MINUS_EXT:					return "VK_BLEND_OP_MINUS_EXT";
189		case VK_BLEND_OP_MINUS_CLAMPED_EXT:			return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
190		case VK_BLEND_OP_CONTRAST_EXT:				return "VK_BLEND_OP_CONTRAST_EXT";
191		case VK_BLEND_OP_INVERT_OVG_EXT:			return "VK_BLEND_OP_INVERT_OVG_EXT";
192		case VK_BLEND_OP_RED_EXT:					return "VK_BLEND_OP_RED_EXT";
193		case VK_BLEND_OP_GREEN_EXT:					return "VK_BLEND_OP_GREEN_EXT";
194		case VK_BLEND_OP_BLUE_EXT:					return "VK_BLEND_OP_BLUE_EXT";
195		default:									return DE_NULL;
196	}
197}
198
199const char* getBorderColorName (VkBorderColor value)
200{
201	switch (value)
202	{
203		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
204		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
205		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
206		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
207		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
208		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
209		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
210		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
211		default:										return DE_NULL;
212	}
213}
214
215tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
216{
217	static const tcu::Format::BitDesc s_desc[] =
218	{
219		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,	"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
220	};
221	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
222}
223
224tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
225{
226	static const tcu::Format::BitDesc s_desc[] =
227	{
228		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
229	};
230	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
231}
232
233tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
234{
235	static const tcu::Format::BitDesc s_desc[] =
236	{
237		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,							"VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
238		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,	"VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
239		tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,				"VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
240		tcu::Format::BitDesc(VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
241		tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,					"VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
242	};
243	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
244}
245
246const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
247{
248	switch (value)
249	{
250		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:	return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
251		default:									return DE_NULL;
252	}
253}
254
255tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
256{
257	static const tcu::Format::BitDesc s_desc[] =
258	{
259		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
260	};
261	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
262}
263
264tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
265{
266	static const tcu::Format::BitDesc s_desc[] =
267	{
268		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,	"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
269		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,		"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
270	};
271	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
272}
273
274tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
275{
276	static const tcu::Format::BitDesc s_desc[] =
277	{
278		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
279		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
280		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT"),
281		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
282		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,	"VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"),
283	};
284	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
285}
286
287tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
288{
289	static const tcu::Format::BitDesc s_desc[] =
290	{
291		tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,	"VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
292	};
293	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
294}
295
296tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
297{
298	static const tcu::Format::BitDesc s_desc[] =
299	{
300		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,	"VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
301	};
302	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
303}
304
305tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
306{
307	static const tcu::Format::BitDesc s_desc[] =
308	{
309		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,						"VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
310		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,						"VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
311		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,						"VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
312		tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,							"VK_BUFFER_CREATE_PROTECTED_BIT"),
313		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
314		tcu::Format::BitDesc(VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
315	};
316	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
317}
318
319tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
320{
321	static const tcu::Format::BitDesc s_desc[] =
322	{
323		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
324		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
325		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
326		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
327		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,									"VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
328		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,									"VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
329		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
330		tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
331		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,									"VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
332		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
333		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
334		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
335		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
336		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
337		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
338		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
339		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
340		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
341		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"),
342		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,				"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
343		tcu::Format::BitDesc(VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"),
344		tcu::Format::BitDesc(VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,					"VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"),
345		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,				"VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
346		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,								"VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"),
347		tcu::Format::BitDesc(VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,			"VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"),
348	};
349	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
350}
351
352tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
353{
354	static const tcu::Format::BitDesc s_desc[] =
355	{
356		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,	"VK_COLOR_COMPONENT_R_BIT"),
357		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,	"VK_COLOR_COMPONENT_G_BIT"),
358		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,	"VK_COLOR_COMPONENT_B_BIT"),
359		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,	"VK_COLOR_COMPONENT_A_BIT"),
360	};
361	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
362}
363
364const char* getComponentSwizzleName (VkComponentSwizzle value)
365{
366	switch (value)
367	{
368		case VK_COMPONENT_SWIZZLE_IDENTITY:	return "VK_COMPONENT_SWIZZLE_IDENTITY";
369		case VK_COMPONENT_SWIZZLE_ZERO:		return "VK_COMPONENT_SWIZZLE_ZERO";
370		case VK_COMPONENT_SWIZZLE_ONE:		return "VK_COMPONENT_SWIZZLE_ONE";
371		case VK_COMPONENT_SWIZZLE_R:		return "VK_COMPONENT_SWIZZLE_R";
372		case VK_COMPONENT_SWIZZLE_G:		return "VK_COMPONENT_SWIZZLE_G";
373		case VK_COMPONENT_SWIZZLE_B:		return "VK_COMPONENT_SWIZZLE_B";
374		case VK_COMPONENT_SWIZZLE_A:		return "VK_COMPONENT_SWIZZLE_A";
375		default:							return DE_NULL;
376	}
377}
378
379tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
380{
381	static const tcu::Format::BitDesc s_desc[] =
382	{
383		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,				"VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
384		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,	"VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
385		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,				"VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
386	};
387	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
388}
389
390tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
391{
392	static const tcu::Format::BitDesc s_desc[] =
393	{
394		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
395	};
396	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
397}
398
399tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
400{
401	static const tcu::Format::BitDesc s_desc[] =
402	{
403		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
404	};
405	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
406}
407
408const char* getCommandBufferLevelName (VkCommandBufferLevel value)
409{
410	switch (value)
411	{
412		case VK_COMMAND_BUFFER_LEVEL_PRIMARY:	return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
413		case VK_COMMAND_BUFFER_LEVEL_SECONDARY:	return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
414		default:								return DE_NULL;
415	}
416}
417
418tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
419{
420	static const tcu::Format::BitDesc s_desc[] =
421	{
422		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		"VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
423		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,	"VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
424		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,		"VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
425	};
426	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
427}
428
429const char* getCompareOpName (VkCompareOp value)
430{
431	switch (value)
432	{
433		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
434		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
435		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
436		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
437		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
438		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
439		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
440		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
441		default:								return DE_NULL;
442	}
443}
444
445tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
446{
447	static const tcu::Format::BitDesc s_desc[] =
448	{
449		tcu::Format::BitDesc(VK_CULL_MODE_NONE,				"VK_CULL_MODE_NONE"),
450		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,		"VK_CULL_MODE_FRONT_BIT"),
451		tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,			"VK_CULL_MODE_BACK_BIT"),
452		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,	"VK_CULL_MODE_FRONT_AND_BACK"),
453	};
454	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
455}
456
457const char* getDescriptorTypeName (VkDescriptorType value)
458{
459	switch (value)
460	{
461		case VK_DESCRIPTOR_TYPE_SAMPLER:					return "VK_DESCRIPTOR_TYPE_SAMPLER";
462		case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:		return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
463		case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:				return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
464		case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:				return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
465		case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
466		case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
467		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:				return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
468		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:				return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
469		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
470		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
471		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
472		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:		return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
473		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
474		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
475		case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:				return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT";
476		case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:	return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
477		case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:		return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
478		default:											return DE_NULL;
479	}
480}
481
482const char* getDynamicStateName (VkDynamicState value)
483{
484	switch (value)
485	{
486		case VK_DYNAMIC_STATE_VIEWPORT:									return "VK_DYNAMIC_STATE_VIEWPORT";
487		case VK_DYNAMIC_STATE_SCISSOR:									return "VK_DYNAMIC_STATE_SCISSOR";
488		case VK_DYNAMIC_STATE_LINE_WIDTH:								return "VK_DYNAMIC_STATE_LINE_WIDTH";
489		case VK_DYNAMIC_STATE_DEPTH_BIAS:								return "VK_DYNAMIC_STATE_DEPTH_BIAS";
490		case VK_DYNAMIC_STATE_BLEND_CONSTANTS:							return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
491		case VK_DYNAMIC_STATE_DEPTH_BOUNDS:								return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
492		case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
493		case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
494		case VK_DYNAMIC_STATE_STENCIL_REFERENCE:						return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
495		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:					return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
496		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:					return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
497		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:						return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
498		case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
499		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
500		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:						return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
501		case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:				return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
502		case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:							return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
503		case VK_DYNAMIC_STATE_CULL_MODE:								return "VK_DYNAMIC_STATE_CULL_MODE";
504		case VK_DYNAMIC_STATE_FRONT_FACE:								return "VK_DYNAMIC_STATE_FRONT_FACE";
505		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:						return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
506		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:						return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
507		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:						return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
508		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:				return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
509		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
510		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
511		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:							return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
512		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
513		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:						return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
514		case VK_DYNAMIC_STATE_STENCIL_OP:								return "VK_DYNAMIC_STATE_STENCIL_OP";
515		case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:		return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
516		case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:							return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
517		case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:					return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
518		case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:				return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
519		case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
520		case VK_DYNAMIC_STATE_LOGIC_OP_EXT:								return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
521		case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:					return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
522		case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
523		case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:			return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT";
524		case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT";
525		case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:							return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT";
526		case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:				return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT";
527		case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:							return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT";
528		case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
529		case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
530		case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:						return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT";
531		case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT";
532		case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT";
533		case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:						return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT";
534		case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:					return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT";
535		case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:		return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT";
536		case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:	return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT";
537		case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT";
538		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:				return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT";
539		case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT";
540		case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:				return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT";
541		case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:				return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT";
542		case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT";
543		case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:		return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT";
544		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:				return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV";
545		case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:						return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV";
546		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV";
547		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:			return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV";
548		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV";
549		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:		return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV";
550		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV";
551		case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:				return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV";
552		case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:	return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV";
553		case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV";
554		default:														return DE_NULL;
555	}
556}
557
558tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
559{
560	static const tcu::Format::BitDesc s_desc[] =
561	{
562		tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,	"VK_FENCE_CREATE_SIGNALED_BIT"),
563	};
564	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
565}
566
567const char* getPolygonModeName (VkPolygonMode value)
568{
569	switch (value)
570	{
571		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
572		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
573		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
574		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
575		default:								return DE_NULL;
576	}
577}
578
579const char* getFormatName (VkFormat value)
580{
581	switch (value)
582	{
583		case VK_FORMAT_UNDEFINED:									return "VK_FORMAT_UNDEFINED";
584		case VK_FORMAT_R4G4_UNORM_PACK8:							return "VK_FORMAT_R4G4_UNORM_PACK8";
585		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:						return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
586		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:						return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
587		case VK_FORMAT_R5G6B5_UNORM_PACK16:							return "VK_FORMAT_R5G6B5_UNORM_PACK16";
588		case VK_FORMAT_B5G6R5_UNORM_PACK16:							return "VK_FORMAT_B5G6R5_UNORM_PACK16";
589		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:						return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
590		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:						return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
591		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:						return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
592		case VK_FORMAT_R8_UNORM:									return "VK_FORMAT_R8_UNORM";
593		case VK_FORMAT_R8_SNORM:									return "VK_FORMAT_R8_SNORM";
594		case VK_FORMAT_R8_USCALED:									return "VK_FORMAT_R8_USCALED";
595		case VK_FORMAT_R8_SSCALED:									return "VK_FORMAT_R8_SSCALED";
596		case VK_FORMAT_R8_UINT:										return "VK_FORMAT_R8_UINT";
597		case VK_FORMAT_R8_SINT:										return "VK_FORMAT_R8_SINT";
598		case VK_FORMAT_R8_SRGB:										return "VK_FORMAT_R8_SRGB";
599		case VK_FORMAT_R8G8_UNORM:									return "VK_FORMAT_R8G8_UNORM";
600		case VK_FORMAT_R8G8_SNORM:									return "VK_FORMAT_R8G8_SNORM";
601		case VK_FORMAT_R8G8_USCALED:								return "VK_FORMAT_R8G8_USCALED";
602		case VK_FORMAT_R8G8_SSCALED:								return "VK_FORMAT_R8G8_SSCALED";
603		case VK_FORMAT_R8G8_UINT:									return "VK_FORMAT_R8G8_UINT";
604		case VK_FORMAT_R8G8_SINT:									return "VK_FORMAT_R8G8_SINT";
605		case VK_FORMAT_R8G8_SRGB:									return "VK_FORMAT_R8G8_SRGB";
606		case VK_FORMAT_R8G8B8_UNORM:								return "VK_FORMAT_R8G8B8_UNORM";
607		case VK_FORMAT_R8G8B8_SNORM:								return "VK_FORMAT_R8G8B8_SNORM";
608		case VK_FORMAT_R8G8B8_USCALED:								return "VK_FORMAT_R8G8B8_USCALED";
609		case VK_FORMAT_R8G8B8_SSCALED:								return "VK_FORMAT_R8G8B8_SSCALED";
610		case VK_FORMAT_R8G8B8_UINT:									return "VK_FORMAT_R8G8B8_UINT";
611		case VK_FORMAT_R8G8B8_SINT:									return "VK_FORMAT_R8G8B8_SINT";
612		case VK_FORMAT_R8G8B8_SRGB:									return "VK_FORMAT_R8G8B8_SRGB";
613		case VK_FORMAT_B8G8R8_UNORM:								return "VK_FORMAT_B8G8R8_UNORM";
614		case VK_FORMAT_B8G8R8_SNORM:								return "VK_FORMAT_B8G8R8_SNORM";
615		case VK_FORMAT_B8G8R8_USCALED:								return "VK_FORMAT_B8G8R8_USCALED";
616		case VK_FORMAT_B8G8R8_SSCALED:								return "VK_FORMAT_B8G8R8_SSCALED";
617		case VK_FORMAT_B8G8R8_UINT:									return "VK_FORMAT_B8G8R8_UINT";
618		case VK_FORMAT_B8G8R8_SINT:									return "VK_FORMAT_B8G8R8_SINT";
619		case VK_FORMAT_B8G8R8_SRGB:									return "VK_FORMAT_B8G8R8_SRGB";
620		case VK_FORMAT_R8G8B8A8_UNORM:								return "VK_FORMAT_R8G8B8A8_UNORM";
621		case VK_FORMAT_R8G8B8A8_SNORM:								return "VK_FORMAT_R8G8B8A8_SNORM";
622		case VK_FORMAT_R8G8B8A8_USCALED:							return "VK_FORMAT_R8G8B8A8_USCALED";
623		case VK_FORMAT_R8G8B8A8_SSCALED:							return "VK_FORMAT_R8G8B8A8_SSCALED";
624		case VK_FORMAT_R8G8B8A8_UINT:								return "VK_FORMAT_R8G8B8A8_UINT";
625		case VK_FORMAT_R8G8B8A8_SINT:								return "VK_FORMAT_R8G8B8A8_SINT";
626		case VK_FORMAT_R8G8B8A8_SRGB:								return "VK_FORMAT_R8G8B8A8_SRGB";
627		case VK_FORMAT_B8G8R8A8_UNORM:								return "VK_FORMAT_B8G8R8A8_UNORM";
628		case VK_FORMAT_B8G8R8A8_SNORM:								return "VK_FORMAT_B8G8R8A8_SNORM";
629		case VK_FORMAT_B8G8R8A8_USCALED:							return "VK_FORMAT_B8G8R8A8_USCALED";
630		case VK_FORMAT_B8G8R8A8_SSCALED:							return "VK_FORMAT_B8G8R8A8_SSCALED";
631		case VK_FORMAT_B8G8R8A8_UINT:								return "VK_FORMAT_B8G8R8A8_UINT";
632		case VK_FORMAT_B8G8R8A8_SINT:								return "VK_FORMAT_B8G8R8A8_SINT";
633		case VK_FORMAT_B8G8R8A8_SRGB:								return "VK_FORMAT_B8G8R8A8_SRGB";
634		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
635		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
636		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
637		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
638		case VK_FORMAT_A8B8G8R8_UINT_PACK32:						return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
639		case VK_FORMAT_A8B8G8R8_SINT_PACK32:						return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
640		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:						return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
641		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
642		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
643		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
644		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
645		case VK_FORMAT_A2R10G10B10_UINT_PACK32:						return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
646		case VK_FORMAT_A2R10G10B10_SINT_PACK32:						return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
647		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
648		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
649		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
650		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
651		case VK_FORMAT_A2B10G10R10_UINT_PACK32:						return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
652		case VK_FORMAT_A2B10G10R10_SINT_PACK32:						return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
653		case VK_FORMAT_R16_UNORM:									return "VK_FORMAT_R16_UNORM";
654		case VK_FORMAT_R16_SNORM:									return "VK_FORMAT_R16_SNORM";
655		case VK_FORMAT_R16_USCALED:									return "VK_FORMAT_R16_USCALED";
656		case VK_FORMAT_R16_SSCALED:									return "VK_FORMAT_R16_SSCALED";
657		case VK_FORMAT_R16_UINT:									return "VK_FORMAT_R16_UINT";
658		case VK_FORMAT_R16_SINT:									return "VK_FORMAT_R16_SINT";
659		case VK_FORMAT_R16_SFLOAT:									return "VK_FORMAT_R16_SFLOAT";
660		case VK_FORMAT_R16G16_UNORM:								return "VK_FORMAT_R16G16_UNORM";
661		case VK_FORMAT_R16G16_SNORM:								return "VK_FORMAT_R16G16_SNORM";
662		case VK_FORMAT_R16G16_USCALED:								return "VK_FORMAT_R16G16_USCALED";
663		case VK_FORMAT_R16G16_SSCALED:								return "VK_FORMAT_R16G16_SSCALED";
664		case VK_FORMAT_R16G16_UINT:									return "VK_FORMAT_R16G16_UINT";
665		case VK_FORMAT_R16G16_SINT:									return "VK_FORMAT_R16G16_SINT";
666		case VK_FORMAT_R16G16_SFLOAT:								return "VK_FORMAT_R16G16_SFLOAT";
667		case VK_FORMAT_R16G16B16_UNORM:								return "VK_FORMAT_R16G16B16_UNORM";
668		case VK_FORMAT_R16G16B16_SNORM:								return "VK_FORMAT_R16G16B16_SNORM";
669		case VK_FORMAT_R16G16B16_USCALED:							return "VK_FORMAT_R16G16B16_USCALED";
670		case VK_FORMAT_R16G16B16_SSCALED:							return "VK_FORMAT_R16G16B16_SSCALED";
671		case VK_FORMAT_R16G16B16_UINT:								return "VK_FORMAT_R16G16B16_UINT";
672		case VK_FORMAT_R16G16B16_SINT:								return "VK_FORMAT_R16G16B16_SINT";
673		case VK_FORMAT_R16G16B16_SFLOAT:							return "VK_FORMAT_R16G16B16_SFLOAT";
674		case VK_FORMAT_R16G16B16A16_UNORM:							return "VK_FORMAT_R16G16B16A16_UNORM";
675		case VK_FORMAT_R16G16B16A16_SNORM:							return "VK_FORMAT_R16G16B16A16_SNORM";
676		case VK_FORMAT_R16G16B16A16_USCALED:						return "VK_FORMAT_R16G16B16A16_USCALED";
677		case VK_FORMAT_R16G16B16A16_SSCALED:						return "VK_FORMAT_R16G16B16A16_SSCALED";
678		case VK_FORMAT_R16G16B16A16_UINT:							return "VK_FORMAT_R16G16B16A16_UINT";
679		case VK_FORMAT_R16G16B16A16_SINT:							return "VK_FORMAT_R16G16B16A16_SINT";
680		case VK_FORMAT_R16G16B16A16_SFLOAT:							return "VK_FORMAT_R16G16B16A16_SFLOAT";
681		case VK_FORMAT_R32_UINT:									return "VK_FORMAT_R32_UINT";
682		case VK_FORMAT_R32_SINT:									return "VK_FORMAT_R32_SINT";
683		case VK_FORMAT_R32_SFLOAT:									return "VK_FORMAT_R32_SFLOAT";
684		case VK_FORMAT_R32G32_UINT:									return "VK_FORMAT_R32G32_UINT";
685		case VK_FORMAT_R32G32_SINT:									return "VK_FORMAT_R32G32_SINT";
686		case VK_FORMAT_R32G32_SFLOAT:								return "VK_FORMAT_R32G32_SFLOAT";
687		case VK_FORMAT_R32G32B32_UINT:								return "VK_FORMAT_R32G32B32_UINT";
688		case VK_FORMAT_R32G32B32_SINT:								return "VK_FORMAT_R32G32B32_SINT";
689		case VK_FORMAT_R32G32B32_SFLOAT:							return "VK_FORMAT_R32G32B32_SFLOAT";
690		case VK_FORMAT_R32G32B32A32_UINT:							return "VK_FORMAT_R32G32B32A32_UINT";
691		case VK_FORMAT_R32G32B32A32_SINT:							return "VK_FORMAT_R32G32B32A32_SINT";
692		case VK_FORMAT_R32G32B32A32_SFLOAT:							return "VK_FORMAT_R32G32B32A32_SFLOAT";
693		case VK_FORMAT_R64_UINT:									return "VK_FORMAT_R64_UINT";
694		case VK_FORMAT_R64_SINT:									return "VK_FORMAT_R64_SINT";
695		case VK_FORMAT_R64_SFLOAT:									return "VK_FORMAT_R64_SFLOAT";
696		case VK_FORMAT_R64G64_UINT:									return "VK_FORMAT_R64G64_UINT";
697		case VK_FORMAT_R64G64_SINT:									return "VK_FORMAT_R64G64_SINT";
698		case VK_FORMAT_R64G64_SFLOAT:								return "VK_FORMAT_R64G64_SFLOAT";
699		case VK_FORMAT_R64G64B64_UINT:								return "VK_FORMAT_R64G64B64_UINT";
700		case VK_FORMAT_R64G64B64_SINT:								return "VK_FORMAT_R64G64B64_SINT";
701		case VK_FORMAT_R64G64B64_SFLOAT:							return "VK_FORMAT_R64G64B64_SFLOAT";
702		case VK_FORMAT_R64G64B64A64_UINT:							return "VK_FORMAT_R64G64B64A64_UINT";
703		case VK_FORMAT_R64G64B64A64_SINT:							return "VK_FORMAT_R64G64B64A64_SINT";
704		case VK_FORMAT_R64G64B64A64_SFLOAT:							return "VK_FORMAT_R64G64B64A64_SFLOAT";
705		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:						return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
706		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:						return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
707		case VK_FORMAT_D16_UNORM:									return "VK_FORMAT_D16_UNORM";
708		case VK_FORMAT_X8_D24_UNORM_PACK32:							return "VK_FORMAT_X8_D24_UNORM_PACK32";
709		case VK_FORMAT_D32_SFLOAT:									return "VK_FORMAT_D32_SFLOAT";
710		case VK_FORMAT_S8_UINT:										return "VK_FORMAT_S8_UINT";
711		case VK_FORMAT_D16_UNORM_S8_UINT:							return "VK_FORMAT_D16_UNORM_S8_UINT";
712		case VK_FORMAT_D24_UNORM_S8_UINT:							return "VK_FORMAT_D24_UNORM_S8_UINT";
713		case VK_FORMAT_D32_SFLOAT_S8_UINT:							return "VK_FORMAT_D32_SFLOAT_S8_UINT";
714		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:							return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
715		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
716		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:						return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
717		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
718		case VK_FORMAT_BC2_UNORM_BLOCK:								return "VK_FORMAT_BC2_UNORM_BLOCK";
719		case VK_FORMAT_BC2_SRGB_BLOCK:								return "VK_FORMAT_BC2_SRGB_BLOCK";
720		case VK_FORMAT_BC3_UNORM_BLOCK:								return "VK_FORMAT_BC3_UNORM_BLOCK";
721		case VK_FORMAT_BC3_SRGB_BLOCK:								return "VK_FORMAT_BC3_SRGB_BLOCK";
722		case VK_FORMAT_BC4_UNORM_BLOCK:								return "VK_FORMAT_BC4_UNORM_BLOCK";
723		case VK_FORMAT_BC4_SNORM_BLOCK:								return "VK_FORMAT_BC4_SNORM_BLOCK";
724		case VK_FORMAT_BC5_UNORM_BLOCK:								return "VK_FORMAT_BC5_UNORM_BLOCK";
725		case VK_FORMAT_BC5_SNORM_BLOCK:								return "VK_FORMAT_BC5_SNORM_BLOCK";
726		case VK_FORMAT_BC6H_UFLOAT_BLOCK:							return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
727		case VK_FORMAT_BC6H_SFLOAT_BLOCK:							return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
728		case VK_FORMAT_BC7_UNORM_BLOCK:								return "VK_FORMAT_BC7_UNORM_BLOCK";
729		case VK_FORMAT_BC7_SRGB_BLOCK:								return "VK_FORMAT_BC7_SRGB_BLOCK";
730		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
731		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
732		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
733		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
734		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
735		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
736		case VK_FORMAT_EAC_R11_UNORM_BLOCK:							return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
737		case VK_FORMAT_EAC_R11_SNORM_BLOCK:							return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
738		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
739		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
740		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
741		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
742		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
743		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
744		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
745		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
746		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
747		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
748		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
749		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
750		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
751		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
752		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
753		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
754		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
755		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
756		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
757		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
758		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
759		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
760		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
761		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
762		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
763		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
764		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
765		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
766		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
767		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
768		case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
769		case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
770		case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
771		case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
772		case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
773		case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
774		case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
775		case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
776		case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
777		case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
778		case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
779		case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
780		case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
781		case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
782		case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
783		case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
784		case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
785		case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
786		case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
787		case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
788		case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
789		case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
790		case VK_FORMAT_G8B8G8R8_422_UNORM:							return "VK_FORMAT_G8B8G8R8_422_UNORM";
791		case VK_FORMAT_B8G8R8G8_422_UNORM:							return "VK_FORMAT_B8G8R8G8_422_UNORM";
792		case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
793		case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
794		case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
795		case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
796		case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
797		case VK_FORMAT_R10X6_UNORM_PACK16:							return "VK_FORMAT_R10X6_UNORM_PACK16";
798		case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:					return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
799		case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:			return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
800		case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:		return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
801		case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:		return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
802		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
803		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
804		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
805		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
806		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
807		case VK_FORMAT_R12X4_UNORM_PACK16:							return "VK_FORMAT_R12X4_UNORM_PACK16";
808		case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:					return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
809		case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:			return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
810		case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:		return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
811		case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:		return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
812		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
813		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
814		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
815		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
816		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
817		case VK_FORMAT_G16B16G16R16_422_UNORM:						return "VK_FORMAT_G16B16G16R16_422_UNORM";
818		case VK_FORMAT_B16G16R16G16_422_UNORM:						return "VK_FORMAT_B16G16R16G16_422_UNORM";
819		case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
820		case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
821		case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
822		case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
823		case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
824		case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
825		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
826		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
827		case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
828		case VK_FORMAT_A4R4G4B4_UNORM_PACK16:						return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
829		case VK_FORMAT_A4B4G4R4_UNORM_PACK16:						return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
830		case VK_FORMAT_R16G16_S10_5_NV:								return "VK_FORMAT_R16G16_S10_5_NV";
831		default:													return DE_NULL;
832	}
833}
834
835tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
836{
837	static const tcu::Format::BitDesc s_desc[] =
838	{
839		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,															"VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
840		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,															"VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
841		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,													"VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
842		tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
843		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
844		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
845		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,															"VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
846		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,														"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
847		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
848		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,												"VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
849		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,																"VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
850		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,																"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
851		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
852		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,											"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
853		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
854		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
855		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
856		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
857		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,							"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
858		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"),
859		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"),
860		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"),
861		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,																"VK_FORMAT_FEATURE_DISJOINT_BIT"),
862		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
863		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,												"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
864		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
865		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
866		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
867		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
868		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,								"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
869		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,									"VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
870	};
871	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
872}
873
874const char* getFrontFaceName (VkFrontFace value)
875{
876	switch (value)
877	{
878		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
879		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
880		default:								return DE_NULL;
881	}
882}
883
884tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
885{
886	static const tcu::Format::BitDesc s_desc[] =
887	{
888		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
889		tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,						"VK_IMAGE_ASPECT_NONE"),
890		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
891		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
892		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
893		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
894		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
895		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
896		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
897		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
898		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
899		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
900	};
901	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
902}
903
904tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
905{
906	static const tcu::Format::BitDesc s_desc[] =
907	{
908		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,							"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
909		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,							"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
910		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,							"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
911		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,							"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
912		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,							"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
913		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,						"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
914		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,				"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
915		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,				"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
916		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,							"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
917		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,									"VK_IMAGE_CREATE_DISJOINT_BIT"),
918		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,										"VK_IMAGE_CREATE_ALIAS_BIT"),
919		tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,									"VK_IMAGE_CREATE_PROTECTED_BIT"),
920		tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,		"VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
921		tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,							"VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
922		tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,							"VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
923		tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,			"VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
924		tcu::Format::BitDesc(VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,		"VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
925		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,					"VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
926		tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,	"VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
927	};
928	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
929}
930
931const char* getImageLayoutName (VkImageLayout value)
932{
933	switch (value)
934	{
935		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
936		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
937		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
938		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
939		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
940		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
941		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
942		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
943		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
944		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
945		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
946		case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
947		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
948		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
949		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
950		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
951		case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:	return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
952		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
953		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
954		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
955		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
956		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
957		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
958		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
959		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
960		case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:								return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
961		case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:							return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
962		case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:			return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
963		default:															return DE_NULL;
964	}
965}
966
967const char* getImageTilingName (VkImageTiling value)
968{
969	switch (value)
970	{
971		case VK_IMAGE_TILING_OPTIMAL:					return "VK_IMAGE_TILING_OPTIMAL";
972		case VK_IMAGE_TILING_LINEAR:					return "VK_IMAGE_TILING_LINEAR";
973		case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:	return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
974		default:										return DE_NULL;
975	}
976}
977
978const char* getImageTypeName (VkImageType value)
979{
980	switch (value)
981	{
982		case VK_IMAGE_TYPE_1D:	return "VK_IMAGE_TYPE_1D";
983		case VK_IMAGE_TYPE_2D:	return "VK_IMAGE_TYPE_2D";
984		case VK_IMAGE_TYPE_3D:	return "VK_IMAGE_TYPE_3D";
985		default:				return DE_NULL;
986	}
987}
988
989tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
990{
991	static const tcu::Format::BitDesc s_desc[] =
992	{
993		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,							"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
994		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,							"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
995		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,								"VK_IMAGE_USAGE_SAMPLED_BIT"),
996		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,								"VK_IMAGE_USAGE_STORAGE_BIT"),
997		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
998		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,				"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
999		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,					"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
1000		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
1001		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1002		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,				"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
1003		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
1004		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
1005		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
1006		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
1007		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
1008		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
1009		tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,					"VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
1010		tcu::Format::BitDesc(VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1011		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,						"VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
1012		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,				"VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
1013	};
1014	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1015}
1016
1017tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
1018{
1019	static const tcu::Format::BitDesc s_desc[] =
1020	{
1021		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
1022		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
1023		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
1024	};
1025	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1026}
1027
1028const char* getImageViewTypeName (VkImageViewType value)
1029{
1030	switch (value)
1031	{
1032		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
1033		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
1034		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
1035		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
1036		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1037		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1038		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1039		default:							return DE_NULL;
1040	}
1041}
1042
1043const char* getSharingModeName (VkSharingMode value)
1044{
1045	switch (value)
1046	{
1047		case VK_SHARING_MODE_EXCLUSIVE:		return "VK_SHARING_MODE_EXCLUSIVE";
1048		case VK_SHARING_MODE_CONCURRENT:	return "VK_SHARING_MODE_CONCURRENT";
1049		default:							return DE_NULL;
1050	}
1051}
1052
1053const char* getIndexTypeName (VkIndexType value)
1054{
1055	switch (value)
1056	{
1057		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
1058		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
1059		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
1060		case VK_INDEX_TYPE_UINT8_EXT:	return "VK_INDEX_TYPE_UINT8_EXT";
1061		default:						return DE_NULL;
1062	}
1063}
1064
1065const char* getLogicOpName (VkLogicOp value)
1066{
1067	switch (value)
1068	{
1069		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
1070		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
1071		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
1072		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
1073		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
1074		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
1075		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
1076		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
1077		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
1078		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
1079		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
1080		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
1081		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
1082		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
1083		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
1084		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
1085		default:						return DE_NULL;
1086	}
1087}
1088
1089tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
1090{
1091	static const tcu::Format::BitDesc s_desc[] =
1092	{
1093		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,	"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
1094		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
1095	};
1096	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1097}
1098
1099tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
1100{
1101	static const tcu::Format::BitDesc s_desc[] =
1102	{
1103		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
1104		tcu::Format::BitDesc(VK_ACCESS_NONE,											"VK_ACCESS_NONE"),
1105		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,									"VK_ACCESS_INDEX_READ_BIT"),
1106		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
1107		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,								"VK_ACCESS_UNIFORM_READ_BIT"),
1108		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
1109		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,									"VK_ACCESS_SHADER_READ_BIT"),
1110		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,								"VK_ACCESS_SHADER_WRITE_BIT"),
1111		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
1112		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
1113		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
1114		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
1115		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,								"VK_ACCESS_TRANSFER_READ_BIT"),
1116		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,								"VK_ACCESS_TRANSFER_WRITE_BIT"),
1117		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,									"VK_ACCESS_HOST_READ_BIT"),
1118		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,									"VK_ACCESS_HOST_WRITE_BIT"),
1119		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,									"VK_ACCESS_MEMORY_READ_BIT"),
1120		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,								"VK_ACCESS_MEMORY_WRITE_BIT"),
1121		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
1122		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
1123		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
1124		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,				"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
1125		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
1126		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
1127		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
1128		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
1129		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
1130		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
1131		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
1132	};
1133	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1134}
1135
1136tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
1137{
1138	static const tcu::Format::BitDesc s_desc[] =
1139	{
1140		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,			"VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
1141		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,			"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
1142		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,			"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
1143		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,			"VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
1144		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,		"VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
1145		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,				"VK_MEMORY_PROPERTY_PROTECTED_BIT"),
1146		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
1147		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
1148		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,		"VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
1149	};
1150	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1151}
1152
1153const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1154{
1155	switch (value)
1156	{
1157		case VK_PHYSICAL_DEVICE_TYPE_OTHER:				return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1158		case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:	return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1159		case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1160		case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1161		case VK_PHYSICAL_DEVICE_TYPE_CPU:				return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1162		default:										return DE_NULL;
1163	}
1164}
1165
1166const char* getPipelineBindPointName (VkPipelineBindPoint value)
1167{
1168	switch (value)
1169	{
1170		case VK_PIPELINE_BIND_POINT_GRAPHICS:				return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1171		case VK_PIPELINE_BIND_POINT_COMPUTE:				return "VK_PIPELINE_BIND_POINT_COMPUTE";
1172		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:		return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1173		case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:	return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1174		default:											return DE_NULL;
1175	}
1176}
1177
1178tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
1179{
1180	static const tcu::Format::BitDesc s_desc[] =
1181	{
1182		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,								"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
1183		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,									"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
1184		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,											"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
1185		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,						"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
1186		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,										"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
1187		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,									"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
1188		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
1189		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,				"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
1190		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,					"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
1191		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,							"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
1192		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,							"VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
1193		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,										"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
1194		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
1195		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
1196		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"),
1197		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"),
1198		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"),
1199		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"),
1200		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,								"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
1201		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"),
1202		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,						"VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
1203		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1204		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
1205		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,				"VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
1206		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,					"VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
1207		tcu::Format::BitDesc(VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,					"VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1208		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1209		tcu::Format::BitDesc(VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,							"VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT"),
1210		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,								"VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
1211		tcu::Format::BitDesc(VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,							"VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT"),
1212	};
1213	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1214}
1215
1216const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1217{
1218	switch (value)
1219	{
1220		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1221		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1222		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1223		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1224		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1225		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1226		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1227		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1228		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1229		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1230		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1231		default:													return DE_NULL;
1232	}
1233}
1234
1235tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
1236{
1237	static const tcu::Format::BitDesc s_desc[] =
1238	{
1239		tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,	"VK_QUERY_CONTROL_PRECISE_BIT"),
1240	};
1241	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1242}
1243
1244tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
1245{
1246	static const tcu::Format::BitDesc s_desc[] =
1247	{
1248		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
1249		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
1250		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,						"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
1251		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
1252		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
1253		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
1254		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
1255		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
1256		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,			"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
1257		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,	"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
1258		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
1259		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"),
1260		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"),
1261	};
1262	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1263}
1264
1265tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
1266{
1267	static const tcu::Format::BitDesc s_desc[] =
1268	{
1269		tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,				"VK_QUERY_RESULT_64_BIT"),
1270		tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,				"VK_QUERY_RESULT_WAIT_BIT"),
1271		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,	"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
1272		tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,			"VK_QUERY_RESULT_PARTIAL_BIT"),
1273		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,	"VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
1274	};
1275	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1276}
1277
1278const char* getQueryTypeName (VkQueryType value)
1279{
1280	switch (value)
1281	{
1282		case VK_QUERY_TYPE_OCCLUSION:														return "VK_QUERY_TYPE_OCCLUSION";
1283		case VK_QUERY_TYPE_PIPELINE_STATISTICS:												return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1284		case VK_QUERY_TYPE_TIMESTAMP:														return "VK_QUERY_TYPE_TIMESTAMP";
1285		case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:											return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1286		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:									return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1287		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1288		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1289		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:					return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1290		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1291		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1292		case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:							return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1293		case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:									return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
1294		case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:										return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1295		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1296		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:									return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1297		case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT:									return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT";
1298		case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT:										return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT";
1299		default:																			return DE_NULL;
1300	}
1301}
1302
1303tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
1304{
1305	static const tcu::Format::BitDesc s_desc[] =
1306	{
1307		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
1308		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
1309		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
1310		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
1311		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
1312		tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,	"VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
1313		tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,	"VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
1314		tcu::Format::BitDesc(VK_QUEUE_OPTICAL_FLOW_BIT_NV,	"VK_QUEUE_OPTICAL_FLOW_BIT_NV"),
1315	};
1316	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1317}
1318
1319const char* getSubpassContentsName (VkSubpassContents value)
1320{
1321	switch (value)
1322	{
1323		case VK_SUBPASS_CONTENTS_INLINE:					return "VK_SUBPASS_CONTENTS_INLINE";
1324		case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:	return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1325		default:											return DE_NULL;
1326	}
1327}
1328
1329const char* getResultName (VkResult value)
1330{
1331	switch (value)
1332	{
1333		case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:					return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
1334		case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:				return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1335		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1336		case VK_ERROR_NOT_PERMITTED_KHR:							return "VK_ERROR_NOT_PERMITTED_KHR";
1337		case VK_ERROR_FRAGMENTATION:								return "VK_ERROR_FRAGMENTATION";
1338		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1339		case VK_ERROR_INVALID_EXTERNAL_HANDLE:						return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
1340		case VK_ERROR_OUT_OF_POOL_MEMORY:							return "VK_ERROR_OUT_OF_POOL_MEMORY";
1341		case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:			return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1342		case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1343		case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1344		case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:	return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1345		case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1346		case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:				return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1347		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
1348		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
1349		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
1350		case VK_ERROR_OUT_OF_DATE_KHR:								return "VK_ERROR_OUT_OF_DATE_KHR";
1351		case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:						return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
1352		case VK_ERROR_SURFACE_LOST_KHR:								return "VK_ERROR_SURFACE_LOST_KHR";
1353		case VK_ERROR_UNKNOWN:										return "VK_ERROR_UNKNOWN";
1354		case VK_ERROR_FRAGMENTED_POOL:								return "VK_ERROR_FRAGMENTED_POOL";
1355		case VK_ERROR_FORMAT_NOT_SUPPORTED:							return "VK_ERROR_FORMAT_NOT_SUPPORTED";
1356		case VK_ERROR_TOO_MANY_OBJECTS:								return "VK_ERROR_TOO_MANY_OBJECTS";
1357		case VK_ERROR_INCOMPATIBLE_DRIVER:							return "VK_ERROR_INCOMPATIBLE_DRIVER";
1358		case VK_ERROR_FEATURE_NOT_PRESENT:							return "VK_ERROR_FEATURE_NOT_PRESENT";
1359		case VK_ERROR_EXTENSION_NOT_PRESENT:						return "VK_ERROR_EXTENSION_NOT_PRESENT";
1360		case VK_ERROR_LAYER_NOT_PRESENT:							return "VK_ERROR_LAYER_NOT_PRESENT";
1361		case VK_ERROR_MEMORY_MAP_FAILED:							return "VK_ERROR_MEMORY_MAP_FAILED";
1362		case VK_ERROR_DEVICE_LOST:									return "VK_ERROR_DEVICE_LOST";
1363		case VK_ERROR_INITIALIZATION_FAILED:						return "VK_ERROR_INITIALIZATION_FAILED";
1364		case VK_ERROR_OUT_OF_DEVICE_MEMORY:							return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
1365		case VK_ERROR_OUT_OF_HOST_MEMORY:							return "VK_ERROR_OUT_OF_HOST_MEMORY";
1366		case VK_SUCCESS:											return "VK_SUCCESS";
1367		case VK_NOT_READY:											return "VK_NOT_READY";
1368		case VK_TIMEOUT:											return "VK_TIMEOUT";
1369		case VK_EVENT_SET:											return "VK_EVENT_SET";
1370		case VK_EVENT_RESET:										return "VK_EVENT_RESET";
1371		case VK_INCOMPLETE:											return "VK_INCOMPLETE";
1372		case VK_SUBOPTIMAL_KHR:										return "VK_SUBOPTIMAL_KHR";
1373		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
1374		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
1375		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
1376		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
1377		case VK_PIPELINE_COMPILE_REQUIRED:							return "VK_PIPELINE_COMPILE_REQUIRED";
1378		default:													return DE_NULL;
1379	}
1380}
1381
1382tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
1383{
1384	static const tcu::Format::BitDesc s_desc[] =
1385	{
1386		tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,					"VK_SHADER_STAGE_VERTEX_BIT"),
1387		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,		"VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
1388		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,	"VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
1389		tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,					"VK_SHADER_STAGE_GEOMETRY_BIT"),
1390		tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,					"VK_SHADER_STAGE_FRAGMENT_BIT"),
1391		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
1392		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_EXT,					"VK_SHADER_STAGE_TASK_BIT_EXT"),
1393		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_EXT,					"VK_SHADER_STAGE_MESH_BIT_EXT"),
1394		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
1395		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
1396		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
1397		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
1398		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
1399		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
1400		tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,	"VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
1401		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
1402		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
1403	};
1404	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1405}
1406
1407tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
1408{
1409	static const tcu::Format::BitDesc s_desc[] =
1410	{
1411		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,	"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
1412	};
1413	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1414}
1415
1416tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
1417{
1418	static const tcu::Format::BitDesc s_desc[] =
1419	{
1420		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,			"VK_STENCIL_FACE_FRONT_BIT"),
1421		tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,			"VK_STENCIL_FACE_BACK_BIT"),
1422		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,	"VK_STENCIL_FACE_FRONT_AND_BACK"),
1423	};
1424	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1425}
1426
1427const char* getStencilOpName (VkStencilOp value)
1428{
1429	switch (value)
1430	{
1431		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
1432		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
1433		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
1434		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1435		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1436		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
1437		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1438		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1439		default:								return DE_NULL;
1440	}
1441}
1442
1443const char* getStructureTypeName (VkStructureType value)
1444{
1445	switch (value)
1446	{
1447		case VK_STRUCTURE_TYPE_APPLICATION_INFO:													return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
1448		case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
1449		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
1450		case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
1451		case VK_STRUCTURE_TYPE_SUBMIT_INFO:															return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
1452		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:												return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
1453		case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:													return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
1454		case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:													return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
1455		case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
1456		case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
1457		case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:													return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
1458		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:												return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
1459		case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
1460		case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
1461		case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
1462		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
1463		case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
1464		case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
1465		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
1466		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
1467		case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
1468		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
1469		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
1470		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
1471		case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
1472		case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
1473		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
1474		case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
1475		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
1476		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
1477		case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
1478		case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
1479		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
1480		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
1481		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
1482		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:												return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
1483		case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:													return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
1484		case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
1485		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
1486		case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
1487		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
1488		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
1489		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
1490		case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
1491		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
1492		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
1493		case VK_STRUCTURE_TYPE_MEMORY_BARRIER:														return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
1494		case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
1495		case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
1496		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
1497		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
1498		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
1499		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
1500		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
1501		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
1502		case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
1503		case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
1504		case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
1505		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
1506		case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
1507		case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
1508		case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
1509		case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
1510		case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
1511		case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
1512		case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
1513		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
1514		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
1515		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
1516		case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
1517		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
1518		case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
1519		case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
1520		case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
1521		case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:									return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
1522		case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
1523		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
1524		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
1525		case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
1526		case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
1527		case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
1528		case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
1529		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
1530		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
1531		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
1532		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
1533		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
1534		case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
1535		case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
1536		case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
1537		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
1538		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
1539		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
1540		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
1541		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
1542		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
1543		case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
1544		case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
1545		case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:													return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
1546		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:											return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
1547		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
1548		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
1549		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
1550		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
1551		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
1552		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
1553		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT";
1554		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1555		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT";
1556		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
1557		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
1558		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT";
1559		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
1560		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
1561		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
1562		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
1563		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
1564		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT";
1565		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1566		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT";
1567		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT";
1568		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
1569		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
1570		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR";
1571		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR";
1572		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR";
1573		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
1574		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
1575		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR";
1576		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
1577		case VK_STRUCTURE_TYPE_RENDERING_INFO:														return "VK_STRUCTURE_TYPE_RENDERING_INFO";
1578		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:											return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
1579		case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
1580		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
1581		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:							return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
1582		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1583		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
1584		case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:									return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
1585		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:								return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
1586		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:							return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
1587		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
1588		case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
1589		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
1590		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
1591		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
1592		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:										return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
1593		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1594		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1595		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
1596		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:											return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
1597		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
1598		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
1599		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
1600		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
1601		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
1602		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
1603		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
1604		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
1605		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:											return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
1606		case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
1607		case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
1608		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
1609		case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
1610		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
1611		case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
1612		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:								return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
1613		case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
1614		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
1615		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
1616		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:								return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
1617		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:									return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
1618		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
1619		case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:											return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
1620		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
1621		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
1622		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
1623		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
1624		case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
1625		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
1626		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
1627		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
1628		case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
1629		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
1630		case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:									return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
1631		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
1632		case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
1633		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
1634		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
1635		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
1636		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
1637		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1638		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1639		case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
1640		case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
1641		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
1642		case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
1643		case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
1644		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
1645		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
1646		case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
1647		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
1648		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1649		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1650		case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:											return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
1651		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
1652		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
1653		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
1654		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
1655		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
1656		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
1657		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:								return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
1658		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
1659		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
1660		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
1661		case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
1662		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
1663		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
1664		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
1665		case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
1666		case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
1667		case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
1668		case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:											return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
1669		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
1670		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
1671		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
1672		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
1673		case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
1674		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
1675		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
1676		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
1677		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
1678		case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:													return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
1679		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
1680		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
1681		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
1682		case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
1683		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:											return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
1684		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:												return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
1685		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
1686		case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
1687		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:											return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
1688		case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
1689		case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
1690		case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
1691		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
1692		case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
1693		case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
1694		case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1695		case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1696		case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
1697		case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
1698		case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
1699		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
1700		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
1701		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
1702		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
1703		case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:										return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
1704		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:												return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
1705		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
1706		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
1707		case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:						return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
1708		case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
1709		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:				return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
1710		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
1711		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
1712		case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:												return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
1713		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
1714		case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
1715		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
1716		case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
1717		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
1718		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
1719		case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:											return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
1720		case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:										return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
1721		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
1722		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
1723		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
1724		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
1725		case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:												return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
1726		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
1727		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
1728		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:								return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
1729		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:							return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
1730		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
1731		case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:							return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1732		case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:						return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1733		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:												return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
1734		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
1735		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
1736		case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
1737		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
1738		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
1739		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:							return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
1740		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:					return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
1741		case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:											return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
1742		case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
1743		case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
1744		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
1745		case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:											return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
1746		case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
1747		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
1748		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
1749		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:													return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
1750		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
1751		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
1752		case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
1753		case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:												return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
1754		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
1755		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
1756		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
1757		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
1758		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
1759		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
1760		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
1761		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
1762		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
1763		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
1764		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
1765		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:									return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
1766		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
1767		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
1768		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:								return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
1769		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
1770		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
1771		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
1772		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
1773		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
1774		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
1775		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
1776		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
1777		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
1778		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
1779		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
1780		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
1781		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:								return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
1782		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:										return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
1783		case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:										return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
1784		case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:								return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
1785		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
1786		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:					return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
1787		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
1788		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
1789		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:								return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
1790		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
1791		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
1792		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
1793		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
1794		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:							return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
1795		case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
1796		case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
1797		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
1798		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
1799		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
1800		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
1801		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
1802		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
1803		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
1804		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";
1805		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
1806		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
1807		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";
1808		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
1809		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
1810		case VK_STRUCTURE_TYPE_GEOMETRY_NV:															return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
1811		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
1812		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:													return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
1813		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:							return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
1814		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
1815		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
1816		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
1817		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
1818		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:										return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
1819		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
1820		case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
1821		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
1822		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
1823		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
1824		case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
1825		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
1826		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
1827		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
1828		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
1829		case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
1830		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
1831		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
1832		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
1833		case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:							return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
1834		case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:										return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
1835		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
1836		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR";
1837		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
1838		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
1839		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR";
1840		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR";
1841		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR";
1842		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
1843		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
1844		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
1845		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
1846		case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:												return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
1847		case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
1848		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
1849		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
1850		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
1851		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:							return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
1852		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
1853		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
1854		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
1855		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
1856		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
1857		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
1858		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
1859		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:													return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
1860		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
1861		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
1862		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
1863		case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
1864		case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:										return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
1865		case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:													return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
1866		case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
1867		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
1868		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
1869		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:								return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
1870		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
1871		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:								return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
1872		case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
1873		case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
1874		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
1875		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
1876		case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:							return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
1877		case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
1878		case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
1879		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
1880		case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
1881		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
1882		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
1883		case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
1884		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
1885		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
1886		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:			return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
1887		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
1888		case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:							return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1889		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
1890		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
1891		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
1892		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
1893		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
1894		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
1895		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
1896		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
1897		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
1898		case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
1899		case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
1900		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
1901		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
1902		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:									return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
1903		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:								return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
1904		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
1905		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:											return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
1906		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
1907		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
1908		case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
1909		case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
1910		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
1911		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
1912		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1913		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1914		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
1915		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
1916		case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:							return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
1917		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
1918		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
1919		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
1920		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
1921		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:		return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
1922		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
1923		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
1924		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
1925		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
1926		case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
1927		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
1928		case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:							return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
1929		case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:							return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
1930		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
1931		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
1932		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
1933		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
1934		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
1935		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
1936		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
1937		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
1938		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
1939		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:													return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
1940		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
1941		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
1942		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
1943		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:						return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
1944		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
1945		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT";
1946		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT:							return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT";
1947		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT";
1948		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT";
1949		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT";
1950		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT";
1951		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT:										return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT";
1952		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT";
1953		case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT:									return "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT";
1954		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
1955		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
1956		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
1957		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
1958		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:									return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
1959		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
1960		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:											return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
1961		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:						return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
1962		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
1963		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
1964		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:					return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
1965		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
1966		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
1967		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
1968		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
1969		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
1970		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:								return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
1971		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
1972		case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
1973		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
1974		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
1975		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
1976		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
1977		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
1978		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
1979		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
1980		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV";
1981		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:								return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV";
1982		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV";
1983		case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:														return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
1984		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
1985		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
1986		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
1987		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
1988		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
1989		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
1990		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
1991		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
1992		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
1993		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
1994		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
1995		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
1996		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
1997		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
1998		case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
1999		case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
2000		case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
2001		case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
2002		case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
2003		case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
2004		case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
2005		case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
2006		case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
2007		case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
2008		case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:													return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
2009		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
2010		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
2011		case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:														return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
2012		case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:														return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
2013		case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
2014		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
2015		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
2016		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
2017		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
2018		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT";
2019		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT";
2020		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT";
2021		case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT";
2022		case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT:												return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT";
2023		case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2024		case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2025		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2026		case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2027		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2028		case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT";
2029		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT";
2030		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT";
2031		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
2032		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
2033		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
2034		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";
2035		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
2036		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";
2037		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
2038		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
2039		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
2040		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";
2041		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
2042		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
2043		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
2044		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
2045		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
2046		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";
2047		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
2048		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
2049		case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:									return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
2050		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
2051		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
2052		case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
2053		case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
2054		case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
2055		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
2056		case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
2057		case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:												return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
2058		case VK_STRUCTURE_TYPE_BUFFER_COPY_2:														return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
2059		case VK_STRUCTURE_TYPE_IMAGE_COPY_2:														return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
2060		case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:														return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
2061		case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:													return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
2062		case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:														return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
2063		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
2064		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
2065		case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:											return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
2066		case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:												return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
2067		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
2068		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
2069		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
2070		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT";
2071		case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT";
2072		case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT";
2073		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
2074		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
2075		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
2076		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
2077		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
2078		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
2079		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT";
2080		case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT";
2081		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
2082		case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:								return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
2083		case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:							return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
2084		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
2085		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT";
2086		case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT";
2087		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
2088		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
2089		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
2090		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
2091		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
2092		case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
2093		case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2094		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
2095		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2096		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
2097		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
2098		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
2099		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
2100		case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
2101		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
2102		case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
2103		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
2104		case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:											return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
2105		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
2106		case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:							return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
2107		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
2108		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
2109		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
2110		case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:									return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
2111		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
2112		case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:									return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
2113		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
2114		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";
2115		case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:								return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
2116		case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:						return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
2117		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
2118		case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
2119		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
2120		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
2121		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
2122		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
2123		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
2124		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
2125		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
2126		case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
2127		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
2128		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
2129		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";
2130		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:												return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT";
2131		case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT";
2132		case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:												return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT";
2133		case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT";
2134		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT";
2135		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT";
2136		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT";
2137		case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT";
2138		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:										return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT";
2139		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT";
2140		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
2141		case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
2142		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
2143		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
2144		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
2145		case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
2146		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
2147		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
2148		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
2149		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
2150		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT";
2151		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
2152		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
2153		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
2154		case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:					return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
2155		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV";
2156		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV";
2157		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV";
2158		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV";
2159		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
2160		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
2161		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
2162		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
2163		case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
2164		case VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY:								return "VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY";
2165		case VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY:								return "VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY";
2166		case VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY:							return "VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY";
2167		case VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY:					return "VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY";
2168		case VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY:							return "VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY";
2169		case VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY:						return "VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY";
2170		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY:											return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY";
2171		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT";
2172		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT";
2173		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
2174		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:									return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
2175		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
2176		case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
2177		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG";
2178		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG";
2179		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
2180		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
2181		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
2182		case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:										return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
2183		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV";
2184		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV";
2185		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV";
2186		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV";
2187		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV";
2188		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:										return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV";
2189		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:					return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV";
2190		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
2191		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT";
2192		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
2193		case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:												return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
2194		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
2195		case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:										return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
2196		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM";
2197		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV";
2198		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV";
2199		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM";
2200		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM";
2201		default:																					return DE_NULL;
2202	}
2203}
2204
2205const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
2206{
2207	switch (value)
2208	{
2209		case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:	return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
2210		case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:		return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
2211		case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:		return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
2212		case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:		return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
2213		case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:	return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
2214		default:									return DE_NULL;
2215	}
2216}
2217
2218const char* getInternalAllocationTypeName (VkInternalAllocationType value)
2219{
2220	switch (value)
2221	{
2222		case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:	return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
2223		default:										return DE_NULL;
2224	}
2225}
2226
2227const char* getSamplerAddressModeName (VkSamplerAddressMode value)
2228{
2229	switch (value)
2230	{
2231		case VK_SAMPLER_ADDRESS_MODE_REPEAT:				return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
2232		case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:		return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
2233		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:			return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
2234		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:		return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
2235		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:	return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
2236		default:											return DE_NULL;
2237	}
2238}
2239
2240const char* getFilterName (VkFilter value)
2241{
2242	switch (value)
2243	{
2244		case VK_FILTER_NEAREST:		return "VK_FILTER_NEAREST";
2245		case VK_FILTER_LINEAR:		return "VK_FILTER_LINEAR";
2246		case VK_FILTER_CUBIC_EXT:	return "VK_FILTER_CUBIC_EXT";
2247		default:					return DE_NULL;
2248	}
2249}
2250
2251const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
2252{
2253	switch (value)
2254	{
2255		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
2256		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
2257		default:								return DE_NULL;
2258	}
2259}
2260
2261const char* getVertexInputRateName (VkVertexInputRate value)
2262{
2263	switch (value)
2264	{
2265		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
2266		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
2267		default:							return DE_NULL;
2268	}
2269}
2270
2271tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2272{
2273	static const tcu::Format::BitDesc s_desc[] =
2274	{
2275		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,								"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2276		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,										"VK_PIPELINE_STAGE_NONE"),
2277		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2278		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2279		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2280		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,				"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2281		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2282		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,							"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2283		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,							"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2284		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2285		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,						"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2286		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2287		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,							"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2288		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,								"VK_PIPELINE_STAGE_TRANSFER_BIT"),
2289		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2290		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,									"VK_PIPELINE_STAGE_HOST_BIT"),
2291		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2292		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2293		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2294		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2295		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"),
2296		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"),
2297		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2298		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2299		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2300		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,					"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2301		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2302	};
2303	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2304}
2305
2306tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2307{
2308	static const tcu::Format::BitDesc s_desc[] =
2309	{
2310		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,			"VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2311		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,		"VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2312		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,	"VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2313	};
2314	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2315}
2316
2317tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2318{
2319	static const tcu::Format::BitDesc s_desc[] =
2320	{
2321		tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,		"VK_SAMPLE_COUNT_1_BIT"),
2322		tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,		"VK_SAMPLE_COUNT_2_BIT"),
2323		tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,		"VK_SAMPLE_COUNT_4_BIT"),
2324		tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,		"VK_SAMPLE_COUNT_8_BIT"),
2325		tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,	"VK_SAMPLE_COUNT_16_BIT"),
2326		tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,	"VK_SAMPLE_COUNT_32_BIT"),
2327		tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,	"VK_SAMPLE_COUNT_64_BIT"),
2328	};
2329	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2330}
2331
2332tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
2333{
2334	static const tcu::Format::BitDesc s_desc[] =
2335	{
2336		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,	"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
2337	};
2338	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2339}
2340
2341tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
2342{
2343	static const tcu::Format::BitDesc s_desc[] =
2344	{
2345		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,	"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
2346		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,	"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
2347		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,		"VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT"),
2348	};
2349	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2350}
2351
2352tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
2353{
2354	static const tcu::Format::BitDesc s_desc[] =
2355	{
2356		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
2357		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
2358		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
2359		tcu::Format::BitDesc(VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,	"VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"),
2360	};
2361	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2362}
2363
2364const char* getObjectTypeName (VkObjectType value)
2365{
2366	switch (value)
2367	{
2368		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
2369		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
2370		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
2371		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
2372		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
2373		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
2374		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
2375		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
2376		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
2377		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
2378		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
2379		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
2380		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
2381		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
2382		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
2383		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
2384		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
2385		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
2386		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
2387		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
2388		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
2389		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
2390		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
2391		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
2392		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
2393		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
2394		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
2395		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
2396		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
2397		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
2398		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
2399		case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:					return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
2400		case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:		return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
2401		case VK_OBJECT_TYPE_CU_MODULE_NVX:						return "VK_OBJECT_TYPE_CU_MODULE_NVX";
2402		case VK_OBJECT_TYPE_CU_FUNCTION_NVX:					return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
2403		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
2404		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
2405		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
2406		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
2407		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
2408		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
2409		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
2410		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
2411		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
2412		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:					return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
2413		case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:			return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
2414		case VK_OBJECT_TYPE_MICROMAP_EXT:						return "VK_OBJECT_TYPE_MICROMAP_EXT";
2415		case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV:			return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV";
2416		default:												return DE_NULL;
2417	}
2418}
2419
2420tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2421{
2422	static const tcu::Format::BitDesc s_desc[] =
2423	{
2424		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,	"VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
2425	};
2426	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2427}
2428
2429tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
2430{
2431	static const tcu::Format::BitDesc s_desc[] =
2432	{
2433		tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,	"VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
2434	};
2435	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2436}
2437
2438const char* getRayTracingInvocationReorderModeNVName (VkRayTracingInvocationReorderModeNV value)
2439{
2440	switch (value)
2441	{
2442		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV";
2443		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV";
2444		default:												return DE_NULL;
2445	}
2446}
2447
2448tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
2449{
2450	static const tcu::Format::BitDesc s_desc[] =
2451	{
2452		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
2453		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
2454		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
2455	};
2456	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2457}
2458
2459const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2460{
2461	switch (value)
2462	{
2463		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2464		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2465		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2466		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2467		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2468		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2469		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2470		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2471		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
2472		default:													return DE_NULL;
2473	}
2474}
2475
2476tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
2477{
2478	static const tcu::Format::BitDesc s_desc[] =
2479	{
2480		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
2481	};
2482	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2483}
2484
2485const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
2486{
2487	switch (value)
2488	{
2489		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:			return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
2490		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:	return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
2491		default:														return DE_NULL;
2492	}
2493}
2494
2495const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2496{
2497	switch (value)
2498	{
2499		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2500		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2501		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2502		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2503		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2504		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2505		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2506		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2507		default:											return DE_NULL;
2508	}
2509}
2510
2511const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2512{
2513	switch (value)
2514	{
2515		case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2516		case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2517		default:										return DE_NULL;
2518	}
2519}
2520
2521tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
2522{
2523	static const tcu::Format::BitDesc s_desc[] =
2524	{
2525		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,							"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
2526		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,						"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
2527		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
2528		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
2529		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"),
2530		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
2531		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
2532		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,						"VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"),
2533	};
2534	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2535}
2536
2537const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
2538{
2539	switch (value)
2540	{
2541		case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:		return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
2542		case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:	return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
2543		default:												return DE_NULL;
2544	}
2545}
2546
2547const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2548{
2549	switch (value)
2550	{
2551		case VK_COVERAGE_MODULATION_MODE_NONE_NV:	return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2552		case VK_COVERAGE_MODULATION_MODE_RGB_NV:	return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2553		case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:	return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2554		case VK_COVERAGE_MODULATION_MODE_RGBA_NV:	return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2555		default:									return DE_NULL;
2556	}
2557}
2558
2559const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2560{
2561	switch (value)
2562	{
2563		case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:		return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2564		case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:	return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2565		default:										return DE_NULL;
2566	}
2567}
2568
2569const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2570{
2571	switch (value)
2572	{
2573		case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:	return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2574		default:											return DE_NULL;
2575	}
2576}
2577
2578const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2579{
2580	switch (value)
2581	{
2582		case VK_SHADER_INFO_TYPE_STATISTICS_AMD:	return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2583		case VK_SHADER_INFO_TYPE_BINARY_AMD:		return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2584		case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:	return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2585		default:									return DE_NULL;
2586	}
2587}
2588
2589const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
2590{
2591	switch (value)
2592	{
2593		case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
2594		case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
2595		case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:		return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
2596		case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:	return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
2597		default:									return DE_NULL;
2598	}
2599}
2600
2601const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2602{
2603	switch (value)
2604	{
2605		case VK_TIME_DOMAIN_DEVICE_EXT:						return "VK_TIME_DOMAIN_DEVICE_EXT";
2606		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:			return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2607		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:		return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2608		case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:	return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2609		default:											return DE_NULL;
2610	}
2611}
2612
2613const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2614{
2615	switch (value)
2616	{
2617		case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2618		case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2619		case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2620		default:													return DE_NULL;
2621	}
2622}
2623
2624tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
2625{
2626	static const tcu::Format::BitDesc s_desc[] =
2627	{
2628		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,				"VK_RESOLVE_MODE_NONE"),
2629		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,	"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
2630		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,		"VK_RESOLVE_MODE_AVERAGE_BIT"),
2631		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,			"VK_RESOLVE_MODE_MIN_BIT"),
2632		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,			"VK_RESOLVE_MODE_MAX_BIT"),
2633	};
2634	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2635}
2636
2637tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
2638{
2639	static const tcu::Format::BitDesc s_desc[] =
2640	{
2641		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,			"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
2642		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,	"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
2643		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,				"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
2644		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,	"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
2645	};
2646	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2647}
2648
2649tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
2650{
2651	static const tcu::Format::BitDesc s_desc[] =
2652	{
2653		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,	"VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
2654	};
2655	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2656}
2657
2658const char* getSemaphoreTypeName (VkSemaphoreType value)
2659{
2660	switch (value)
2661	{
2662		case VK_SEMAPHORE_TYPE_BINARY:		return "VK_SEMAPHORE_TYPE_BINARY";
2663		case VK_SEMAPHORE_TYPE_TIMELINE:	return "VK_SEMAPHORE_TYPE_TIMELINE";
2664		default:							return DE_NULL;
2665	}
2666}
2667
2668tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
2669{
2670	static const tcu::Format::BitDesc s_desc[] =
2671	{
2672		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
2673		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
2674	};
2675	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2676}
2677
2678tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
2679{
2680	static const tcu::Format::BitDesc s_desc[] =
2681	{
2682		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
2683		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,			"VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
2684		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
2685		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,				"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
2686		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,	"VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"),
2687		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"),
2688	};
2689	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2690}
2691
2692tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
2693{
2694	static const tcu::Format::BitDesc s_desc[] =
2695	{
2696		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
2697		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
2698		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
2699		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
2700		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
2701		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,								"VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
2702		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,			"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"),
2703		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"),
2704		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"),
2705	};
2706	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2707}
2708
2709tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
2710{
2711	static const tcu::Format::BitDesc s_desc[] =
2712	{
2713		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
2714		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,							"VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
2715		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
2716	};
2717	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2718}
2719
2720const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2721{
2722	switch (value)
2723	{
2724		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2725		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2726		default:												return DE_NULL;
2727	}
2728}
2729
2730const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2731{
2732	switch (value)
2733	{
2734		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2735		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2736		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2737		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2738		default:													return DE_NULL;
2739	}
2740}
2741
2742const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2743{
2744	switch (value)
2745	{
2746		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2747		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2748		case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2749		default:												return DE_NULL;
2750	}
2751}
2752
2753const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2754{
2755	switch (value)
2756	{
2757		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2758		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
2759		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2760		default:								return DE_NULL;
2761	}
2762}
2763
2764const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2765{
2766	switch (value)
2767	{
2768		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2769		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2770		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2771		default:														return DE_NULL;
2772	}
2773}
2774
2775const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2776{
2777	switch (value)
2778	{
2779		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2780		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2781		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2782		default:																	return DE_NULL;
2783	}
2784}
2785
2786const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2787{
2788	switch (value)
2789	{
2790		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2791		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2792		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2793		default:														return DE_NULL;
2794	}
2795}
2796
2797const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2798{
2799	switch (value)
2800	{
2801		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2802		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2803		default:														return DE_NULL;
2804	}
2805}
2806
2807const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2808{
2809	switch (value)
2810	{
2811		case VK_SHADER_GROUP_SHADER_GENERAL_KHR:		return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2812		case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:	return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2813		case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:		return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2814		case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:	return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2815		default:										return DE_NULL;
2816	}
2817}
2818
2819const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2820{
2821	switch (value)
2822	{
2823		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2824		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2825		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2826		default:												return DE_NULL;
2827	}
2828}
2829
2830const char* getScopeNVName (VkScopeNV value)
2831{
2832	switch (value)
2833	{
2834		case VK_SCOPE_DEVICE_NV:		return "VK_SCOPE_DEVICE_NV";
2835		case VK_SCOPE_WORKGROUP_NV:		return "VK_SCOPE_WORKGROUP_NV";
2836		case VK_SCOPE_SUBGROUP_NV:		return "VK_SCOPE_SUBGROUP_NV";
2837		case VK_SCOPE_QUEUE_FAMILY_NV:	return "VK_SCOPE_QUEUE_FAMILY_NV";
2838		default:						return DE_NULL;
2839	}
2840}
2841
2842const char* getComponentTypeNVName (VkComponentTypeNV value)
2843{
2844	switch (value)
2845	{
2846		case VK_COMPONENT_TYPE_FLOAT16_NV:	return "VK_COMPONENT_TYPE_FLOAT16_NV";
2847		case VK_COMPONENT_TYPE_FLOAT32_NV:	return "VK_COMPONENT_TYPE_FLOAT32_NV";
2848		case VK_COMPONENT_TYPE_FLOAT64_NV:	return "VK_COMPONENT_TYPE_FLOAT64_NV";
2849		case VK_COMPONENT_TYPE_SINT8_NV:	return "VK_COMPONENT_TYPE_SINT8_NV";
2850		case VK_COMPONENT_TYPE_SINT16_NV:	return "VK_COMPONENT_TYPE_SINT16_NV";
2851		case VK_COMPONENT_TYPE_SINT32_NV:	return "VK_COMPONENT_TYPE_SINT32_NV";
2852		case VK_COMPONENT_TYPE_SINT64_NV:	return "VK_COMPONENT_TYPE_SINT64_NV";
2853		case VK_COMPONENT_TYPE_UINT8_NV:	return "VK_COMPONENT_TYPE_UINT8_NV";
2854		case VK_COMPONENT_TYPE_UINT16_NV:	return "VK_COMPONENT_TYPE_UINT16_NV";
2855		case VK_COMPONENT_TYPE_UINT32_NV:	return "VK_COMPONENT_TYPE_UINT32_NV";
2856		case VK_COMPONENT_TYPE_UINT64_NV:	return "VK_COMPONENT_TYPE_UINT64_NV";
2857		default:							return DE_NULL;
2858	}
2859}
2860
2861tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
2862{
2863	static const tcu::Format::BitDesc s_desc[] =
2864	{
2865		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
2866		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
2867		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
2868		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
2869	};
2870	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2871}
2872
2873tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
2874{
2875	static const tcu::Format::BitDesc s_desc[] =
2876	{
2877		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,							"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
2878		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,	"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
2879		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,		"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
2880	};
2881	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2882}
2883
2884const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
2885{
2886	switch (value)
2887	{
2888		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:	return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
2889		case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:		return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
2890		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
2891		default:												return DE_NULL;
2892	}
2893}
2894
2895const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
2896{
2897	switch (value)
2898	{
2899		case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
2900		case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
2901		case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
2902		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
2903		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:	return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
2904		case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
2905		case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
2906		case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
2907		case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
2908		case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
2909		case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
2910		default:												return DE_NULL;
2911	}
2912}
2913
2914const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
2915{
2916	switch (value)
2917	{
2918		case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
2919		case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
2920		case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
2921		case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
2922		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
2923		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
2924		default:											return DE_NULL;
2925	}
2926}
2927
2928tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
2929{
2930	static const tcu::Format::BitDesc s_desc[] =
2931	{
2932		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
2933		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
2934	};
2935	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2936}
2937
2938tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
2939{
2940	static const tcu::Format::BitDesc s_desc[] =
2941	{
2942		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,	"VK_SEMAPHORE_WAIT_ANY_BIT"),
2943	};
2944	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2945}
2946
2947const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2948{
2949	switch (value)
2950	{
2951		case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:	return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2952		default:																				return DE_NULL;
2953	}
2954}
2955
2956const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2957{
2958	switch (value)
2959	{
2960		case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:	return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2961		default:										return DE_NULL;
2962	}
2963}
2964
2965const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2966{
2967	switch (value)
2968	{
2969		case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:		return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2970		case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:	return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2971		default:													return DE_NULL;
2972	}
2973}
2974
2975const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2976{
2977	switch (value)
2978	{
2979		case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:		return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2980		case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:	return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2981		default:															return DE_NULL;
2982	}
2983}
2984
2985const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2986{
2987	switch (value)
2988	{
2989		case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2990		case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2991		case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2992		case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2993		case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2994		default:										return DE_NULL;
2995	}
2996}
2997
2998const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2999{
3000	switch (value)
3001	{
3002		case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:			return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
3003		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:		return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
3004		case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:			return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
3005		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT:	return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
3006		default:												return DE_NULL;
3007	}
3008}
3009
3010tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
3011{
3012	static const tcu::Format::BitDesc s_desc[] =
3013	{
3014		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,			"VK_TOOL_PURPOSE_VALIDATION_BIT"),
3015		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,				"VK_TOOL_PURPOSE_PROFILING_BIT"),
3016		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,				"VK_TOOL_PURPOSE_TRACING_BIT"),
3017		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,	"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
3018		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,	"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
3019		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,	"VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3020		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,		"VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3021	};
3022	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3023}
3024
3025const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
3026{
3027	switch (value)
3028	{
3029		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
3030		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
3031		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
3032		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
3033		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
3034		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
3035		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
3036		case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
3037		case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
3038		case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
3039		case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
3040		case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:				return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
3041		default:														return DE_NULL;
3042	}
3043}
3044
3045const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
3046{
3047	switch (value)
3048	{
3049		case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:	return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
3050		case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
3051		default:												return DE_NULL;
3052	}
3053}
3054
3055const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
3056{
3057	switch (value)
3058	{
3059		case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:									return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
3060		case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:								return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
3061		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
3062		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:				return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
3063		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
3064		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:						return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
3065		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
3066		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:	return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
3067		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
3068		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
3069		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
3070		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:		return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
3071		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
3072		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
3073		default:																	return DE_NULL;
3074	}
3075}
3076
3077tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
3078{
3079	static const tcu::Format::BitDesc s_desc[] =
3080	{
3081		tcu::Format::BitDesc(VK_ACCESS_2_NONE,											"VK_ACCESS_2_NONE"),
3082		tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
3083		tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,								"VK_ACCESS_2_INDEX_READ_BIT"),
3084		tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
3085		tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,								"VK_ACCESS_2_UNIFORM_READ_BIT"),
3086		tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
3087		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,								"VK_ACCESS_2_SHADER_READ_BIT"),
3088		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,								"VK_ACCESS_2_SHADER_WRITE_BIT"),
3089		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
3090		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,					"VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
3091		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
3092		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
3093		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,								"VK_ACCESS_2_TRANSFER_READ_BIT"),
3094		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,							"VK_ACCESS_2_TRANSFER_WRITE_BIT"),
3095		tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,									"VK_ACCESS_2_HOST_READ_BIT"),
3096		tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,								"VK_ACCESS_2_HOST_WRITE_BIT"),
3097		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,								"VK_ACCESS_2_MEMORY_READ_BIT"),
3098		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,								"VK_ACCESS_2_MEMORY_WRITE_BIT"),
3099		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
3100		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
3101		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
3102		tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,			"VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
3103		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
3104		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
3105		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
3106		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
3107		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
3108		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
3109		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
3110		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,						"VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
3111		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,						"VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
3112		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,						"VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
3113		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
3114		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
3115		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
3116		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
3117		tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,				"VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
3118		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,				"VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
3119		tcu::Format::BitDesc(VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,				"VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT"),
3120		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"),
3121		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"),
3122		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_READ_BIT_EXT,							"VK_ACCESS_2_MICROMAP_READ_BIT_EXT"),
3123		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,						"VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"),
3124	};
3125	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3126}
3127
3128tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
3129{
3130	static const tcu::Format::BitDesc s_desc[] =
3131	{
3132		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,										"VK_PIPELINE_STAGE_2_NONE"),
3133		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
3134		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
3135		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
3136		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
3137		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,			"VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
3138		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,		"VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
3139		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,						"VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
3140		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,						"VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
3141		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
3142		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
3143		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,				"VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
3144		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,						"VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
3145		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,							"VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
3146		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,						"VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
3147		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,									"VK_PIPELINE_STAGE_2_HOST_BIT"),
3148		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
3149		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
3150		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
3151		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3152		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"),
3153		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"),
3154		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,				"VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
3155		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3156		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3157		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,				"VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
3158		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3159		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
3160		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
3161		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
3162		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,						"VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"),
3163		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,					"VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"),
3164		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,									"VK_PIPELINE_STAGE_2_COPY_BIT"),
3165		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,								"VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
3166		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,									"VK_PIPELINE_STAGE_2_BLIT_BIT"),
3167		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,									"VK_PIPELINE_STAGE_2_CLEAR_BIT"),
3168		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
3169		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,				"VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
3170		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,				"VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
3171		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,				"VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"),
3172		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,				"VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
3173	};
3174	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3175}
3176
3177const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
3178{
3179	switch (value)
3180	{
3181		case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
3182		case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
3183		default:										return DE_NULL;
3184	}
3185}
3186
3187tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
3188{
3189	static const tcu::Format::BitDesc s_desc[] =
3190	{
3191		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
3192		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
3193		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
3194		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
3195		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
3196	};
3197	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3198}
3199
3200tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
3201{
3202	static const tcu::Format::BitDesc s_desc[] =
3203	{
3204		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
3205		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
3206		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
3207		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3208		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
3209		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
3210		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,																"VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
3211		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,															"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
3212		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
3213		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,													"VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
3214		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
3215		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
3216		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
3217		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
3218		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
3219		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
3220		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
3221		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
3222		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"),
3223		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"),
3224		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"),
3225		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"),
3226		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,																	"VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
3227		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
3228		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3229		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
3230		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
3231		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
3232		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
3233		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
3234		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,										"VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3235		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
3236		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
3237		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,											"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
3238		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,															"VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
3239		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,													"VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
3240		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,														"VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
3241		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,													"VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
3242		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,												"VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
3243		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"),
3244		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,													"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"),
3245		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"),
3246	};
3247	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3248}
3249
3250tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3251{
3252	static const tcu::Format::BitDesc s_desc[] =
3253	{
3254		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,	"VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3255		tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,							"VK_RENDERING_SUSPENDING_BIT"),
3256		tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,								"VK_RENDERING_RESUMING_BIT"),
3257		tcu::Format::BitDesc(VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,			"VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3258	};
3259	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3260}
3261
3262tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3263{
3264	static const tcu::Format::BitDesc s_desc[] =
3265	{
3266		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"),
3267		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"),
3268	};
3269	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3270}
3271
3272tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3273{
3274	static const tcu::Format::BitDesc s_desc[] =
3275	{
3276		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"),
3277	};
3278	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3279}
3280
3281tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
3282{
3283	static const tcu::Format::BitDesc s_desc[] =
3284	{
3285		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,				"VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
3286		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
3287		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
3288		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,				"VK_IMAGE_COMPRESSION_DISABLED_EXT"),
3289	};
3290	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3291}
3292
3293tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
3294{
3295	static const tcu::Format::BitDesc s_desc[] =
3296	{
3297		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,		"VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
3298		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
3299		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
3300		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
3301		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
3302		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
3303		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
3304		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
3305		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
3306		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
3307		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
3308		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
3309		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
3310		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
3311		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
3312		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
3313		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
3314		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
3315		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
3316		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
3317		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
3318		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
3319		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
3320		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
3321		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
3322	};
3323	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3324}
3325
3326tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
3327{
3328	static const tcu::Format::BitDesc s_desc[] =
3329	{
3330		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
3331		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
3332		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
3333		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
3334		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,		"VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
3335		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
3336	};
3337	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3338}
3339
3340const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
3341{
3342	switch (value)
3343	{
3344		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:			return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
3345		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:				return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
3346		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
3347		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
3348		default:																return DE_NULL;
3349	}
3350}
3351
3352const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
3353{
3354	switch (value)
3355	{
3356		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:			return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
3357		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:				return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
3358		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:		return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
3359		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:	return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
3360		default:																return DE_NULL;
3361	}
3362}
3363
3364tcu::Format::Bitfield<32> getDeviceAddressBindingFlagsEXTStr (VkDeviceAddressBindingFlagsEXT value)
3365{
3366	static const tcu::Format::BitDesc s_desc[] =
3367	{
3368		tcu::Format::BitDesc(VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT,	"VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"),
3369	};
3370	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3371}
3372
3373const char* getDeviceAddressBindingTypeEXTName (VkDeviceAddressBindingTypeEXT value)
3374{
3375	switch (value)
3376	{
3377		case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT";
3378		case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT";
3379		default:										return DE_NULL;
3380	}
3381}
3382
3383const char* getMicromapTypeEXTName (VkMicromapTypeEXT value)
3384{
3385	switch (value)
3386	{
3387		case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT:	return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT";
3388		default:									return DE_NULL;
3389	}
3390}
3391
3392const char* getBuildMicromapModeEXTName (VkBuildMicromapModeEXT value)
3393{
3394	switch (value)
3395	{
3396		case VK_BUILD_MICROMAP_MODE_BUILD_EXT:	return "VK_BUILD_MICROMAP_MODE_BUILD_EXT";
3397		default:								return DE_NULL;
3398	}
3399}
3400
3401const char* getCopyMicromapModeEXTName (VkCopyMicromapModeEXT value)
3402{
3403	switch (value)
3404	{
3405		case VK_COPY_MICROMAP_MODE_CLONE_EXT:		return "VK_COPY_MICROMAP_MODE_CLONE_EXT";
3406		case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT";
3407		case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT";
3408		case VK_COPY_MICROMAP_MODE_COMPACT_EXT:		return "VK_COPY_MICROMAP_MODE_COMPACT_EXT";
3409		default:									return DE_NULL;
3410	}
3411}
3412
3413tcu::Format::Bitfield<32> getBuildMicromapFlagsEXTStr (VkBuildMicromapFlagsEXT value)
3414{
3415	static const tcu::Format::BitDesc s_desc[] =
3416	{
3417		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT"),
3418		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT"),
3419		tcu::Format::BitDesc(VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT,	"VK_BUILD_MICROMAP_ALLOW_COMPACTION_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> getMicromapCreateFlagsEXTStr (VkMicromapCreateFlagsEXT value)
3425{
3426	static const tcu::Format::BitDesc s_desc[] =
3427	{
3428		tcu::Format::BitDesc(VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,	"VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3429	};
3430	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3431}
3432
3433const char* getOpacityMicromapFormatEXTName (VkOpacityMicromapFormatEXT value)
3434{
3435	switch (value)
3436	{
3437		case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT";
3438		case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT";
3439		default:										return DE_NULL;
3440	}
3441}
3442
3443const char* getOpacityMicromapSpecialIndexEXTName (VkOpacityMicromapSpecialIndexEXT value)
3444{
3445	switch (value)
3446	{
3447		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT:		return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT";
3448		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT:	return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT";
3449		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT:				return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT";
3450		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT:			return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT";
3451		default:																return DE_NULL;
3452	}
3453}
3454
3455const char* getDeviceFaultVendorBinaryHeaderVersionEXTName (VkDeviceFaultVendorBinaryHeaderVersionEXT value)
3456{
3457	switch (value)
3458	{
3459		case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT:	return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT";
3460		default:													return DE_NULL;
3461	}
3462}
3463
3464tcu::Format::Bitfield<64> getMemoryDecompressionMethodFlagsNVStr (VkMemoryDecompressionMethodFlagsNV value)
3465{
3466	static const tcu::Format::BitDesc s_desc[] =
3467	{
3468		tcu::Format::BitDesc(VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV,	"VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"),
3469	};
3470	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3471}
3472
3473const char* getDirectDriverLoadingModeLUNARGName (VkDirectDriverLoadingModeLUNARG value)
3474{
3475	switch (value)
3476	{
3477		case VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG";
3478		case VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG";
3479		default:												return DE_NULL;
3480	}
3481}
3482
3483const char* getColorSpaceKHRName (VkColorSpaceKHR value)
3484{
3485	switch (value)
3486	{
3487		case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:				return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
3488		case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:		return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
3489		case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:		return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
3490		case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:			return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
3491		case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:			return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
3492		case VK_COLOR_SPACE_BT709_LINEAR_EXT:				return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
3493		case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:			return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
3494		case VK_COLOR_SPACE_BT2020_LINEAR_EXT:				return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
3495		case VK_COLOR_SPACE_HDR10_ST2084_EXT:				return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
3496		case VK_COLOR_SPACE_DOLBYVISION_EXT:				return "VK_COLOR_SPACE_DOLBYVISION_EXT";
3497		case VK_COLOR_SPACE_HDR10_HLG_EXT:					return "VK_COLOR_SPACE_HDR10_HLG_EXT";
3498		case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
3499		case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
3500		case VK_COLOR_SPACE_PASS_THROUGH_EXT:				return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
3501		case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:	return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
3502		case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:				return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
3503		default:											return DE_NULL;
3504	}
3505}
3506
3507tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3508{
3509	static const tcu::Format::BitDesc s_desc[] =
3510	{
3511		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,				"VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3512		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,		"VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3513		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,	"VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3514		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,			"VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3515	};
3516	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3517}
3518
3519tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3520{
3521	static const tcu::Format::BitDesc s_desc[] =
3522	{
3523		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3524		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3525		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,					"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3526		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,	"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3527	};
3528	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3529}
3530
3531const char* getPresentModeKHRName (VkPresentModeKHR value)
3532{
3533	switch (value)
3534	{
3535		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
3536		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
3537		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
3538		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
3539		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
3540		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
3541		default:											return DE_NULL;
3542	}
3543}
3544
3545tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3546{
3547	static const tcu::Format::BitDesc s_desc[] =
3548	{
3549		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,						"VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3550		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3551		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3552		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3553		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,			"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3554		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3555		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3556		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3557		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,						"VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3558	};
3559	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3560}
3561
3562tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3563{
3564	static const tcu::Format::BitDesc s_desc[] =
3565	{
3566		tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,			"VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3567		tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,				"VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3568		tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,	"VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3569		tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,					"VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3570		tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,					"VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3571	};
3572	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3573}
3574
3575const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
3576{
3577	switch (value)
3578	{
3579		case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
3580		case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
3581		case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
3582		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
3583		case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
3584		case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
3585		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
3586		case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
3587		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
3588		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
3589		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
3590		case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
3591		case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
3592		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
3593		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
3594		case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
3595		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
3596		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
3597		case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
3598		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
3599		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
3600		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
3601		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
3602		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
3603		case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
3604		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
3605		case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
3606		case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
3607		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
3608		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
3609		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
3610		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
3611		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
3612		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
3613		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
3614		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
3615		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
3616		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
3617		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
3618		default:															return DE_NULL;
3619	}
3620}
3621
3622const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
3623{
3624	switch (value)
3625	{
3626		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
3627		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
3628		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
3629		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
3630		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:	return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
3631		default:														return DE_NULL;
3632	}
3633}
3634
3635const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
3636{
3637	switch (value)
3638	{
3639		case VK_RASTERIZATION_ORDER_STRICT_AMD:		return "VK_RASTERIZATION_ORDER_STRICT_AMD";
3640		case VK_RASTERIZATION_ORDER_RELAXED_AMD:	return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
3641		default:									return DE_NULL;
3642	}
3643}
3644
3645tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3646{
3647	static const tcu::Format::BitDesc s_desc[] =
3648	{
3649		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3650		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3651		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,			"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3652		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3653	};
3654	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3655}
3656
3657tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3658{
3659	static const tcu::Format::BitDesc s_desc[] =
3660	{
3661		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3662		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3663		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3664	};
3665	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3666}
3667
3668const char* getValidationCheckEXTName (VkValidationCheckEXT value)
3669{
3670	switch (value)
3671	{
3672		case VK_VALIDATION_CHECK_ALL_EXT:		return "VK_VALIDATION_CHECK_ALL_EXT";
3673		case VK_VALIDATION_CHECK_SHADERS_EXT:	return "VK_VALIDATION_CHECK_SHADERS_EXT";
3674		default:								return DE_NULL;
3675	}
3676}
3677
3678const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
3679{
3680	switch (value)
3681	{
3682		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
3683		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
3684		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
3685		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
3686		case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:			return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
3687		default:																	return DE_NULL;
3688	}
3689}
3690
3691const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
3692{
3693	switch (value)
3694	{
3695		case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:						return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
3696		case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:					return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
3697		case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
3698		case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
3699		case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
3700		case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
3701		case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
3702		case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT:	return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
3703		default:														return DE_NULL;
3704	}
3705}
3706
3707tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3708{
3709	static const tcu::Format::BitDesc s_desc[] =
3710	{
3711		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3712		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3713		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3714		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3715		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3716		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3717		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3718		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3719		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"),
3720		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3721		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3722		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3723		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3724		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY"),
3725	};
3726	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3727}
3728
3729tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3730{
3731	static const tcu::Format::BitDesc s_desc[] =
3732	{
3733		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3734		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3735		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3736	};
3737	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3738}
3739
3740tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3741{
3742	static const tcu::Format::BitDesc s_desc[] =
3743	{
3744		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3745		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3746		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3747		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3748		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3749		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3750	};
3751	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3752}
3753
3754tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3755{
3756	static const tcu::Format::BitDesc s_desc[] =
3757	{
3758		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3759		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3760	};
3761	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3762}
3763
3764tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3765{
3766	static const tcu::Format::BitDesc s_desc[] =
3767	{
3768		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,	"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3769	};
3770	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3771}
3772
3773tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3774{
3775	static const tcu::Format::BitDesc s_desc[] =
3776	{
3777		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3778		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3779		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,	"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3780		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3781	};
3782	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3783}
3784
3785tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3786{
3787	static const tcu::Format::BitDesc s_desc[] =
3788	{
3789		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3790		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3791	};
3792	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3793}
3794
3795tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3796{
3797	static const tcu::Format::BitDesc s_desc[] =
3798	{
3799		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,	"VK_FENCE_IMPORT_TEMPORARY_BIT"),
3800	};
3801	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3802}
3803
3804tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3805{
3806	static const tcu::Format::BitDesc s_desc[] =
3807	{
3808		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,	"VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3809	};
3810	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3811}
3812
3813const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
3814{
3815	switch (value)
3816	{
3817		case VK_DISPLAY_POWER_STATE_OFF_EXT:		return "VK_DISPLAY_POWER_STATE_OFF_EXT";
3818		case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:	return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
3819		case VK_DISPLAY_POWER_STATE_ON_EXT:			return "VK_DISPLAY_POWER_STATE_ON_EXT";
3820		default:									return DE_NULL;
3821	}
3822}
3823
3824const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
3825{
3826	switch (value)
3827	{
3828		case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:	return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
3829		default:										return DE_NULL;
3830	}
3831}
3832
3833const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
3834{
3835	switch (value)
3836	{
3837		case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:	return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
3838		default:										return DE_NULL;
3839	}
3840}
3841
3842tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3843{
3844	static const tcu::Format::BitDesc s_desc[] =
3845	{
3846		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3847		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3848		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3849		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3850	};
3851	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3852}
3853
3854tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3855{
3856	static const tcu::Format::BitDesc s_desc[] =
3857	{
3858		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3859		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3860		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,	"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3861	};
3862	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3863}
3864
3865tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3866{
3867	static const tcu::Format::BitDesc s_desc[] =
3868	{
3869		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3870		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3871		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,					"VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3872		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,	"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3873	};
3874	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3875}
3876
3877tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3878{
3879	static const tcu::Format::BitDesc s_desc[] =
3880	{
3881		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,	"VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3882		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,						"VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3883		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,				"VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3884		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT,	"VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT"),
3885	};
3886	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3887}
3888
3889tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3890{
3891	static const tcu::Format::BitDesc s_desc[] =
3892	{
3893		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,				"VK_SUBGROUP_FEATURE_BASIC_BIT"),
3894		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,				"VK_SUBGROUP_FEATURE_VOTE_BIT"),
3895		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,		"VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3896		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,			"VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3897		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,			"VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3898		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,	"VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3899		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,			"VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3900		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,				"VK_SUBGROUP_FEATURE_QUAD_BIT"),
3901		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,	"VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3902	};
3903	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3904}
3905
3906const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
3907{
3908	switch (value)
3909	{
3910		case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
3911		case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
3912		default:										return DE_NULL;
3913	}
3914}
3915
3916const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
3917{
3918	switch (value)
3919	{
3920		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
3921		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
3922		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
3923		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
3924		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
3925		default:												return DE_NULL;
3926	}
3927}
3928
3929const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
3930{
3931	switch (value)
3932	{
3933		case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:	return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
3934		case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:	return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
3935		default:								return DE_NULL;
3936	}
3937}
3938
3939const char* getChromaLocationName (VkChromaLocation value)
3940{
3941	switch (value)
3942	{
3943		case VK_CHROMA_LOCATION_COSITED_EVEN:	return "VK_CHROMA_LOCATION_COSITED_EVEN";
3944		case VK_CHROMA_LOCATION_MIDPOINT:		return "VK_CHROMA_LOCATION_MIDPOINT";
3945		default:								return DE_NULL;
3946	}
3947}
3948
3949const char* getSamplerReductionModeName (VkSamplerReductionMode value)
3950{
3951	switch (value)
3952	{
3953		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:	return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
3954		case VK_SAMPLER_REDUCTION_MODE_MIN:					return "VK_SAMPLER_REDUCTION_MODE_MIN";
3955		case VK_SAMPLER_REDUCTION_MODE_MAX:					return "VK_SAMPLER_REDUCTION_MODE_MAX";
3956		default:											return DE_NULL;
3957	}
3958}
3959
3960const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
3961{
3962	switch (value)
3963	{
3964		case VK_BLEND_OVERLAP_UNCORRELATED_EXT:	return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
3965		case VK_BLEND_OVERLAP_DISJOINT_EXT:		return "VK_BLEND_OVERLAP_DISJOINT_EXT";
3966		case VK_BLEND_OVERLAP_CONJOINT_EXT:		return "VK_BLEND_OVERLAP_CONJOINT_EXT";
3967		default:								return DE_NULL;
3968	}
3969}
3970
3971tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3972{
3973	static const tcu::Format::BitDesc s_desc[] =
3974	{
3975		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3976		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3977		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
3978		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
3979	};
3980	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3981}
3982
3983tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
3984{
3985	static const tcu::Format::BitDesc s_desc[] =
3986	{
3987		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,					"VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
3988		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
3989		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
3990		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT"),
3991	};
3992	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3993}
3994
3995const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
3996{
3997	switch (value)
3998	{
3999		case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
4000		case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
4001		case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:				return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
4002		case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:	return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
4003		default:													return DE_NULL;
4004	}
4005}
4006
4007const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
4008{
4009	switch (value)
4010	{
4011		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
4012		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:			return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
4013		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:		return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
4014		default:												return DE_NULL;
4015	}
4016}
4017
4018tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
4019{
4020	static const tcu::Format::BitDesc s_desc[] =
4021	{
4022		tcu::Format::BitDesc(VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID,	"VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"),
4023	};
4024	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4025}
4026
4027tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsOpenHarmonyStr (VkSwapchainImageUsageFlagsOpenHarmony value)
4028{
4029	static const tcu::Format::BitDesc s_desc[] =
4030	{
4031		tcu::Format::BitDesc(VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OPENHARMONY,	"VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OPENHARMONY"),
4032	};
4033	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4034}
4035
4036const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
4037{
4038	switch (value)
4039	{
4040		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
4041		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
4042		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
4043		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
4044		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
4045		default:												return DE_NULL;
4046	}
4047}
4048
4049tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
4050{
4051	static const tcu::Format::BitDesc s_desc[] =
4052	{
4053		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,	"VK_SUBMIT_PROTECTED_BIT"),
4054	};
4055	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4056}
4057
4058tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
4059{
4060	static const tcu::Format::BitDesc s_desc[] =
4061	{
4062		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,		"VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
4063		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
4064		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,				"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
4065		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
4066	};
4067	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4068}
4069
4070tcu::Format::Bitfield<32> getOpticalFlowGridSizeFlagsNVStr (VkOpticalFlowGridSizeFlagsNV value)
4071{
4072	static const tcu::Format::BitDesc s_desc[] =
4073	{
4074		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"),
4075		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV"),
4076		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV"),
4077		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV"),
4078		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV"),
4079	};
4080	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4081}
4082
4083tcu::Format::Bitfield<32> getOpticalFlowUsageFlagsNVStr (VkOpticalFlowUsageFlagsNV value)
4084{
4085	static const tcu::Format::BitDesc s_desc[] =
4086	{
4087		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,			"VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"),
4088		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV"),
4089		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV"),
4090		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV"),
4091		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_COST_BIT_NV"),
4092		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV"),
4093	};
4094	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4095}
4096
4097const char* getOpticalFlowPerformanceLevelNVName (VkOpticalFlowPerformanceLevelNV value)
4098{
4099	switch (value)
4100	{
4101		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV";
4102		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV";
4103		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV";
4104		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV";
4105		default:											return DE_NULL;
4106	}
4107}
4108
4109const char* getOpticalFlowSessionBindingPointNVName (VkOpticalFlowSessionBindingPointNV value)
4110{
4111	switch (value)
4112	{
4113		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV";
4114		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV";
4115		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV";
4116		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV";
4117		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV";
4118		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV:	return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV";
4119		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV";
4120		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV:		return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV";
4121		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV";
4122		default:															return DE_NULL;
4123	}
4124}
4125
4126tcu::Format::Bitfield<32> getOpticalFlowSessionCreateFlagsNVStr (VkOpticalFlowSessionCreateFlagsNV value)
4127{
4128	static const tcu::Format::BitDesc s_desc[] =
4129	{
4130		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV"),
4131		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV"),
4132		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV"),
4133		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV"),
4134		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV"),
4135	};
4136	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4137}
4138
4139tcu::Format::Bitfield<32> getOpticalFlowExecuteFlagsNVStr (VkOpticalFlowExecuteFlagsNV value)
4140{
4141	static const tcu::Format::BitDesc s_desc[] =
4142	{
4143		tcu::Format::BitDesc(VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV,	"VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"),
4144	};
4145	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4146}
4147
4148const char* getDeviceFaultAddressTypeEXTName (VkDeviceFaultAddressTypeEXT value)
4149{
4150	switch (value)
4151	{
4152		case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT:							return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT";
4153		case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT:					return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT";
4154		case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT";
4155		case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT";
4156		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT";
4157		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT";
4158		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT";
4159		default:															return DE_NULL;
4160	}
4161}
4162
4163tcu::Format::Bitfield<32> getPresentScalingFlagsEXTStr (VkPresentScalingFlagsEXT value)
4164{
4165	static const tcu::Format::BitDesc s_desc[] =
4166	{
4167		tcu::Format::BitDesc(VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,				"VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT"),
4168		tcu::Format::BitDesc(VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,	"VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"),
4169		tcu::Format::BitDesc(VK_PRESENT_SCALING_STRETCH_BIT_EXT,				"VK_PRESENT_SCALING_STRETCH_BIT_EXT"),
4170	};
4171	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4172}
4173
4174tcu::Format::Bitfield<32> getPresentGravityFlagsEXTStr (VkPresentGravityFlagsEXT value)
4175{
4176	static const tcu::Format::BitDesc s_desc[] =
4177	{
4178		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MIN_BIT_EXT,		"VK_PRESENT_GRAVITY_MIN_BIT_EXT"),
4179		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MAX_BIT_EXT,		"VK_PRESENT_GRAVITY_MAX_BIT_EXT"),
4180		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_CENTERED_BIT_EXT,	"VK_PRESENT_GRAVITY_CENTERED_BIT_EXT"),
4181	};
4182	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4183}
4184
4185const char* getVendorIdName (VkVendorId value)
4186{
4187	switch (value)
4188	{
4189		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
4190		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
4191		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
4192		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
4193		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
4194		case VK_VENDOR_ID_POCL:		return "VK_VENDOR_ID_POCL";
4195		default:					return DE_NULL;
4196	}
4197}
4198
4199const char* getDriverIdName (VkDriverId value)
4200{
4201	switch (value)
4202	{
4203		case VK_DRIVER_ID_AMD_PROPRIETARY:				return "VK_DRIVER_ID_AMD_PROPRIETARY";
4204		case VK_DRIVER_ID_AMD_OPEN_SOURCE:				return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
4205		case VK_DRIVER_ID_MESA_RADV:					return "VK_DRIVER_ID_MESA_RADV";
4206		case VK_DRIVER_ID_NVIDIA_PROPRIETARY:			return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
4207		case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:	return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
4208		case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:		return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
4209		case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:		return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
4210		case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:			return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
4211		case VK_DRIVER_ID_ARM_PROPRIETARY:				return "VK_DRIVER_ID_ARM_PROPRIETARY";
4212		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
4213		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
4214		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
4215		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
4216		case VK_DRIVER_ID_MOLTENVK:						return "VK_DRIVER_ID_MOLTENVK";
4217		case VK_DRIVER_ID_COREAVI_PROPRIETARY:			return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
4218		case VK_DRIVER_ID_JUICE_PROPRIETARY:			return "VK_DRIVER_ID_JUICE_PROPRIETARY";
4219		case VK_DRIVER_ID_VERISILICON_PROPRIETARY:		return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
4220		case VK_DRIVER_ID_MESA_TURNIP:					return "VK_DRIVER_ID_MESA_TURNIP";
4221		case VK_DRIVER_ID_MESA_V3DV:					return "VK_DRIVER_ID_MESA_V3DV";
4222		case VK_DRIVER_ID_MESA_PANVK:					return "VK_DRIVER_ID_MESA_PANVK";
4223		case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:			return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
4224		case VK_DRIVER_ID_MESA_VENUS:					return "VK_DRIVER_ID_MESA_VENUS";
4225		case VK_DRIVER_ID_MESA_DOZEN:					return "VK_DRIVER_ID_MESA_DOZEN";
4226		case VK_DRIVER_ID_MESA_NVK:						return "VK_DRIVER_ID_MESA_NVK";
4227		default:										return DE_NULL;
4228	}
4229}
4230
4231const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
4232{
4233	switch (value)
4234	{
4235		case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:				return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
4236		case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
4237		case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
4238		case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
4239		case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
4240		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
4241		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
4242		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
4243		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
4244		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
4245		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
4246		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
4247		default:															return DE_NULL;
4248	}
4249}
4250
4251const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
4252{
4253	switch (value)
4254	{
4255		case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
4256		case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:			return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
4257		case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
4258		case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
4259		default:											return DE_NULL;
4260	}
4261}
4262
4263const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
4264{
4265	switch (value)
4266	{
4267		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
4268		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:		return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
4269		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
4270		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
4271		default:													return DE_NULL;
4272	}
4273}
4274
4275tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4276{
4277	static const tcu::Format::BitDesc s_desc[] =
4278	{
4279		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_NONE_KHR,				"VK_VIDEO_CODEC_OPERATION_NONE_KHR"),
4280		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR"),
4281		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR"),
4282		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
4283		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
4284	};
4285	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4286}
4287
4288tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4289{
4290	static const tcu::Format::BitDesc s_desc[] =
4291	{
4292		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"),
4293		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,	"VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4294		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4295		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4296		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4297	};
4298	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4299}
4300
4301tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4302{
4303	static const tcu::Format::BitDesc s_desc[] =
4304	{
4305		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4306		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4307		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4308		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4309	};
4310	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4311}
4312
4313tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4314{
4315	static const tcu::Format::BitDesc s_desc[] =
4316	{
4317		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,			"VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4318		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,	"VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4319	};
4320	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4321}
4322
4323tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4324{
4325	static const tcu::Format::BitDesc s_desc[] =
4326	{
4327		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4328	};
4329	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4330}
4331
4332tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4333{
4334	static const tcu::Format::BitDesc s_desc[] =
4335	{
4336		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,						"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4337		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,		"VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"),
4338		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR,	"VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR"),
4339	};
4340	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4341}
4342
4343const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
4344{
4345	switch (value)
4346	{
4347		case VK_QUERY_RESULT_STATUS_ERROR_KHR:		return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
4348		case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:	return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
4349		case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:	return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
4350		default:									return DE_NULL;
4351	}
4352}
4353
4354tcu::Format::Bitfield<32> getVideoDecodeUsageFlagsKHRStr (VkVideoDecodeUsageFlagsKHR value)
4355{
4356	static const tcu::Format::BitDesc s_desc[] =
4357	{
4358		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,			"VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"),
4359		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"),
4360		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,		"VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"),
4361		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"),
4362	};
4363	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4364}
4365
4366tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
4367{
4368	static const tcu::Format::BitDesc s_desc[] =
4369	{
4370		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
4371		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
4372	};
4373	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4374}
4375
4376tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsKHRStr (VkVideoDecodeH264PictureLayoutFlagsKHR value)
4377{
4378	static const tcu::Format::BitDesc s_desc[] =
4379	{
4380		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,						"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"),
4381		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"),
4382		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"),
4383	};
4384	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4385}
4386
4387tcu::Format::Bitfield<32> getVideoEncodeUsageFlagsKHRStr (VkVideoEncodeUsageFlagsKHR value)
4388{
4389	static const tcu::Format::BitDesc s_desc[] =
4390	{
4391		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,				"VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"),
4392		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"),
4393		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"),
4394		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"),
4395		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,	"VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"),
4396	};
4397	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4398}
4399
4400tcu::Format::Bitfield<32> getVideoEncodeContentFlagsKHRStr (VkVideoEncodeContentFlagsKHR value)
4401{
4402	static const tcu::Format::BitDesc s_desc[] =
4403	{
4404		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,		"VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"),
4405		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"),
4406		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"),
4407		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"),
4408	};
4409	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4410}
4411
4412const char* getVideoEncodeTuningModeKHRName (VkVideoEncodeTuningModeKHR value)
4413{
4414	switch (value)
4415	{
4416		case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
4417		case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
4418		case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
4419		case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR:	return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
4420		case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
4421		default:												return DE_NULL;
4422	}
4423}
4424
4425tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
4426{
4427	static const tcu::Format::BitDesc s_desc[] =
4428	{
4429		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,	"VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
4430	};
4431	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4432}
4433
4434tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4435{
4436	static const tcu::Format::BitDesc s_desc[] =
4437	{
4438		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4439		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,		"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4440		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,		"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4441	};
4442	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4443}
4444
4445tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
4446{
4447	static const tcu::Format::BitDesc s_desc[] =
4448	{
4449		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"),
4450		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"),
4451		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4452		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"),
4453		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,						"VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4454		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,					"VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4455		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,					"VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4456		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"),
4457		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"),
4458		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,						"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4459		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
4460		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
4461		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4462		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,						"VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4463		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,								"VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4464		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,								"VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4465		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4466		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4467		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4468		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"),
4469		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"),
4470		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,					"VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
4471		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
4472		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4473		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4474	};
4475	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4476}
4477
4478tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4479{
4480	static const tcu::Format::BitDesc s_desc[] =
4481	{
4482		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,		"VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4483		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,		"VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4484		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,	"VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4485	};
4486	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4487}
4488
4489tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4490{
4491	static const tcu::Format::BitDesc s_desc[] =
4492	{
4493		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,	"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4494		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,	"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4495		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,	"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4496	};
4497	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4498}
4499
4500const char* getVideoEncodeH264RateControlStructureEXTName (VkVideoEncodeH264RateControlStructureEXT value)
4501{
4502	switch (value)
4503	{
4504		case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:	return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4505		case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT:		return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4506		case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT:	return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4507		default:														return DE_NULL;
4508	}
4509}
4510
4511tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
4512{
4513	static const tcu::Format::BitDesc s_desc[] =
4514	{
4515		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,					"VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4516		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,							"VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4517		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"),
4518		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,							"VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
4519		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"),
4520		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,						"VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4521		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,						"VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
4522		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,		"VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"),
4523		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"),
4524		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
4525		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
4526		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,	"VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"),
4527		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,							"VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4528		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,						"VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
4529		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4530		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
4531		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,			"VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"),
4532		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,	"VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"),
4533		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"),
4534		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"),
4535		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"),
4536		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"),
4537		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,			"VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"),
4538		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,				"VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
4539		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,					"VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4540		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,					"VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4541	};
4542	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4543}
4544
4545tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
4546{
4547	static const tcu::Format::BitDesc s_desc[] =
4548	{
4549		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
4550		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,	"VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4551		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,		"VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
4552	};
4553	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4554}
4555
4556tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
4557{
4558	static const tcu::Format::BitDesc s_desc[] =
4559	{
4560		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
4561		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,	"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4562		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4563	};
4564	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4565}
4566
4567const char* getVideoEncodeH265RateControlStructureEXTName (VkVideoEncodeH265RateControlStructureEXT value)
4568{
4569	switch (value)
4570	{
4571		case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:	return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4572		case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT:		return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4573		case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT:	return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4574		default:														return DE_NULL;
4575	}
4576}
4577
4578tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
4579{
4580	static const tcu::Format::BitDesc s_desc[] =
4581	{
4582		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
4583		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
4584		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
4585	};
4586	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4587}
4588
4589tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
4590{
4591	static const tcu::Format::BitDesc s_desc[] =
4592	{
4593		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
4594		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
4595		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
4596		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
4597	};
4598	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4599}
4600
4601const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
4602{
4603	switch (value)
4604	{
4605		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:			return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
4606		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:	return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
4607		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:		return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
4608		default:																return DE_NULL;
4609	}
4610}
4611
4612const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
4613{
4614	switch (value)
4615	{
4616		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
4617		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
4618		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
4619		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
4620		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
4621		default:											return DE_NULL;
4622	}
4623}
4624
4625const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
4626{
4627	switch (value)
4628	{
4629		case STD_VIDEO_H264_PROFILE_IDC_BASELINE:				return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
4630		case STD_VIDEO_H264_PROFILE_IDC_MAIN:					return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
4631		case STD_VIDEO_H264_PROFILE_IDC_HIGH:					return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
4632		case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:	return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
4633		case STD_VIDEO_H264_PROFILE_IDC_INVALID:				return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
4634		default:												return DE_NULL;
4635	}
4636}
4637
4638const char* getdVideoH264LevelIdcName (StdVideoH264LevelIdc value)
4639{
4640	switch (value)
4641	{
4642		case STD_VIDEO_H264_LEVEL_IDC_1_0:		return "STD_VIDEO_H264_LEVEL_IDC_1_0";
4643		case STD_VIDEO_H264_LEVEL_IDC_1_1:		return "STD_VIDEO_H264_LEVEL_IDC_1_1";
4644		case STD_VIDEO_H264_LEVEL_IDC_1_2:		return "STD_VIDEO_H264_LEVEL_IDC_1_2";
4645		case STD_VIDEO_H264_LEVEL_IDC_1_3:		return "STD_VIDEO_H264_LEVEL_IDC_1_3";
4646		case STD_VIDEO_H264_LEVEL_IDC_2_0:		return "STD_VIDEO_H264_LEVEL_IDC_2_0";
4647		case STD_VIDEO_H264_LEVEL_IDC_2_1:		return "STD_VIDEO_H264_LEVEL_IDC_2_1";
4648		case STD_VIDEO_H264_LEVEL_IDC_2_2:		return "STD_VIDEO_H264_LEVEL_IDC_2_2";
4649		case STD_VIDEO_H264_LEVEL_IDC_3_0:		return "STD_VIDEO_H264_LEVEL_IDC_3_0";
4650		case STD_VIDEO_H264_LEVEL_IDC_3_1:		return "STD_VIDEO_H264_LEVEL_IDC_3_1";
4651		case STD_VIDEO_H264_LEVEL_IDC_3_2:		return "STD_VIDEO_H264_LEVEL_IDC_3_2";
4652		case STD_VIDEO_H264_LEVEL_IDC_4_0:		return "STD_VIDEO_H264_LEVEL_IDC_4_0";
4653		case STD_VIDEO_H264_LEVEL_IDC_4_1:		return "STD_VIDEO_H264_LEVEL_IDC_4_1";
4654		case STD_VIDEO_H264_LEVEL_IDC_4_2:		return "STD_VIDEO_H264_LEVEL_IDC_4_2";
4655		case STD_VIDEO_H264_LEVEL_IDC_5_0:		return "STD_VIDEO_H264_LEVEL_IDC_5_0";
4656		case STD_VIDEO_H264_LEVEL_IDC_5_1:		return "STD_VIDEO_H264_LEVEL_IDC_5_1";
4657		case STD_VIDEO_H264_LEVEL_IDC_5_2:		return "STD_VIDEO_H264_LEVEL_IDC_5_2";
4658		case STD_VIDEO_H264_LEVEL_IDC_6_0:		return "STD_VIDEO_H264_LEVEL_IDC_6_0";
4659		case STD_VIDEO_H264_LEVEL_IDC_6_1:		return "STD_VIDEO_H264_LEVEL_IDC_6_1";
4660		case STD_VIDEO_H264_LEVEL_IDC_6_2:		return "STD_VIDEO_H264_LEVEL_IDC_6_2";
4661		case STD_VIDEO_H264_LEVEL_IDC_INVALID:	return "STD_VIDEO_H264_LEVEL_IDC_INVALID";
4662		default:								return DE_NULL;
4663	}
4664}
4665
4666const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
4667{
4668	switch (value)
4669	{
4670		case STD_VIDEO_H264_POC_TYPE_0:			return "STD_VIDEO_H264_POC_TYPE_0";
4671		case STD_VIDEO_H264_POC_TYPE_1:			return "STD_VIDEO_H264_POC_TYPE_1";
4672		case STD_VIDEO_H264_POC_TYPE_2:			return "STD_VIDEO_H264_POC_TYPE_2";
4673		case STD_VIDEO_H264_POC_TYPE_INVALID:	return "STD_VIDEO_H264_POC_TYPE_INVALID";
4674		default:								return DE_NULL;
4675	}
4676}
4677
4678const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
4679{
4680	switch (value)
4681	{
4682		case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
4683		case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
4684		case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
4685		case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
4686		case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
4687		case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
4688		case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
4689		case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
4690		case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
4691		case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
4692		case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
4693		case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
4694		case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
4695		case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
4696		case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
4697		case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
4698		case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
4699		case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
4700		case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
4701		default:											return DE_NULL;
4702	}
4703}
4704
4705const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
4706{
4707	switch (value)
4708	{
4709		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
4710		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
4711		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
4712		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
4713		default:											return DE_NULL;
4714	}
4715}
4716
4717const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
4718{
4719	switch (value)
4720	{
4721		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:	return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
4722		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:		return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
4723		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
4724		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:					return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
4725		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
4726		default:																return DE_NULL;
4727	}
4728}
4729
4730const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
4731{
4732	switch (value)
4733	{
4734		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:						return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
4735		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
4736		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
4737		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:				return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
4738		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";
4739		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
4740		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";
4741		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
4742		default:															return DE_NULL;
4743	}
4744}
4745
4746const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
4747{
4748	switch (value)
4749	{
4750		case STD_VIDEO_H264_CABAC_INIT_IDC_0:		return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
4751		case STD_VIDEO_H264_CABAC_INIT_IDC_1:		return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
4752		case STD_VIDEO_H264_CABAC_INIT_IDC_2:		return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
4753		case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:	return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
4754		default:									return DE_NULL;
4755	}
4756}
4757
4758const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
4759{
4760	switch (value)
4761	{
4762		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
4763		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
4764		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
4765		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
4766		default:													return DE_NULL;
4767	}
4768}
4769
4770const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
4771{
4772	switch (value)
4773	{
4774		case STD_VIDEO_H264_SLICE_TYPE_P:		return "STD_VIDEO_H264_SLICE_TYPE_P";
4775		case STD_VIDEO_H264_SLICE_TYPE_B:		return "STD_VIDEO_H264_SLICE_TYPE_B";
4776		case STD_VIDEO_H264_SLICE_TYPE_I:		return "STD_VIDEO_H264_SLICE_TYPE_I";
4777		case STD_VIDEO_H264_SLICE_TYPE_INVALID:	return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
4778		default:								return DE_NULL;
4779	}
4780}
4781
4782const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
4783{
4784	switch (value)
4785	{
4786		case STD_VIDEO_H264_PICTURE_TYPE_P:			return "STD_VIDEO_H264_PICTURE_TYPE_P";
4787		case STD_VIDEO_H264_PICTURE_TYPE_B:			return "STD_VIDEO_H264_PICTURE_TYPE_B";
4788		case STD_VIDEO_H264_PICTURE_TYPE_I:			return "STD_VIDEO_H264_PICTURE_TYPE_I";
4789		case STD_VIDEO_H264_PICTURE_TYPE_IDR:		return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
4790		case STD_VIDEO_H264_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
4791		default:									return DE_NULL;
4792	}
4793}
4794
4795const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
4796{
4797	switch (value)
4798	{
4799		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
4800		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
4801		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
4802		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
4803		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
4804		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
4805		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
4806		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
4807		default:												return DE_NULL;
4808	}
4809}
4810
4811const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
4812{
4813	switch (value)
4814	{
4815		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:		return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
4816		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
4817		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
4818		default:												return DE_NULL;
4819	}
4820}
4821
4822const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
4823{
4824	switch (value)
4825	{
4826		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
4827		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
4828		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
4829		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
4830		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
4831		default:											return DE_NULL;
4832	}
4833}
4834
4835const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
4836{
4837	switch (value)
4838	{
4839		case STD_VIDEO_H265_PROFILE_IDC_MAIN:						return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
4840		case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:					return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
4841		case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:			return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
4842		case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:	return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
4843		case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:				return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
4844		case STD_VIDEO_H265_PROFILE_IDC_INVALID:					return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
4845		default:													return DE_NULL;
4846	}
4847}
4848
4849const char* getdVideoH265LevelIdcName (StdVideoH265LevelIdc value)
4850{
4851	switch (value)
4852	{
4853		case STD_VIDEO_H265_LEVEL_IDC_1_0:		return "STD_VIDEO_H265_LEVEL_IDC_1_0";
4854		case STD_VIDEO_H265_LEVEL_IDC_2_0:		return "STD_VIDEO_H265_LEVEL_IDC_2_0";
4855		case STD_VIDEO_H265_LEVEL_IDC_2_1:		return "STD_VIDEO_H265_LEVEL_IDC_2_1";
4856		case STD_VIDEO_H265_LEVEL_IDC_3_0:		return "STD_VIDEO_H265_LEVEL_IDC_3_0";
4857		case STD_VIDEO_H265_LEVEL_IDC_3_1:		return "STD_VIDEO_H265_LEVEL_IDC_3_1";
4858		case STD_VIDEO_H265_LEVEL_IDC_4_0:		return "STD_VIDEO_H265_LEVEL_IDC_4_0";
4859		case STD_VIDEO_H265_LEVEL_IDC_4_1:		return "STD_VIDEO_H265_LEVEL_IDC_4_1";
4860		case STD_VIDEO_H265_LEVEL_IDC_5_0:		return "STD_VIDEO_H265_LEVEL_IDC_5_0";
4861		case STD_VIDEO_H265_LEVEL_IDC_5_1:		return "STD_VIDEO_H265_LEVEL_IDC_5_1";
4862		case STD_VIDEO_H265_LEVEL_IDC_5_2:		return "STD_VIDEO_H265_LEVEL_IDC_5_2";
4863		case STD_VIDEO_H265_LEVEL_IDC_6_0:		return "STD_VIDEO_H265_LEVEL_IDC_6_0";
4864		case STD_VIDEO_H265_LEVEL_IDC_6_1:		return "STD_VIDEO_H265_LEVEL_IDC_6_1";
4865		case STD_VIDEO_H265_LEVEL_IDC_6_2:		return "STD_VIDEO_H265_LEVEL_IDC_6_2";
4866		case STD_VIDEO_H265_LEVEL_IDC_INVALID:	return "STD_VIDEO_H265_LEVEL_IDC_INVALID";
4867		default:								return DE_NULL;
4868	}
4869}
4870
4871const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
4872{
4873	switch (value)
4874	{
4875		case STD_VIDEO_H265_SLICE_TYPE_B:		return "STD_VIDEO_H265_SLICE_TYPE_B";
4876		case STD_VIDEO_H265_SLICE_TYPE_P:		return "STD_VIDEO_H265_SLICE_TYPE_P";
4877		case STD_VIDEO_H265_SLICE_TYPE_I:		return "STD_VIDEO_H265_SLICE_TYPE_I";
4878		case STD_VIDEO_H265_SLICE_TYPE_INVALID:	return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
4879		default:								return DE_NULL;
4880	}
4881}
4882
4883const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
4884{
4885	switch (value)
4886	{
4887		case STD_VIDEO_H265_PICTURE_TYPE_P:			return "STD_VIDEO_H265_PICTURE_TYPE_P";
4888		case STD_VIDEO_H265_PICTURE_TYPE_B:			return "STD_VIDEO_H265_PICTURE_TYPE_B";
4889		case STD_VIDEO_H265_PICTURE_TYPE_I:			return "STD_VIDEO_H265_PICTURE_TYPE_I";
4890		case STD_VIDEO_H265_PICTURE_TYPE_IDR:		return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
4891		case STD_VIDEO_H265_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
4892		default:									return DE_NULL;
4893	}
4894}
4895
4896const char* getdVideoH265AspectRatioIdcName (StdVideoH265AspectRatioIdc value)
4897{
4898	switch (value)
4899	{
4900		case STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED";
4901		case STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE";
4902		case STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11";
4903		case STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11";
4904		case STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11";
4905		case STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33";
4906		case STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11";
4907		case STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11";
4908		case STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11";
4909		case STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33";
4910		case STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11";
4911		case STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11";
4912		case STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33";
4913		case STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99";
4914		case STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3";
4915		case STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2";
4916		case STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1";
4917		case STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR";
4918		case STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID";
4919		default:											return DE_NULL;
4920	}
4921}
4922
4923tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4924{
4925	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4926}
4927
4928tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4929{
4930	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4931}
4932
4933tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4934{
4935	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4936}
4937
4938tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4939{
4940	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4941}
4942
4943tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4944{
4945	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4946}
4947
4948tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4949{
4950	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4951}
4952
4953tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4954{
4955	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4956}
4957
4958tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4959{
4960	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4961}
4962
4963tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4964{
4965	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4966}
4967
4968tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4969{
4970	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4971}
4972
4973tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4974{
4975	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4976}
4977
4978tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
4979{
4980	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4981}
4982
4983tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4984{
4985	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4986}
4987
4988tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4989{
4990	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4991}
4992
4993tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
4994{
4995	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4996}
4997
4998tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4999{
5000	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5001}
5002
5003tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
5004{
5005	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5006}
5007
5008tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
5009{
5010	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5011}
5012
5013tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
5014{
5015	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5016}
5017
5018tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
5019{
5020	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5021}
5022
5023tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
5024{
5025	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5026}
5027
5028tcu::Format::Bitfield<32> getDirectDriverLoadingFlagsLUNARGStr (VkDirectDriverLoadingFlagsLUNARG value)
5029{
5030	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5031}
5032
5033tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
5034{
5035	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5036}
5037
5038tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
5039{
5040	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5041}
5042
5043tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
5044{
5045	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5046}
5047
5048tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
5049{
5050	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5051}
5052
5053tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
5054{
5055	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5056}
5057
5058tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
5059{
5060	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5061}
5062
5063tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
5064{
5065	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5066}
5067
5068tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
5069{
5070	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5071}
5072
5073tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
5074{
5075	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5076}
5077
5078tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
5079{
5080	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5081}
5082
5083tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
5084{
5085	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5086}
5087
5088tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
5089{
5090	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5091}
5092
5093tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
5094{
5095	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5096}
5097
5098tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
5099{
5100	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5101}
5102
5103tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
5104{
5105	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5106}
5107
5108tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
5109{
5110	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5111}
5112
5113tcu::Format::Bitfield<32> getOHOSSurfaceCreateFlagsOpenHarmonyStr (VkOHOSSurfaceCreateFlagsOpenHarmony value)
5114{
5115	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5116}
5117
5118tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
5119{
5120	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5121}
5122
5123tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
5124{
5125	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5126}
5127
5128tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
5129{
5130	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5131}
5132
5133tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
5134{
5135	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5136}
5137
5138tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
5139{
5140	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5141}
5142
5143tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
5144{
5145	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5146}
5147
5148tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
5149{
5150	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5151}
5152
5153tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
5154{
5155	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5156}
5157
5158tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
5159{
5160	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5161}
5162
5163tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
5164{
5165	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5166}
5167
5168tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
5169{
5170	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5171}
5172
5173tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
5174{
5175	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5176}
5177
5178tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
5179{
5180	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5181}
5182
5183tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
5184{
5185	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5186}
5187
5188tcu::Format::Bitfield<32> getVideoSessionParametersCreateFlagsKHRStr (VkVideoSessionParametersCreateFlagsKHR value)
5189{
5190	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5191}
5192
5193tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
5194{
5195	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5196}
5197
5198tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
5199{
5200	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5201}
5202
5203tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
5204{
5205	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5206}
5207
5208tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
5209{
5210	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5211}
5212
5213tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
5214{
5215	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5216}
5217
5218std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
5219{
5220	s << "VkBaseOutStructure = {\n";
5221	s << "\tsType = " << value.sType << '\n';
5222	s << "\tpNext = " << value.pNext << '\n';
5223	s << '}';
5224	return s;
5225}
5226
5227std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
5228{
5229	s << "VkBaseInStructure = {\n";
5230	s << "\tsType = " << value.sType << '\n';
5231	s << "\tpNext = " << value.pNext << '\n';
5232	s << '}';
5233	return s;
5234}
5235
5236std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
5237{
5238	s << "VkOffset2D = {\n";
5239	s << "\tx = " << value.x << '\n';
5240	s << "\ty = " << value.y << '\n';
5241	s << '}';
5242	return s;
5243}
5244
5245std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
5246{
5247	s << "VkOffset3D = {\n";
5248	s << "\tx = " << value.x << '\n';
5249	s << "\ty = " << value.y << '\n';
5250	s << "\tz = " << value.z << '\n';
5251	s << '}';
5252	return s;
5253}
5254
5255std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
5256{
5257	s << "VkExtent2D = {\n";
5258	s << "\twidth = " << value.width << '\n';
5259	s << "\theight = " << value.height << '\n';
5260	s << '}';
5261	return s;
5262}
5263
5264std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
5265{
5266	s << "VkExtent3D = {\n";
5267	s << "\twidth = " << value.width << '\n';
5268	s << "\theight = " << value.height << '\n';
5269	s << "\tdepth = " << value.depth << '\n';
5270	s << '}';
5271	return s;
5272}
5273
5274std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5275{
5276	s << "VkViewport = {\n";
5277	s << "\tx = " << value.x << '\n';
5278	s << "\ty = " << value.y << '\n';
5279	s << "\twidth = " << value.width << '\n';
5280	s << "\theight = " << value.height << '\n';
5281	s << "\tminDepth = " << value.minDepth << '\n';
5282	s << "\tmaxDepth = " << value.maxDepth << '\n';
5283	s << '}';
5284	return s;
5285}
5286
5287std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
5288{
5289	s << "VkRect2D = {\n";
5290	s << "\toffset = " << value.offset << '\n';
5291	s << "\textent = " << value.extent << '\n';
5292	s << '}';
5293	return s;
5294}
5295
5296std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
5297{
5298	s << "VkClearRect = {\n";
5299	s << "\trect = " << value.rect << '\n';
5300	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5301	s << "\tlayerCount = " << value.layerCount << '\n';
5302	s << '}';
5303	return s;
5304}
5305
5306std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5307{
5308	s << "VkComponentMapping = {\n";
5309	s << "\tr = " << value.r << '\n';
5310	s << "\tg = " << value.g << '\n';
5311	s << "\tb = " << value.b << '\n';
5312	s << "\ta = " << value.a << '\n';
5313	s << '}';
5314	return s;
5315}
5316
5317std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
5318{
5319	s << "VkPhysicalDeviceProperties = {\n";
5320	s << "\tapiVersion = " << value.apiVersion << '\n';
5321	s << "\tdriverVersion = " << value.driverVersion << '\n';
5322	s << "\tvendorID = " << value.vendorID << '\n';
5323	s << "\tdeviceID = " << value.deviceID << '\n';
5324	s << "\tdeviceType = " << value.deviceType << '\n';
5325	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
5326	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';
5327	s << "\tlimits = " << value.limits << '\n';
5328	s << "\tsparseProperties = " << value.sparseProperties << '\n';
5329	s << '}';
5330	return s;
5331}
5332
5333std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
5334{
5335	s << "VkExtensionProperties = {\n";
5336	s << "\textensionName = " << (const char*)value.extensionName << '\n';
5337	s << "\tspecVersion = " << value.specVersion << '\n';
5338	s << '}';
5339	return s;
5340}
5341
5342std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
5343{
5344	s << "VkLayerProperties = {\n";
5345	s << "\tlayerName = " << (const char*)value.layerName << '\n';
5346	s << "\tspecVersion = " << value.specVersion << '\n';
5347	s << "\timplementationVersion = " << value.implementationVersion << '\n';
5348	s << "\tdescription = " << (const char*)value.description << '\n';
5349	s << '}';
5350	return s;
5351}
5352
5353std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
5354{
5355	s << "VkApplicationInfo = {\n";
5356	s << "\tsType = " << value.sType << '\n';
5357	s << "\tpNext = " << value.pNext << '\n';
5358	s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
5359	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
5360	s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
5361	s << "\tengineVersion = " << value.engineVersion << '\n';
5362	s << "\tapiVersion = " << value.apiVersion << '\n';
5363	s << '}';
5364	return s;
5365}
5366
5367std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
5368{
5369	s << "VkAllocationCallbacks = {\n";
5370	s << "\tpUserData = " << value.pUserData << '\n';
5371	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
5372	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
5373	s << "\tpfnFree = " << value.pfnFree << '\n';
5374	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
5375	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
5376	s << '}';
5377	return s;
5378}
5379
5380std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
5381{
5382	s << "VkDeviceQueueCreateInfo = {\n";
5383	s << "\tsType = " << value.sType << '\n';
5384	s << "\tpNext = " << value.pNext << '\n';
5385	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
5386	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5387	s << "\tqueueCount = " << value.queueCount << '\n';
5388	s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
5389	s << '}';
5390	return s;
5391}
5392
5393std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
5394{
5395	s << "VkDeviceCreateInfo = {\n";
5396	s << "\tsType = " << value.sType << '\n';
5397	s << "\tpNext = " << value.pNext << '\n';
5398	s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
5399	s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
5400	s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
5401	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5402	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5403	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5404	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5405	s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
5406	s << '}';
5407	return s;
5408}
5409
5410std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
5411{
5412	s << "VkInstanceCreateInfo = {\n";
5413	s << "\tsType = " << value.sType << '\n';
5414	s << "\tpNext = " << value.pNext << '\n';
5415	s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
5416	s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
5417	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5418	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5419	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5420	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5421	s << '}';
5422	return s;
5423}
5424
5425std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
5426{
5427	s << "VkQueueFamilyProperties = {\n";
5428	s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
5429	s << "\tqueueCount = " << value.queueCount << '\n';
5430	s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
5431	s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5432	s << '}';
5433	return s;
5434}
5435
5436std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5437{
5438	s << "VkPhysicalDeviceMemoryProperties = {\n";
5439	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5440	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5441	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5442	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5443	s << '}';
5444	return s;
5445}
5446
5447std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5448{
5449	s << "VkMemoryAllocateInfo = {\n";
5450	s << "\tsType = " << value.sType << '\n';
5451	s << "\tpNext = " << value.pNext << '\n';
5452	s << "\tallocationSize = " << value.allocationSize << '\n';
5453	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5454	s << '}';
5455	return s;
5456}
5457
5458std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5459{
5460	s << "VkMemoryRequirements = {\n";
5461	s << "\tsize = " << value.size << '\n';
5462	s << "\talignment = " << value.alignment << '\n';
5463	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5464	s << '}';
5465	return s;
5466}
5467
5468std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5469{
5470	s << "VkSparseImageFormatProperties = {\n";
5471	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5472	s << "\timageGranularity = " << value.imageGranularity << '\n';
5473	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5474	s << '}';
5475	return s;
5476}
5477
5478std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5479{
5480	s << "VkSparseImageMemoryRequirements = {\n";
5481	s << "\tformatProperties = " << value.formatProperties << '\n';
5482	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5483	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5484	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5485	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5486	s << '}';
5487	return s;
5488}
5489
5490std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
5491{
5492	s << "VkMemoryType = {\n";
5493	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
5494	s << "\theapIndex = " << value.heapIndex << '\n';
5495	s << '}';
5496	return s;
5497}
5498
5499std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
5500{
5501	s << "VkMemoryHeap = {\n";
5502	s << "\tsize = " << value.size << '\n';
5503	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
5504	s << '}';
5505	return s;
5506}
5507
5508std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
5509{
5510	s << "VkMappedMemoryRange = {\n";
5511	s << "\tsType = " << value.sType << '\n';
5512	s << "\tpNext = " << value.pNext << '\n';
5513	s << "\tmemory = " << value.memory << '\n';
5514	s << "\toffset = " << value.offset << '\n';
5515	s << "\tsize = " << value.size << '\n';
5516	s << '}';
5517	return s;
5518}
5519
5520std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
5521{
5522	s << "VkFormatProperties = {\n";
5523	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
5524	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
5525	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
5526	s << '}';
5527	return s;
5528}
5529
5530std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
5531{
5532	s << "VkImageFormatProperties = {\n";
5533	s << "\tmaxExtent = " << value.maxExtent << '\n';
5534	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
5535	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
5536	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
5537	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
5538	s << '}';
5539	return s;
5540}
5541
5542std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5543{
5544	s << "VkDescriptorBufferInfo = {\n";
5545	s << "\tbuffer = " << value.buffer << '\n';
5546	s << "\toffset = " << value.offset << '\n';
5547	s << "\trange = " << value.range << '\n';
5548	s << '}';
5549	return s;
5550}
5551
5552std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5553{
5554	s << "VkDescriptorImageInfo = {\n";
5555	s << "\tsampler = " << value.sampler << '\n';
5556	s << "\timageView = " << value.imageView << '\n';
5557	s << "\timageLayout = " << value.imageLayout << '\n';
5558	s << '}';
5559	return s;
5560}
5561
5562std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5563{
5564	s << "VkWriteDescriptorSet = {\n";
5565	s << "\tsType = " << value.sType << '\n';
5566	s << "\tpNext = " << value.pNext << '\n';
5567	s << "\tdstSet = " << value.dstSet << '\n';
5568	s << "\tdstBinding = " << value.dstBinding << '\n';
5569	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5570	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5571	s << "\tdescriptorType = " << value.descriptorType << '\n';
5572	s << "\tpImageInfo = " << value.pImageInfo << '\n';
5573	s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5574	s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5575	s << '}';
5576	return s;
5577}
5578
5579std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5580{
5581	s << "VkCopyDescriptorSet = {\n";
5582	s << "\tsType = " << value.sType << '\n';
5583	s << "\tpNext = " << value.pNext << '\n';
5584	s << "\tsrcSet = " << value.srcSet << '\n';
5585	s << "\tsrcBinding = " << value.srcBinding << '\n';
5586	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5587	s << "\tdstSet = " << value.dstSet << '\n';
5588	s << "\tdstBinding = " << value.dstBinding << '\n';
5589	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5590	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5591	s << '}';
5592	return s;
5593}
5594
5595std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5596{
5597	s << "VkBufferCreateInfo = {\n";
5598	s << "\tsType = " << value.sType << '\n';
5599	s << "\tpNext = " << value.pNext << '\n';
5600	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5601	s << "\tsize = " << value.size << '\n';
5602	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5603	s << "\tsharingMode = " << value.sharingMode << '\n';
5604	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5605	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5606	s << '}';
5607	return s;
5608}
5609
5610std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5611{
5612	s << "VkBufferViewCreateInfo = {\n";
5613	s << "\tsType = " << value.sType << '\n';
5614	s << "\tpNext = " << value.pNext << '\n';
5615	s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5616	s << "\tbuffer = " << value.buffer << '\n';
5617	s << "\tformat = " << value.format << '\n';
5618	s << "\toffset = " << value.offset << '\n';
5619	s << "\trange = " << value.range << '\n';
5620	s << '}';
5621	return s;
5622}
5623
5624std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5625{
5626	s << "VkImageSubresource = {\n";
5627	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5628	s << "\tmipLevel = " << value.mipLevel << '\n';
5629	s << "\tarrayLayer = " << value.arrayLayer << '\n';
5630	s << '}';
5631	return s;
5632}
5633
5634std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
5635{
5636	s << "VkImageSubresourceLayers = {\n";
5637	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5638	s << "\tmipLevel = " << value.mipLevel << '\n';
5639	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5640	s << "\tlayerCount = " << value.layerCount << '\n';
5641	s << '}';
5642	return s;
5643}
5644
5645std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
5646{
5647	s << "VkImageSubresourceRange = {\n";
5648	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5649	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
5650	s << "\tlevelCount = " << value.levelCount << '\n';
5651	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5652	s << "\tlayerCount = " << value.layerCount << '\n';
5653	s << '}';
5654	return s;
5655}
5656
5657std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
5658{
5659	s << "VkMemoryBarrier = {\n";
5660	s << "\tsType = " << value.sType << '\n';
5661	s << "\tpNext = " << value.pNext << '\n';
5662	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5663	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5664	s << '}';
5665	return s;
5666}
5667
5668std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
5669{
5670	s << "VkBufferMemoryBarrier = {\n";
5671	s << "\tsType = " << value.sType << '\n';
5672	s << "\tpNext = " << value.pNext << '\n';
5673	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5674	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5675	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5676	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5677	s << "\tbuffer = " << value.buffer << '\n';
5678	s << "\toffset = " << value.offset << '\n';
5679	s << "\tsize = " << value.size << '\n';
5680	s << '}';
5681	return s;
5682}
5683
5684std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
5685{
5686	s << "VkImageMemoryBarrier = {\n";
5687	s << "\tsType = " << value.sType << '\n';
5688	s << "\tpNext = " << value.pNext << '\n';
5689	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5690	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5691	s << "\toldLayout = " << value.oldLayout << '\n';
5692	s << "\tnewLayout = " << value.newLayout << '\n';
5693	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5694	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5695	s << "\timage = " << value.image << '\n';
5696	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5697	s << '}';
5698	return s;
5699}
5700
5701std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5702{
5703	s << "VkImageCreateInfo = {\n";
5704	s << "\tsType = " << value.sType << '\n';
5705	s << "\tpNext = " << value.pNext << '\n';
5706	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5707	s << "\timageType = " << value.imageType << '\n';
5708	s << "\tformat = " << value.format << '\n';
5709	s << "\textent = " << value.extent << '\n';
5710	s << "\tmipLevels = " << value.mipLevels << '\n';
5711	s << "\tarrayLayers = " << value.arrayLayers << '\n';
5712	s << "\tsamples = " << value.samples << '\n';
5713	s << "\ttiling = " << value.tiling << '\n';
5714	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5715	s << "\tsharingMode = " << value.sharingMode << '\n';
5716	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5717	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5718	s << "\tinitialLayout = " << value.initialLayout << '\n';
5719	s << '}';
5720	return s;
5721}
5722
5723std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5724{
5725	s << "VkSubresourceLayout = {\n";
5726	s << "\toffset = " << value.offset << '\n';
5727	s << "\tsize = " << value.size << '\n';
5728	s << "\trowPitch = " << value.rowPitch << '\n';
5729	s << "\tarrayPitch = " << value.arrayPitch << '\n';
5730	s << "\tdepthPitch = " << value.depthPitch << '\n';
5731	s << '}';
5732	return s;
5733}
5734
5735std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5736{
5737	s << "VkImageViewCreateInfo = {\n";
5738	s << "\tsType = " << value.sType << '\n';
5739	s << "\tpNext = " << value.pNext << '\n';
5740	s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5741	s << "\timage = " << value.image << '\n';
5742	s << "\tviewType = " << value.viewType << '\n';
5743	s << "\tformat = " << value.format << '\n';
5744	s << "\tcomponents = " << value.components << '\n';
5745	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5746	s << '}';
5747	return s;
5748}
5749
5750std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
5751{
5752	s << "VkBufferCopy = {\n";
5753	s << "\tsrcOffset = " << value.srcOffset << '\n';
5754	s << "\tdstOffset = " << value.dstOffset << '\n';
5755	s << "\tsize = " << value.size << '\n';
5756	s << '}';
5757	return s;
5758}
5759
5760std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5761{
5762	s << "VkSparseMemoryBind = {\n";
5763	s << "\tresourceOffset = " << value.resourceOffset << '\n';
5764	s << "\tsize = " << value.size << '\n';
5765	s << "\tmemory = " << value.memory << '\n';
5766	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5767	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5768	s << '}';
5769	return s;
5770}
5771
5772std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5773{
5774	s << "VkSparseImageMemoryBind = {\n";
5775	s << "\tsubresource = " << value.subresource << '\n';
5776	s << "\toffset = " << value.offset << '\n';
5777	s << "\textent = " << value.extent << '\n';
5778	s << "\tmemory = " << value.memory << '\n';
5779	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5780	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5781	s << '}';
5782	return s;
5783}
5784
5785std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5786{
5787	s << "VkSparseBufferMemoryBindInfo = {\n";
5788	s << "\tbuffer = " << value.buffer << '\n';
5789	s << "\tbindCount = " << value.bindCount << '\n';
5790	s << "\tpBinds = " << value.pBinds << '\n';
5791	s << '}';
5792	return s;
5793}
5794
5795std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5796{
5797	s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5798	s << "\timage = " << value.image << '\n';
5799	s << "\tbindCount = " << value.bindCount << '\n';
5800	s << "\tpBinds = " << value.pBinds << '\n';
5801	s << '}';
5802	return s;
5803}
5804
5805std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5806{
5807	s << "VkSparseImageMemoryBindInfo = {\n";
5808	s << "\timage = " << value.image << '\n';
5809	s << "\tbindCount = " << value.bindCount << '\n';
5810	s << "\tpBinds = " << value.pBinds << '\n';
5811	s << '}';
5812	return s;
5813}
5814
5815std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5816{
5817	s << "VkBindSparseInfo = {\n";
5818	s << "\tsType = " << value.sType << '\n';
5819	s << "\tpNext = " << value.pNext << '\n';
5820	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5821	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5822	s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5823	s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5824	s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5825	s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5826	s << "\timageBindCount = " << value.imageBindCount << '\n';
5827	s << "\tpImageBinds = " << value.pImageBinds << '\n';
5828	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5829	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5830	s << '}';
5831	return s;
5832}
5833
5834std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
5835{
5836	s << "VkImageCopy = {\n";
5837	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5838	s << "\tsrcOffset = " << value.srcOffset << '\n';
5839	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5840	s << "\tdstOffset = " << value.dstOffset << '\n';
5841	s << "\textent = " << value.extent << '\n';
5842	s << '}';
5843	return s;
5844}
5845
5846std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
5847{
5848	s << "VkImageBlit = {\n";
5849	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5850	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
5851	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5852	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
5853	s << '}';
5854	return s;
5855}
5856
5857std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
5858{
5859	s << "VkBufferImageCopy = {\n";
5860	s << "\tbufferOffset = " << value.bufferOffset << '\n';
5861	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5862	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5863	s << "\timageSubresource = " << value.imageSubresource << '\n';
5864	s << "\timageOffset = " << value.imageOffset << '\n';
5865	s << "\timageExtent = " << value.imageExtent << '\n';
5866	s << '}';
5867	return s;
5868}
5869
5870std::ostream& operator<< (std::ostream& s, const VkCopyMemoryIndirectCommandNV& value)
5871{
5872	s << "VkCopyMemoryIndirectCommandNV = {\n";
5873	s << "\tsrcAddress = " << value.srcAddress << '\n';
5874	s << "\tdstAddress = " << value.dstAddress << '\n';
5875	s << "\tsize = " << value.size << '\n';
5876	s << '}';
5877	return s;
5878}
5879
5880std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToImageIndirectCommandNV& value)
5881{
5882	s << "VkCopyMemoryToImageIndirectCommandNV = {\n";
5883	s << "\tsrcAddress = " << value.srcAddress << '\n';
5884	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5885	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5886	s << "\timageSubresource = " << value.imageSubresource << '\n';
5887	s << "\timageOffset = " << value.imageOffset << '\n';
5888	s << "\timageExtent = " << value.imageExtent << '\n';
5889	s << '}';
5890	return s;
5891}
5892
5893std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
5894{
5895	s << "VkImageResolve = {\n";
5896	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5897	s << "\tsrcOffset = " << value.srcOffset << '\n';
5898	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5899	s << "\tdstOffset = " << value.dstOffset << '\n';
5900	s << "\textent = " << value.extent << '\n';
5901	s << '}';
5902	return s;
5903}
5904
5905std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5906{
5907	s << "VkShaderModuleCreateInfo = {\n";
5908	s << "\tsType = " << value.sType << '\n';
5909	s << "\tpNext = " << value.pNext << '\n';
5910	s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5911	s << "\tcodeSize = " << value.codeSize << '\n';
5912	s << "\tpCode = " << value.pCode << '\n';
5913	s << '}';
5914	return s;
5915}
5916
5917std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5918{
5919	s << "VkDescriptorSetLayoutBinding = {\n";
5920	s << "\tbinding = " << value.binding << '\n';
5921	s << "\tdescriptorType = " << value.descriptorType << '\n';
5922	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5923	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5924	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5925	s << '}';
5926	return s;
5927}
5928
5929std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5930{
5931	s << "VkDescriptorSetLayoutCreateInfo = {\n";
5932	s << "\tsType = " << value.sType << '\n';
5933	s << "\tpNext = " << value.pNext << '\n';
5934	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5935	s << "\tbindingCount = " << value.bindingCount << '\n';
5936	s << "\tpBindings = " << value.pBindings << '\n';
5937	s << '}';
5938	return s;
5939}
5940
5941std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5942{
5943	s << "VkDescriptorPoolSize = {\n";
5944	s << "\ttype = " << value.type << '\n';
5945	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5946	s << '}';
5947	return s;
5948}
5949
5950std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5951{
5952	s << "VkDescriptorPoolCreateInfo = {\n";
5953	s << "\tsType = " << value.sType << '\n';
5954	s << "\tpNext = " << value.pNext << '\n';
5955	s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5956	s << "\tmaxSets = " << value.maxSets << '\n';
5957	s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5958	s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5959	s << '}';
5960	return s;
5961}
5962
5963std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5964{
5965	s << "VkDescriptorSetAllocateInfo = {\n";
5966	s << "\tsType = " << value.sType << '\n';
5967	s << "\tpNext = " << value.pNext << '\n';
5968	s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5969	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5970	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5971	s << '}';
5972	return s;
5973}
5974
5975std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5976{
5977	s << "VkSpecializationMapEntry = {\n";
5978	s << "\tconstantID = " << value.constantID << '\n';
5979	s << "\toffset = " << value.offset << '\n';
5980	s << "\tsize = " << value.size << '\n';
5981	s << '}';
5982	return s;
5983}
5984
5985std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5986{
5987	s << "VkSpecializationInfo = {\n";
5988	s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5989	s << "\tpMapEntries = " << value.pMapEntries << '\n';
5990	s << "\tdataSize = " << value.dataSize << '\n';
5991	s << "\tpData = " << value.pData << '\n';
5992	s << '}';
5993	return s;
5994}
5995
5996std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5997{
5998	s << "VkPipelineShaderStageCreateInfo = {\n";
5999	s << "\tsType = " << value.sType << '\n';
6000	s << "\tpNext = " << value.pNext << '\n';
6001	s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
6002	s << "\tstage = " << value.stage << '\n';
6003	s << "\tmodule = " << value.module << '\n';
6004	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
6005	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
6006	s << '}';
6007	return s;
6008}
6009
6010std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
6011{
6012	s << "VkComputePipelineCreateInfo = {\n";
6013	s << "\tsType = " << value.sType << '\n';
6014	s << "\tpNext = " << value.pNext << '\n';
6015	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6016	s << "\tstage = " << value.stage << '\n';
6017	s << "\tlayout = " << value.layout << '\n';
6018	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6019	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6020	s << '}';
6021	return s;
6022}
6023
6024std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
6025{
6026	s << "VkVertexInputBindingDescription = {\n";
6027	s << "\tbinding = " << value.binding << '\n';
6028	s << "\tstride = " << value.stride << '\n';
6029	s << "\tinputRate = " << value.inputRate << '\n';
6030	s << '}';
6031	return s;
6032}
6033
6034std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
6035{
6036	s << "VkVertexInputAttributeDescription = {\n";
6037	s << "\tlocation = " << value.location << '\n';
6038	s << "\tbinding = " << value.binding << '\n';
6039	s << "\tformat = " << value.format << '\n';
6040	s << "\toffset = " << value.offset << '\n';
6041	s << '}';
6042	return s;
6043}
6044
6045std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
6046{
6047	s << "VkPipelineVertexInputStateCreateInfo = {\n";
6048	s << "\tsType = " << value.sType << '\n';
6049	s << "\tpNext = " << value.pNext << '\n';
6050	s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
6051	s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
6052	s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
6053	s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
6054	s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
6055	s << '}';
6056	return s;
6057}
6058
6059std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
6060{
6061	s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
6062	s << "\tsType = " << value.sType << '\n';
6063	s << "\tpNext = " << value.pNext << '\n';
6064	s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
6065	s << "\ttopology = " << value.topology << '\n';
6066	s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
6067	s << '}';
6068	return s;
6069}
6070
6071std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
6072{
6073	s << "VkPipelineTessellationStateCreateInfo = {\n";
6074	s << "\tsType = " << value.sType << '\n';
6075	s << "\tpNext = " << value.pNext << '\n';
6076	s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
6077	s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
6078	s << '}';
6079	return s;
6080}
6081
6082std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
6083{
6084	s << "VkPipelineViewportStateCreateInfo = {\n";
6085	s << "\tsType = " << value.sType << '\n';
6086	s << "\tpNext = " << value.pNext << '\n';
6087	s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
6088	s << "\tviewportCount = " << value.viewportCount << '\n';
6089	s << "\tpViewports = " << value.pViewports << '\n';
6090	s << "\tscissorCount = " << value.scissorCount << '\n';
6091	s << "\tpScissors = " << value.pScissors << '\n';
6092	s << '}';
6093	return s;
6094}
6095
6096std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
6097{
6098	s << "VkPipelineRasterizationStateCreateInfo = {\n";
6099	s << "\tsType = " << value.sType << '\n';
6100	s << "\tpNext = " << value.pNext << '\n';
6101	s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
6102	s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
6103	s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
6104	s << "\tpolygonMode = " << value.polygonMode << '\n';
6105	s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
6106	s << "\tfrontFace = " << value.frontFace << '\n';
6107	s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
6108	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
6109	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
6110	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
6111	s << "\tlineWidth = " << value.lineWidth << '\n';
6112	s << '}';
6113	return s;
6114}
6115
6116std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
6117{
6118	s << "VkPipelineMultisampleStateCreateInfo = {\n";
6119	s << "\tsType = " << value.sType << '\n';
6120	s << "\tpNext = " << value.pNext << '\n';
6121	s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
6122	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
6123	s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
6124	s << "\tminSampleShading = " << value.minSampleShading << '\n';
6125	s << "\tpSampleMask = " << value.pSampleMask << '\n';
6126	s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
6127	s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
6128	s << '}';
6129	return s;
6130}
6131
6132std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
6133{
6134	s << "VkPipelineColorBlendAttachmentState = {\n";
6135	s << "\tblendEnable = " << value.blendEnable << '\n';
6136	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
6137	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
6138	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
6139	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
6140	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
6141	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
6142	s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
6143	s << '}';
6144	return s;
6145}
6146
6147std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
6148{
6149	s << "VkPipelineColorBlendStateCreateInfo = {\n";
6150	s << "\tsType = " << value.sType << '\n';
6151	s << "\tpNext = " << value.pNext << '\n';
6152	s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
6153	s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
6154	s << "\tlogicOp = " << value.logicOp << '\n';
6155	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6156	s << "\tpAttachments = " << value.pAttachments << '\n';
6157	s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
6158	s << '}';
6159	return s;
6160}
6161
6162std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
6163{
6164	s << "VkPipelineDynamicStateCreateInfo = {\n";
6165	s << "\tsType = " << value.sType << '\n';
6166	s << "\tpNext = " << value.pNext << '\n';
6167	s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
6168	s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
6169	s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
6170	s << '}';
6171	return s;
6172}
6173
6174std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
6175{
6176	s << "VkStencilOpState = {\n";
6177	s << "\tfailOp = " << value.failOp << '\n';
6178	s << "\tpassOp = " << value.passOp << '\n';
6179	s << "\tdepthFailOp = " << value.depthFailOp << '\n';
6180	s << "\tcompareOp = " << value.compareOp << '\n';
6181	s << "\tcompareMask = " << value.compareMask << '\n';
6182	s << "\twriteMask = " << value.writeMask << '\n';
6183	s << "\treference = " << value.reference << '\n';
6184	s << '}';
6185	return s;
6186}
6187
6188std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
6189{
6190	s << "VkPipelineDepthStencilStateCreateInfo = {\n";
6191	s << "\tsType = " << value.sType << '\n';
6192	s << "\tpNext = " << value.pNext << '\n';
6193	s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
6194	s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
6195	s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
6196	s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
6197	s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
6198	s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
6199	s << "\tfront = " << value.front << '\n';
6200	s << "\tback = " << value.back << '\n';
6201	s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
6202	s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
6203	s << '}';
6204	return s;
6205}
6206
6207std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
6208{
6209	s << "VkGraphicsPipelineCreateInfo = {\n";
6210	s << "\tsType = " << value.sType << '\n';
6211	s << "\tpNext = " << value.pNext << '\n';
6212	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6213	s << "\tstageCount = " << value.stageCount << '\n';
6214	s << "\tpStages = " << value.pStages << '\n';
6215	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
6216	s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
6217	s << "\tpTessellationState = " << value.pTessellationState << '\n';
6218	s << "\tpViewportState = " << value.pViewportState << '\n';
6219	s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
6220	s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
6221	s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
6222	s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
6223	s << "\tpDynamicState = " << value.pDynamicState << '\n';
6224	s << "\tlayout = " << value.layout << '\n';
6225	s << "\trenderPass = " << value.renderPass << '\n';
6226	s << "\tsubpass = " << value.subpass << '\n';
6227	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6228	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6229	s << '}';
6230	return s;
6231}
6232
6233std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
6234{
6235	s << "VkPipelineCacheCreateInfo = {\n";
6236	s << "\tsType = " << value.sType << '\n';
6237	s << "\tpNext = " << value.pNext << '\n';
6238	s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
6239	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
6240	s << "\tpInitialData = " << value.pInitialData << '\n';
6241	s << '}';
6242	return s;
6243}
6244
6245std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
6246{
6247	s << "VkPipelineCacheHeaderVersionOne = {\n";
6248	s << "\theaderSize = " << value.headerSize << '\n';
6249	s << "\theaderVersion = " << value.headerVersion << '\n';
6250	s << "\tvendorID = " << value.vendorID << '\n';
6251	s << "\tdeviceID = " << value.deviceID << '\n';
6252	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';
6253	s << '}';
6254	return s;
6255}
6256
6257std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
6258{
6259	s << "VkPushConstantRange = {\n";
6260	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6261	s << "\toffset = " << value.offset << '\n';
6262	s << "\tsize = " << value.size << '\n';
6263	s << '}';
6264	return s;
6265}
6266
6267std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
6268{
6269	s << "VkPipelineLayoutCreateInfo = {\n";
6270	s << "\tsType = " << value.sType << '\n';
6271	s << "\tpNext = " << value.pNext << '\n';
6272	s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
6273	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
6274	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6275	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
6276	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
6277	s << '}';
6278	return s;
6279}
6280
6281std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
6282{
6283	s << "VkSamplerCreateInfo = {\n";
6284	s << "\tsType = " << value.sType << '\n';
6285	s << "\tpNext = " << value.pNext << '\n';
6286	s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
6287	s << "\tmagFilter = " << value.magFilter << '\n';
6288	s << "\tminFilter = " << value.minFilter << '\n';
6289	s << "\tmipmapMode = " << value.mipmapMode << '\n';
6290	s << "\taddressModeU = " << value.addressModeU << '\n';
6291	s << "\taddressModeV = " << value.addressModeV << '\n';
6292	s << "\taddressModeW = " << value.addressModeW << '\n';
6293	s << "\tmipLodBias = " << value.mipLodBias << '\n';
6294	s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
6295	s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
6296	s << "\tcompareEnable = " << value.compareEnable << '\n';
6297	s << "\tcompareOp = " << value.compareOp << '\n';
6298	s << "\tminLod = " << value.minLod << '\n';
6299	s << "\tmaxLod = " << value.maxLod << '\n';
6300	s << "\tborderColor = " << value.borderColor << '\n';
6301	s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
6302	s << '}';
6303	return s;
6304}
6305
6306std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
6307{
6308	s << "VkCommandPoolCreateInfo = {\n";
6309	s << "\tsType = " << value.sType << '\n';
6310	s << "\tpNext = " << value.pNext << '\n';
6311	s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
6312	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6313	s << '}';
6314	return s;
6315}
6316
6317std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
6318{
6319	s << "VkCommandBufferAllocateInfo = {\n";
6320	s << "\tsType = " << value.sType << '\n';
6321	s << "\tpNext = " << value.pNext << '\n';
6322	s << "\tcommandPool = " << value.commandPool << '\n';
6323	s << "\tlevel = " << value.level << '\n';
6324	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6325	s << '}';
6326	return s;
6327}
6328
6329std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
6330{
6331	s << "VkCommandBufferInheritanceInfo = {\n";
6332	s << "\tsType = " << value.sType << '\n';
6333	s << "\tpNext = " << value.pNext << '\n';
6334	s << "\trenderPass = " << value.renderPass << '\n';
6335	s << "\tsubpass = " << value.subpass << '\n';
6336	s << "\tframebuffer = " << value.framebuffer << '\n';
6337	s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
6338	s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
6339	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6340	s << '}';
6341	return s;
6342}
6343
6344std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
6345{
6346	s << "VkCommandBufferBeginInfo = {\n";
6347	s << "\tsType = " << value.sType << '\n';
6348	s << "\tpNext = " << value.pNext << '\n';
6349	s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
6350	s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
6351	s << '}';
6352	return s;
6353}
6354
6355std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
6356{
6357	s << "VkRenderPassBeginInfo = {\n";
6358	s << "\tsType = " << value.sType << '\n';
6359	s << "\tpNext = " << value.pNext << '\n';
6360	s << "\trenderPass = " << value.renderPass << '\n';
6361	s << "\tframebuffer = " << value.framebuffer << '\n';
6362	s << "\trenderArea = " << value.renderArea << '\n';
6363	s << "\tclearValueCount = " << value.clearValueCount << '\n';
6364	s << "\tpClearValues = " << value.pClearValues << '\n';
6365	s << '}';
6366	return s;
6367}
6368
6369std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
6370{
6371	s << "VkClearColorValue = {\n";
6372	s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
6373	s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
6374	s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
6375	s << '}';
6376	return s;
6377}
6378
6379std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
6380{
6381	s << "VkClearDepthStencilValue = {\n";
6382	s << "\tdepth = " << value.depth << '\n';
6383	s << "\tstencil = " << value.stencil << '\n';
6384	s << '}';
6385	return s;
6386}
6387
6388std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
6389{
6390	s << "VkClearValue = {\n";
6391	s << "\tcolor = " << value.color << '\n';
6392	s << "\tdepthStencil = " << value.depthStencil << '\n';
6393	s << '}';
6394	return s;
6395}
6396
6397std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
6398{
6399	s << "VkClearAttachment = {\n";
6400	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6401	s << "\tcolorAttachment = " << value.colorAttachment << '\n';
6402	s << "\tclearValue = " << value.clearValue << '\n';
6403	s << '}';
6404	return s;
6405}
6406
6407std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
6408{
6409	s << "VkAttachmentDescription = {\n";
6410	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6411	s << "\tformat = " << value.format << '\n';
6412	s << "\tsamples = " << value.samples << '\n';
6413	s << "\tloadOp = " << value.loadOp << '\n';
6414	s << "\tstoreOp = " << value.storeOp << '\n';
6415	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6416	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6417	s << "\tinitialLayout = " << value.initialLayout << '\n';
6418	s << "\tfinalLayout = " << value.finalLayout << '\n';
6419	s << '}';
6420	return s;
6421}
6422
6423std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
6424{
6425	s << "VkAttachmentReference = {\n";
6426	s << "\tattachment = " << value.attachment << '\n';
6427	s << "\tlayout = " << value.layout << '\n';
6428	s << '}';
6429	return s;
6430}
6431
6432std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
6433{
6434	s << "VkSubpassDescription = {\n";
6435	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6436	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6437	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6438	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6439	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6440	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6441	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6442	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6443	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6444	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6445	s << '}';
6446	return s;
6447}
6448
6449std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
6450{
6451	s << "VkSubpassDependency = {\n";
6452	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6453	s << "\tdstSubpass = " << value.dstSubpass << '\n';
6454	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6455	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6456	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6457	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6458	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6459	s << '}';
6460	return s;
6461}
6462
6463std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
6464{
6465	s << "VkRenderPassCreateInfo = {\n";
6466	s << "\tsType = " << value.sType << '\n';
6467	s << "\tpNext = " << value.pNext << '\n';
6468	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6469	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6470	s << "\tpAttachments = " << value.pAttachments << '\n';
6471	s << "\tsubpassCount = " << value.subpassCount << '\n';
6472	s << "\tpSubpasses = " << value.pSubpasses << '\n';
6473	s << "\tdependencyCount = " << value.dependencyCount << '\n';
6474	s << "\tpDependencies = " << value.pDependencies << '\n';
6475	s << '}';
6476	return s;
6477}
6478
6479std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
6480{
6481	s << "VkEventCreateInfo = {\n";
6482	s << "\tsType = " << value.sType << '\n';
6483	s << "\tpNext = " << value.pNext << '\n';
6484	s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
6485	s << '}';
6486	return s;
6487}
6488
6489std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
6490{
6491	s << "VkFenceCreateInfo = {\n";
6492	s << "\tsType = " << value.sType << '\n';
6493	s << "\tpNext = " << value.pNext << '\n';
6494	s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
6495	s << '}';
6496	return s;
6497}
6498
6499std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
6500{
6501	s << "VkPhysicalDeviceFeatures = {\n";
6502	s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
6503	s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
6504	s << "\timageCubeArray = " << value.imageCubeArray << '\n';
6505	s << "\tindependentBlend = " << value.independentBlend << '\n';
6506	s << "\tgeometryShader = " << value.geometryShader << '\n';
6507	s << "\ttessellationShader = " << value.tessellationShader << '\n';
6508	s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
6509	s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
6510	s << "\tlogicOp = " << value.logicOp << '\n';
6511	s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
6512	s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
6513	s << "\tdepthClamp = " << value.depthClamp << '\n';
6514	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
6515	s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
6516	s << "\tdepthBounds = " << value.depthBounds << '\n';
6517	s << "\twideLines = " << value.wideLines << '\n';
6518	s << "\tlargePoints = " << value.largePoints << '\n';
6519	s << "\talphaToOne = " << value.alphaToOne << '\n';
6520	s << "\tmultiViewport = " << value.multiViewport << '\n';
6521	s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
6522	s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
6523	s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
6524	s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
6525	s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
6526	s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
6527	s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
6528	s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
6529	s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
6530	s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
6531	s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
6532	s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
6533	s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
6534	s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
6535	s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
6536	s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
6537	s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
6538	s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
6539	s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
6540	s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
6541	s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
6542	s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
6543	s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
6544	s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
6545	s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
6546	s << "\tsparseBinding = " << value.sparseBinding << '\n';
6547	s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
6548	s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
6549	s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
6550	s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
6551	s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
6552	s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
6553	s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
6554	s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
6555	s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
6556	s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
6557	s << '}';
6558	return s;
6559}
6560
6561std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
6562{
6563	s << "VkPhysicalDeviceSparseProperties = {\n";
6564	s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
6565	s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
6566	s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
6567	s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
6568	s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
6569	s << '}';
6570	return s;
6571}
6572
6573std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
6574{
6575	s << "VkPhysicalDeviceLimits = {\n";
6576	s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
6577	s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
6578	s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
6579	s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
6580	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6581	s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
6582	s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
6583	s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
6584	s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
6585	s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
6586	s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
6587	s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
6588	s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
6589	s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
6590	s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
6591	s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
6592	s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
6593	s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
6594	s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
6595	s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
6596	s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
6597	s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
6598	s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
6599	s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
6600	s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
6601	s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
6602	s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
6603	s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
6604	s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
6605	s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
6606	s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
6607	s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
6608	s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
6609	s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
6610	s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
6611	s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
6612	s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
6613	s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
6614	s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
6615	s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
6616	s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
6617	s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
6618	s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
6619	s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
6620	s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
6621	s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
6622	s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
6623	s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
6624	s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
6625	s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
6626	s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
6627	s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
6628	s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
6629	s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
6630	s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
6631	s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
6632	s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
6633	s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
6634	s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
6635	s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
6636	s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
6637	s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
6638	s << "\tmaxViewports = " << value.maxViewports << '\n';
6639	s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
6640	s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
6641	s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
6642	s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
6643	s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
6644	s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
6645	s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
6646	s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
6647	s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
6648	s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
6649	s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
6650	s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
6651	s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
6652	s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
6653	s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
6654	s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
6655	s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
6656	s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
6657	s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
6658	s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
6659	s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
6660	s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
6661	s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
6662	s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
6663	s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
6664	s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
6665	s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
6666	s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
6667	s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
6668	s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
6669	s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
6670	s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
6671	s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
6672	s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
6673	s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
6674	s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
6675	s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
6676	s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
6677	s << "\tstrictLines = " << value.strictLines << '\n';
6678	s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
6679	s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
6680	s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
6681	s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
6682	s << '}';
6683	return s;
6684}
6685
6686std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
6687{
6688	s << "VkSemaphoreCreateInfo = {\n";
6689	s << "\tsType = " << value.sType << '\n';
6690	s << "\tpNext = " << value.pNext << '\n';
6691	s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
6692	s << '}';
6693	return s;
6694}
6695
6696std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
6697{
6698	s << "VkQueryPoolCreateInfo = {\n";
6699	s << "\tsType = " << value.sType << '\n';
6700	s << "\tpNext = " << value.pNext << '\n';
6701	s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
6702	s << "\tqueryType = " << value.queryType << '\n';
6703	s << "\tqueryCount = " << value.queryCount << '\n';
6704	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6705	s << '}';
6706	return s;
6707}
6708
6709std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
6710{
6711	s << "VkFramebufferCreateInfo = {\n";
6712	s << "\tsType = " << value.sType << '\n';
6713	s << "\tpNext = " << value.pNext << '\n';
6714	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
6715	s << "\trenderPass = " << value.renderPass << '\n';
6716	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6717	s << "\tpAttachments = " << value.pAttachments << '\n';
6718	s << "\twidth = " << value.width << '\n';
6719	s << "\theight = " << value.height << '\n';
6720	s << "\tlayers = " << value.layers << '\n';
6721	s << '}';
6722	return s;
6723}
6724
6725std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
6726{
6727	s << "VkDrawIndirectCommand = {\n";
6728	s << "\tvertexCount = " << value.vertexCount << '\n';
6729	s << "\tinstanceCount = " << value.instanceCount << '\n';
6730	s << "\tfirstVertex = " << value.firstVertex << '\n';
6731	s << "\tfirstInstance = " << value.firstInstance << '\n';
6732	s << '}';
6733	return s;
6734}
6735
6736std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
6737{
6738	s << "VkDrawIndexedIndirectCommand = {\n";
6739	s << "\tindexCount = " << value.indexCount << '\n';
6740	s << "\tinstanceCount = " << value.instanceCount << '\n';
6741	s << "\tfirstIndex = " << value.firstIndex << '\n';
6742	s << "\tvertexOffset = " << value.vertexOffset << '\n';
6743	s << "\tfirstInstance = " << value.firstInstance << '\n';
6744	s << '}';
6745	return s;
6746}
6747
6748std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
6749{
6750	s << "VkDispatchIndirectCommand = {\n";
6751	s << "\tx = " << value.x << '\n';
6752	s << "\ty = " << value.y << '\n';
6753	s << "\tz = " << value.z << '\n';
6754	s << '}';
6755	return s;
6756}
6757
6758std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
6759{
6760	s << "VkMultiDrawInfoEXT = {\n";
6761	s << "\tfirstVertex = " << value.firstVertex << '\n';
6762	s << "\tvertexCount = " << value.vertexCount << '\n';
6763	s << '}';
6764	return s;
6765}
6766
6767std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
6768{
6769	s << "VkMultiDrawIndexedInfoEXT = {\n";
6770	s << "\tfirstIndex = " << value.firstIndex << '\n';
6771	s << "\tindexCount = " << value.indexCount << '\n';
6772	s << "\tvertexOffset = " << value.vertexOffset << '\n';
6773	s << '}';
6774	return s;
6775}
6776
6777std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
6778{
6779	s << "VkSubmitInfo = {\n";
6780	s << "\tsType = " << value.sType << '\n';
6781	s << "\tpNext = " << value.pNext << '\n';
6782	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6783	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6784	s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
6785	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6786	s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
6787	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6788	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
6789	s << '}';
6790	return s;
6791}
6792
6793std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
6794{
6795	s << "VkDisplayPropertiesKHR = {\n";
6796	s << "\tdisplay = " << value.display << '\n';
6797	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
6798	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
6799	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
6800	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6801	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
6802	s << "\tpersistentContent = " << value.persistentContent << '\n';
6803	s << '}';
6804	return s;
6805}
6806
6807std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
6808{
6809	s << "VkDisplayPlanePropertiesKHR = {\n";
6810	s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
6811	s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
6812	s << '}';
6813	return s;
6814}
6815
6816std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
6817{
6818	s << "VkDisplayModeParametersKHR = {\n";
6819	s << "\tvisibleRegion = " << value.visibleRegion << '\n';
6820	s << "\trefreshRate = " << value.refreshRate << '\n';
6821	s << '}';
6822	return s;
6823}
6824
6825std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
6826{
6827	s << "VkDisplayModePropertiesKHR = {\n";
6828	s << "\tdisplayMode = " << value.displayMode << '\n';
6829	s << "\tparameters = " << value.parameters << '\n';
6830	s << '}';
6831	return s;
6832}
6833
6834std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
6835{
6836	s << "VkDisplayModeCreateInfoKHR = {\n";
6837	s << "\tsType = " << value.sType << '\n';
6838	s << "\tpNext = " << value.pNext << '\n';
6839	s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
6840	s << "\tparameters = " << value.parameters << '\n';
6841	s << '}';
6842	return s;
6843}
6844
6845std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
6846{
6847	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
6848	s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
6849	s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
6850	s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
6851	s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
6852	s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
6853	s << "\tminDstPosition = " << value.minDstPosition << '\n';
6854	s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
6855	s << "\tminDstExtent = " << value.minDstExtent << '\n';
6856	s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
6857	s << '}';
6858	return s;
6859}
6860
6861std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
6862{
6863	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
6864	s << "\tsType = " << value.sType << '\n';
6865	s << "\tpNext = " << value.pNext << '\n';
6866	s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
6867	s << "\tdisplayMode = " << value.displayMode << '\n';
6868	s << "\tplaneIndex = " << value.planeIndex << '\n';
6869	s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
6870	s << "\ttransform = " << value.transform << '\n';
6871	s << "\tglobalAlpha = " << value.globalAlpha << '\n';
6872	s << "\talphaMode = " << value.alphaMode << '\n';
6873	s << "\timageExtent = " << value.imageExtent << '\n';
6874	s << '}';
6875	return s;
6876}
6877
6878std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
6879{
6880	s << "VkDisplayPresentInfoKHR = {\n";
6881	s << "\tsType = " << value.sType << '\n';
6882	s << "\tpNext = " << value.pNext << '\n';
6883	s << "\tsrcRect = " << value.srcRect << '\n';
6884	s << "\tdstRect = " << value.dstRect << '\n';
6885	s << "\tpersistent = " << value.persistent << '\n';
6886	s << '}';
6887	return s;
6888}
6889
6890std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
6891{
6892	s << "VkSurfaceCapabilitiesKHR = {\n";
6893	s << "\tminImageCount = " << value.minImageCount << '\n';
6894	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
6895	s << "\tcurrentExtent = " << value.currentExtent << '\n';
6896	s << "\tminImageExtent = " << value.minImageExtent << '\n';
6897	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
6898	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6899	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6900	s << "\tcurrentTransform = " << value.currentTransform << '\n';
6901	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
6902	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
6903	s << '}';
6904	return s;
6905}
6906
6907std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
6908{
6909	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
6910	s << "\tsType = " << value.sType << '\n';
6911	s << "\tpNext = " << value.pNext << '\n';
6912	s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6913	s << "\twindow = " << value.window << '\n';
6914	s << '}';
6915	return s;
6916}
6917
6918std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
6919{
6920	s << "VkViSurfaceCreateInfoNN = {\n";
6921	s << "\tsType = " << value.sType << '\n';
6922	s << "\tpNext = " << value.pNext << '\n';
6923	s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
6924	s << "\twindow = " << value.window << '\n';
6925	s << '}';
6926	return s;
6927}
6928
6929std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
6930{
6931	s << "VkWaylandSurfaceCreateInfoKHR = {\n";
6932	s << "\tsType = " << value.sType << '\n';
6933	s << "\tpNext = " << value.pNext << '\n';
6934	s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6935	s << "\tdisplay = " << value.display << '\n';
6936	s << "\tsurface = " << value.surface << '\n';
6937	s << '}';
6938	return s;
6939}
6940
6941std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
6942{
6943	s << "VkWin32SurfaceCreateInfoKHR = {\n";
6944	s << "\tsType = " << value.sType << '\n';
6945	s << "\tpNext = " << value.pNext << '\n';
6946	s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
6947	s << "\thinstance = " << value.hinstance << '\n';
6948	s << "\thwnd = " << value.hwnd << '\n';
6949	s << '}';
6950	return s;
6951}
6952
6953std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
6954{
6955	s << "VkXlibSurfaceCreateInfoKHR = {\n";
6956	s << "\tsType = " << value.sType << '\n';
6957	s << "\tpNext = " << value.pNext << '\n';
6958	s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6959	s << "\tdpy = " << value.dpy << '\n';
6960	s << "\twindow = " << value.window << '\n';
6961	s << '}';
6962	return s;
6963}
6964
6965std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
6966{
6967	s << "VkXcbSurfaceCreateInfoKHR = {\n";
6968	s << "\tsType = " << value.sType << '\n';
6969	s << "\tpNext = " << value.pNext << '\n';
6970	s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6971	s << "\tconnection = " << value.connection << '\n';
6972	s << "\twindow = " << value.window << '\n';
6973	s << '}';
6974	return s;
6975}
6976
6977std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
6978{
6979	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
6980	s << "\tsType = " << value.sType << '\n';
6981	s << "\tpNext = " << value.pNext << '\n';
6982	s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
6983	s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
6984	s << '}';
6985	return s;
6986}
6987
6988std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
6989{
6990	s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
6991	s << "\tsType = " << value.sType << '\n';
6992	s << "\tpNext = " << value.pNext << '\n';
6993	s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
6994	s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
6995	s << '}';
6996	return s;
6997}
6998
6999std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
7000{
7001	s << "VkScreenSurfaceCreateInfoQNX = {\n";
7002	s << "\tsType = " << value.sType << '\n';
7003	s << "\tpNext = " << value.pNext << '\n';
7004	s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
7005	s << "\tcontext = " << value.context << '\n';
7006	s << "\twindow = " << value.window << '\n';
7007	s << '}';
7008	return s;
7009}
7010
7011std::ostream& operator<< (std::ostream& s, const VkOHOSSurfaceCreateInfoOpenHarmony& value)
7012{
7013	s << "VkOHOSSurfaceCreateInfoOpenHarmony = {\n";
7014	s << "\tsType = " << value.sType << '\n';
7015	s << "\tpNext = " << value.pNext << '\n';
7016	s << "\tflags = " << getOHOSSurfaceCreateFlagsOpenHarmonyStr(value.flags) << '\n';
7017	s << "\twindow = " << value.window << '\n';
7018	s << '}';
7019	return s;
7020}
7021
7022std::ostream& operator<< (std::ostream& s, const VkOHOSNativeBufferPropertiesOpenHarmony& value)
7023{
7024	s << "VkOHOSNativeBufferPropertiesOpenHarmony = {\n";
7025	s << "\tsType = " << value.sType << '\n';
7026	s << "\tpNext = " << value.pNext << '\n';
7027	s << "\tallocationSize = " << value.allocationSize << '\n';
7028	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7029	s << '}';
7030	return s;
7031}
7032
7033std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
7034{
7035	s << "VkSurfaceFormatKHR = {\n";
7036	s << "\tformat = " << value.format << '\n';
7037	s << "\tcolorSpace = " << value.colorSpace << '\n';
7038	s << '}';
7039	return s;
7040}
7041
7042std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
7043{
7044	s << "VkSwapchainCreateInfoKHR = {\n";
7045	s << "\tsType = " << value.sType << '\n';
7046	s << "\tpNext = " << value.pNext << '\n';
7047	s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
7048	s << "\tsurface = " << value.surface << '\n';
7049	s << "\tminImageCount = " << value.minImageCount << '\n';
7050	s << "\timageFormat = " << value.imageFormat << '\n';
7051	s << "\timageColorSpace = " << value.imageColorSpace << '\n';
7052	s << "\timageExtent = " << value.imageExtent << '\n';
7053	s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
7054	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
7055	s << "\timageSharingMode = " << value.imageSharingMode << '\n';
7056	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
7057	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
7058	s << "\tpreTransform = " << value.preTransform << '\n';
7059	s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
7060	s << "\tpresentMode = " << value.presentMode << '\n';
7061	s << "\tclipped = " << value.clipped << '\n';
7062	s << "\toldSwapchain = " << value.oldSwapchain << '\n';
7063	s << '}';
7064	return s;
7065}
7066
7067std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
7068{
7069	s << "VkPresentInfoKHR = {\n";
7070	s << "\tsType = " << value.sType << '\n';
7071	s << "\tpNext = " << value.pNext << '\n';
7072	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7073	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7074	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7075	s << "\tpSwapchains = " << value.pSwapchains << '\n';
7076	s << "\tpImageIndices = " << value.pImageIndices << '\n';
7077	s << "\tpResults = " << value.pResults << '\n';
7078	s << '}';
7079	return s;
7080}
7081
7082std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
7083{
7084	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
7085	s << "\tsType = " << value.sType << '\n';
7086	s << "\tpNext = " << value.pNext << '\n';
7087	s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
7088	s << "\tpfnCallback = " << value.pfnCallback << '\n';
7089	s << "\tpUserData = " << value.pUserData << '\n';
7090	s << '}';
7091	return s;
7092}
7093
7094std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
7095{
7096	s << "VkValidationFlagsEXT = {\n";
7097	s << "\tsType = " << value.sType << '\n';
7098	s << "\tpNext = " << value.pNext << '\n';
7099	s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
7100	s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
7101	s << '}';
7102	return s;
7103}
7104
7105std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
7106{
7107	s << "VkValidationFeaturesEXT = {\n";
7108	s << "\tsType = " << value.sType << '\n';
7109	s << "\tpNext = " << value.pNext << '\n';
7110	s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
7111	s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
7112	s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
7113	s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
7114	s << '}';
7115	return s;
7116}
7117
7118std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
7119{
7120	s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
7121	s << "\tsType = " << value.sType << '\n';
7122	s << "\tpNext = " << value.pNext << '\n';
7123	s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
7124	s << '}';
7125	return s;
7126}
7127
7128std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
7129{
7130	s << "VkDebugMarkerObjectNameInfoEXT = {\n";
7131	s << "\tsType = " << value.sType << '\n';
7132	s << "\tpNext = " << value.pNext << '\n';
7133	s << "\tobjectType = " << value.objectType << '\n';
7134	s << "\tobject = " << value.object << '\n';
7135	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
7136	s << '}';
7137	return s;
7138}
7139
7140std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
7141{
7142	s << "VkDebugMarkerObjectTagInfoEXT = {\n";
7143	s << "\tsType = " << value.sType << '\n';
7144	s << "\tpNext = " << value.pNext << '\n';
7145	s << "\tobjectType = " << value.objectType << '\n';
7146	s << "\tobject = " << value.object << '\n';
7147	s << "\ttagName = " << value.tagName << '\n';
7148	s << "\ttagSize = " << value.tagSize << '\n';
7149	s << "\tpTag = " << value.pTag << '\n';
7150	s << '}';
7151	return s;
7152}
7153
7154std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
7155{
7156	s << "VkDebugMarkerMarkerInfoEXT = {\n";
7157	s << "\tsType = " << value.sType << '\n';
7158	s << "\tpNext = " << value.pNext << '\n';
7159	s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
7160	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
7161	s << '}';
7162	return s;
7163}
7164
7165std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
7166{
7167	s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
7168	s << "\tsType = " << value.sType << '\n';
7169	s << "\tpNext = " << value.pNext << '\n';
7170	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7171	s << '}';
7172	return s;
7173}
7174
7175std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
7176{
7177	s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
7178	s << "\tsType = " << value.sType << '\n';
7179	s << "\tpNext = " << value.pNext << '\n';
7180	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7181	s << '}';
7182	return s;
7183}
7184
7185std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
7186{
7187	s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
7188	s << "\tsType = " << value.sType << '\n';
7189	s << "\tpNext = " << value.pNext << '\n';
7190	s << "\timage = " << value.image << '\n';
7191	s << "\tbuffer = " << value.buffer << '\n';
7192	s << '}';
7193	return s;
7194}
7195
7196std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
7197{
7198	s << "VkExternalImageFormatPropertiesNV = {\n";
7199	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7200	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
7201	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
7202	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
7203	s << '}';
7204	return s;
7205}
7206
7207std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
7208{
7209	s << "VkExternalMemoryImageCreateInfoNV = {\n";
7210	s << "\tsType = " << value.sType << '\n';
7211	s << "\tpNext = " << value.pNext << '\n';
7212	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7213	s << '}';
7214	return s;
7215}
7216
7217std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
7218{
7219	s << "VkExportMemoryAllocateInfoNV = {\n";
7220	s << "\tsType = " << value.sType << '\n';
7221	s << "\tpNext = " << value.pNext << '\n';
7222	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7223	s << '}';
7224	return s;
7225}
7226
7227std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
7228{
7229	s << "VkImportMemoryWin32HandleInfoNV = {\n";
7230	s << "\tsType = " << value.sType << '\n';
7231	s << "\tpNext = " << value.pNext << '\n';
7232	s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
7233	s << "\thandle = " << value.handle << '\n';
7234	s << '}';
7235	return s;
7236}
7237
7238std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
7239{
7240	s << "VkExportMemoryWin32HandleInfoNV = {\n";
7241	s << "\tsType = " << value.sType << '\n';
7242	s << "\tpNext = " << value.pNext << '\n';
7243	s << "\tpAttributes = " << value.pAttributes << '\n';
7244	s << "\tdwAccess = " << value.dwAccess << '\n';
7245	s << '}';
7246	return s;
7247}
7248
7249std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
7250{
7251	s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
7252	s << "\tsType = " << value.sType << '\n';
7253	s << "\tpNext = " << value.pNext << '\n';
7254	s << "\tacquireCount = " << value.acquireCount << '\n';
7255	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7256	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7257	s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
7258	s << "\treleaseCount = " << value.releaseCount << '\n';
7259	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7260	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7261	s << '}';
7262	return s;
7263}
7264
7265std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
7266{
7267	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
7268	s << "\tsType = " << value.sType << '\n';
7269	s << "\tpNext = " << value.pNext << '\n';
7270	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
7271	s << '}';
7272	return s;
7273}
7274
7275std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
7276{
7277	s << "VkDevicePrivateDataCreateInfo = {\n";
7278	s << "\tsType = " << value.sType << '\n';
7279	s << "\tpNext = " << value.pNext << '\n';
7280	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
7281	s << '}';
7282	return s;
7283}
7284
7285std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
7286{
7287	s << "VkPrivateDataSlotCreateInfo = {\n";
7288	s << "\tsType = " << value.sType << '\n';
7289	s << "\tpNext = " << value.pNext << '\n';
7290	s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
7291	s << '}';
7292	return s;
7293}
7294
7295std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
7296{
7297	s << "VkPhysicalDevicePrivateDataFeatures = {\n";
7298	s << "\tsType = " << value.sType << '\n';
7299	s << "\tpNext = " << value.pNext << '\n';
7300	s << "\tprivateData = " << value.privateData << '\n';
7301	s << '}';
7302	return s;
7303}
7304
7305std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
7306{
7307	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
7308	s << "\tsType = " << value.sType << '\n';
7309	s << "\tpNext = " << value.pNext << '\n';
7310	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
7311	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
7312	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
7313	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
7314	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
7315	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
7316	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
7317	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
7318	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
7319	s << '}';
7320	return s;
7321}
7322
7323std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
7324{
7325	s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
7326	s << "\tsType = " << value.sType << '\n';
7327	s << "\tpNext = " << value.pNext << '\n';
7328	s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
7329	s << '}';
7330	return s;
7331}
7332
7333std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
7334{
7335	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
7336	s << "\tsType = " << value.sType << '\n';
7337	s << "\tpNext = " << value.pNext << '\n';
7338	s << "\tstageCount = " << value.stageCount << '\n';
7339	s << "\tpStages = " << value.pStages << '\n';
7340	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
7341	s << "\tpTessellationState = " << value.pTessellationState << '\n';
7342	s << '}';
7343	return s;
7344}
7345
7346std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
7347{
7348	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
7349	s << "\tsType = " << value.sType << '\n';
7350	s << "\tpNext = " << value.pNext << '\n';
7351	s << "\tgroupCount = " << value.groupCount << '\n';
7352	s << "\tpGroups = " << value.pGroups << '\n';
7353	s << "\tpipelineCount = " << value.pipelineCount << '\n';
7354	s << "\tpPipelines = " << value.pPipelines << '\n';
7355	s << '}';
7356	return s;
7357}
7358
7359std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
7360{
7361	s << "VkBindShaderGroupIndirectCommandNV = {\n";
7362	s << "\tgroupIndex = " << value.groupIndex << '\n';
7363	s << '}';
7364	return s;
7365}
7366
7367std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
7368{
7369	s << "VkBindIndexBufferIndirectCommandNV = {\n";
7370	s << "\tbufferAddress = " << value.bufferAddress << '\n';
7371	s << "\tsize = " << value.size << '\n';
7372	s << "\tindexType = " << value.indexType << '\n';
7373	s << '}';
7374	return s;
7375}
7376
7377std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
7378{
7379	s << "VkBindVertexBufferIndirectCommandNV = {\n";
7380	s << "\tbufferAddress = " << value.bufferAddress << '\n';
7381	s << "\tsize = " << value.size << '\n';
7382	s << "\tstride = " << value.stride << '\n';
7383	s << '}';
7384	return s;
7385}
7386
7387std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
7388{
7389	s << "VkSetStateFlagsIndirectCommandNV = {\n";
7390	s << "\tdata = " << value.data << '\n';
7391	s << '}';
7392	return s;
7393}
7394
7395std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
7396{
7397	s << "VkIndirectCommandsStreamNV = {\n";
7398	s << "\tbuffer = " << value.buffer << '\n';
7399	s << "\toffset = " << value.offset << '\n';
7400	s << '}';
7401	return s;
7402}
7403
7404std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
7405{
7406	s << "VkIndirectCommandsLayoutTokenNV = {\n";
7407	s << "\tsType = " << value.sType << '\n';
7408	s << "\tpNext = " << value.pNext << '\n';
7409	s << "\ttokenType = " << value.tokenType << '\n';
7410	s << "\tstream = " << value.stream << '\n';
7411	s << "\toffset = " << value.offset << '\n';
7412	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
7413	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
7414	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
7415	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
7416	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
7417	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
7418	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
7419	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
7420	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
7421	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
7422	s << '}';
7423	return s;
7424}
7425
7426std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
7427{
7428	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
7429	s << "\tsType = " << value.sType << '\n';
7430	s << "\tpNext = " << value.pNext << '\n';
7431	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
7432	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7433	s << "\ttokenCount = " << value.tokenCount << '\n';
7434	s << "\tpTokens = " << value.pTokens << '\n';
7435	s << "\tstreamCount = " << value.streamCount << '\n';
7436	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
7437	s << '}';
7438	return s;
7439}
7440
7441std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
7442{
7443	s << "VkGeneratedCommandsInfoNV = {\n";
7444	s << "\tsType = " << value.sType << '\n';
7445	s << "\tpNext = " << value.pNext << '\n';
7446	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7447	s << "\tpipeline = " << value.pipeline << '\n';
7448	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
7449	s << "\tstreamCount = " << value.streamCount << '\n';
7450	s << "\tpStreams = " << value.pStreams << '\n';
7451	s << "\tsequencesCount = " << value.sequencesCount << '\n';
7452	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
7453	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
7454	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
7455	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
7456	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
7457	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
7458	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
7459	s << '}';
7460	return s;
7461}
7462
7463std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
7464{
7465	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
7466	s << "\tsType = " << value.sType << '\n';
7467	s << "\tpNext = " << value.pNext << '\n';
7468	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7469	s << "\tpipeline = " << value.pipeline << '\n';
7470	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
7471	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
7472	s << '}';
7473	return s;
7474}
7475
7476std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
7477{
7478	s << "VkPhysicalDeviceFeatures2 = {\n";
7479	s << "\tsType = " << value.sType << '\n';
7480	s << "\tpNext = " << value.pNext << '\n';
7481	s << "\tfeatures = " << value.features << '\n';
7482	s << '}';
7483	return s;
7484}
7485
7486std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
7487{
7488	s << "VkPhysicalDeviceProperties2 = {\n";
7489	s << "\tsType = " << value.sType << '\n';
7490	s << "\tpNext = " << value.pNext << '\n';
7491	s << "\tproperties = " << value.properties << '\n';
7492	s << '}';
7493	return s;
7494}
7495
7496std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
7497{
7498	s << "VkFormatProperties2 = {\n";
7499	s << "\tsType = " << value.sType << '\n';
7500	s << "\tpNext = " << value.pNext << '\n';
7501	s << "\tformatProperties = " << value.formatProperties << '\n';
7502	s << '}';
7503	return s;
7504}
7505
7506std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
7507{
7508	s << "VkImageFormatProperties2 = {\n";
7509	s << "\tsType = " << value.sType << '\n';
7510	s << "\tpNext = " << value.pNext << '\n';
7511	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7512	s << '}';
7513	return s;
7514}
7515
7516std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
7517{
7518	s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
7519	s << "\tsType = " << value.sType << '\n';
7520	s << "\tpNext = " << value.pNext << '\n';
7521	s << "\tformat = " << value.format << '\n';
7522	s << "\ttype = " << value.type << '\n';
7523	s << "\ttiling = " << value.tiling << '\n';
7524	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7525	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7526	s << '}';
7527	return s;
7528}
7529
7530std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
7531{
7532	s << "VkQueueFamilyProperties2 = {\n";
7533	s << "\tsType = " << value.sType << '\n';
7534	s << "\tpNext = " << value.pNext << '\n';
7535	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
7536	s << '}';
7537	return s;
7538}
7539
7540std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
7541{
7542	s << "VkPhysicalDeviceMemoryProperties2 = {\n";
7543	s << "\tsType = " << value.sType << '\n';
7544	s << "\tpNext = " << value.pNext << '\n';
7545	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
7546	s << '}';
7547	return s;
7548}
7549
7550std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
7551{
7552	s << "VkSparseImageFormatProperties2 = {\n";
7553	s << "\tsType = " << value.sType << '\n';
7554	s << "\tpNext = " << value.pNext << '\n';
7555	s << "\tproperties = " << value.properties << '\n';
7556	s << '}';
7557	return s;
7558}
7559
7560std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
7561{
7562	s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
7563	s << "\tsType = " << value.sType << '\n';
7564	s << "\tpNext = " << value.pNext << '\n';
7565	s << "\tformat = " << value.format << '\n';
7566	s << "\ttype = " << value.type << '\n';
7567	s << "\tsamples = " << value.samples << '\n';
7568	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7569	s << "\ttiling = " << value.tiling << '\n';
7570	s << '}';
7571	return s;
7572}
7573
7574std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
7575{
7576	s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
7577	s << "\tsType = " << value.sType << '\n';
7578	s << "\tpNext = " << value.pNext << '\n';
7579	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
7580	s << '}';
7581	return s;
7582}
7583
7584std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
7585{
7586	s << "VkConformanceVersion = {\n";
7587	s << "\tmajor = " << value.major << '\n';
7588	s << "\tminor = " << value.minor << '\n';
7589	s << "\tsubminor = " << value.subminor << '\n';
7590	s << "\tpatch = " << value.patch << '\n';
7591	s << '}';
7592	return s;
7593}
7594
7595std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7596{
7597	s << "VkPhysicalDeviceDriverProperties = {\n";
7598	s << "\tsType = " << value.sType << '\n';
7599	s << "\tpNext = " << value.pNext << '\n';
7600	s << "\tdriverID = " << value.driverID << '\n';
7601	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7602	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7603	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7604	s << '}';
7605	return s;
7606}
7607
7608std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
7609{
7610	s << "VkPresentRegionsKHR = {\n";
7611	s << "\tsType = " << value.sType << '\n';
7612	s << "\tpNext = " << value.pNext << '\n';
7613	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7614	s << "\tpRegions = " << value.pRegions << '\n';
7615	s << '}';
7616	return s;
7617}
7618
7619std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
7620{
7621	s << "VkPresentRegionKHR = {\n";
7622	s << "\trectangleCount = " << value.rectangleCount << '\n';
7623	s << "\tpRectangles = " << value.pRectangles << '\n';
7624	s << '}';
7625	return s;
7626}
7627
7628std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
7629{
7630	s << "VkRectLayerKHR = {\n";
7631	s << "\toffset = " << value.offset << '\n';
7632	s << "\textent = " << value.extent << '\n';
7633	s << "\tlayer = " << value.layer << '\n';
7634	s << '}';
7635	return s;
7636}
7637
7638std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
7639{
7640	s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
7641	s << "\tsType = " << value.sType << '\n';
7642	s << "\tpNext = " << value.pNext << '\n';
7643	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
7644	s << "\tvariablePointers = " << value.variablePointers << '\n';
7645	s << '}';
7646	return s;
7647}
7648
7649std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
7650{
7651	s << "VkExternalMemoryProperties = {\n";
7652	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
7653	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7654	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7655	s << '}';
7656	return s;
7657}
7658
7659std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
7660{
7661	s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
7662	s << "\tsType = " << value.sType << '\n';
7663	s << "\tpNext = " << value.pNext << '\n';
7664	s << "\thandleType = " << value.handleType << '\n';
7665	s << '}';
7666	return s;
7667}
7668
7669std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
7670{
7671	s << "VkExternalImageFormatProperties = {\n";
7672	s << "\tsType = " << value.sType << '\n';
7673	s << "\tpNext = " << value.pNext << '\n';
7674	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7675	s << '}';
7676	return s;
7677}
7678
7679std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
7680{
7681	s << "VkPhysicalDeviceExternalBufferInfo = {\n";
7682	s << "\tsType = " << value.sType << '\n';
7683	s << "\tpNext = " << value.pNext << '\n';
7684	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
7685	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
7686	s << "\thandleType = " << value.handleType << '\n';
7687	s << '}';
7688	return s;
7689}
7690
7691std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
7692{
7693	s << "VkExternalBufferProperties = {\n";
7694	s << "\tsType = " << value.sType << '\n';
7695	s << "\tpNext = " << value.pNext << '\n';
7696	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7697	s << '}';
7698	return s;
7699}
7700
7701std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
7702{
7703	s << "VkPhysicalDeviceIDProperties = {\n";
7704	s << "\tsType = " << value.sType << '\n';
7705	s << "\tpNext = " << value.pNext << '\n';
7706	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';
7707	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';
7708	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';
7709	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7710	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7711	s << '}';
7712	return s;
7713}
7714
7715std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
7716{
7717	s << "VkExternalMemoryImageCreateInfo = {\n";
7718	s << "\tsType = " << value.sType << '\n';
7719	s << "\tpNext = " << value.pNext << '\n';
7720	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7721	s << '}';
7722	return s;
7723}
7724
7725std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
7726{
7727	s << "VkExternalMemoryBufferCreateInfo = {\n";
7728	s << "\tsType = " << value.sType << '\n';
7729	s << "\tpNext = " << value.pNext << '\n';
7730	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7731	s << '}';
7732	return s;
7733}
7734
7735std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
7736{
7737	s << "VkExportMemoryAllocateInfo = {\n";
7738	s << "\tsType = " << value.sType << '\n';
7739	s << "\tpNext = " << value.pNext << '\n';
7740	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7741	s << '}';
7742	return s;
7743}
7744
7745std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
7746{
7747	s << "VkImportMemoryWin32HandleInfoKHR = {\n";
7748	s << "\tsType = " << value.sType << '\n';
7749	s << "\tpNext = " << value.pNext << '\n';
7750	s << "\thandleType = " << value.handleType << '\n';
7751	s << "\thandle = " << value.handle << '\n';
7752	s << "\tname = " << getWStr(value.name) << '\n';
7753	s << '}';
7754	return s;
7755}
7756
7757std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
7758{
7759	s << "VkExportMemoryWin32HandleInfoKHR = {\n";
7760	s << "\tsType = " << value.sType << '\n';
7761	s << "\tpNext = " << value.pNext << '\n';
7762	s << "\tpAttributes = " << value.pAttributes << '\n';
7763	s << "\tdwAccess = " << value.dwAccess << '\n';
7764	s << "\tname = " << getWStr(value.name) << '\n';
7765	s << '}';
7766	return s;
7767}
7768
7769std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
7770{
7771	s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
7772	s << "\tsType = " << value.sType << '\n';
7773	s << "\tpNext = " << value.pNext << '\n';
7774	s << "\thandleType = " << value.handleType << '\n';
7775	s << "\thandle = " << value.handle << '\n';
7776	s << '}';
7777	return s;
7778}
7779
7780std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
7781{
7782	s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
7783	s << "\tsType = " << value.sType << '\n';
7784	s << "\tpNext = " << value.pNext << '\n';
7785	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7786	s << '}';
7787	return s;
7788}
7789
7790std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
7791{
7792	s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
7793	s << "\tsType = " << value.sType << '\n';
7794	s << "\tpNext = " << value.pNext << '\n';
7795	s << "\tmemory = " << value.memory << '\n';
7796	s << "\thandleType = " << value.handleType << '\n';
7797	s << '}';
7798	return s;
7799}
7800
7801std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
7802{
7803	s << "VkMemoryWin32HandlePropertiesKHR = {\n";
7804	s << "\tsType = " << value.sType << '\n';
7805	s << "\tpNext = " << value.pNext << '\n';
7806	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7807	s << '}';
7808	return s;
7809}
7810
7811std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
7812{
7813	s << "VkMemoryGetWin32HandleInfoKHR = {\n";
7814	s << "\tsType = " << value.sType << '\n';
7815	s << "\tpNext = " << value.pNext << '\n';
7816	s << "\tmemory = " << value.memory << '\n';
7817	s << "\thandleType = " << value.handleType << '\n';
7818	s << '}';
7819	return s;
7820}
7821
7822std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
7823{
7824	s << "VkImportMemoryFdInfoKHR = {\n";
7825	s << "\tsType = " << value.sType << '\n';
7826	s << "\tpNext = " << value.pNext << '\n';
7827	s << "\thandleType = " << value.handleType << '\n';
7828	s << "\tfd = " << value.fd << '\n';
7829	s << '}';
7830	return s;
7831}
7832
7833std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
7834{
7835	s << "VkMemoryFdPropertiesKHR = {\n";
7836	s << "\tsType = " << value.sType << '\n';
7837	s << "\tpNext = " << value.pNext << '\n';
7838	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7839	s << '}';
7840	return s;
7841}
7842
7843std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
7844{
7845	s << "VkMemoryGetFdInfoKHR = {\n";
7846	s << "\tsType = " << value.sType << '\n';
7847	s << "\tpNext = " << value.pNext << '\n';
7848	s << "\tmemory = " << value.memory << '\n';
7849	s << "\thandleType = " << value.handleType << '\n';
7850	s << '}';
7851	return s;
7852}
7853
7854std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
7855{
7856	s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
7857	s << "\tsType = " << value.sType << '\n';
7858	s << "\tpNext = " << value.pNext << '\n';
7859	s << "\tacquireCount = " << value.acquireCount << '\n';
7860	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7861	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7862	s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
7863	s << "\treleaseCount = " << value.releaseCount << '\n';
7864	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7865	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7866	s << '}';
7867	return s;
7868}
7869
7870std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
7871{
7872	s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
7873	s << "\tsType = " << value.sType << '\n';
7874	s << "\tpNext = " << value.pNext << '\n';
7875	s << "\thandleType = " << value.handleType << '\n';
7876	s << '}';
7877	return s;
7878}
7879
7880std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
7881{
7882	s << "VkExternalSemaphoreProperties = {\n";
7883	s << "\tsType = " << value.sType << '\n';
7884	s << "\tpNext = " << value.pNext << '\n';
7885	s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7886	s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7887	s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
7888	s << '}';
7889	return s;
7890}
7891
7892std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
7893{
7894	s << "VkExportSemaphoreCreateInfo = {\n";
7895	s << "\tsType = " << value.sType << '\n';
7896	s << "\tpNext = " << value.pNext << '\n';
7897	s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
7898	s << '}';
7899	return s;
7900}
7901
7902std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
7903{
7904	s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
7905	s << "\tsType = " << value.sType << '\n';
7906	s << "\tpNext = " << value.pNext << '\n';
7907	s << "\tsemaphore = " << value.semaphore << '\n';
7908	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7909	s << "\thandleType = " << value.handleType << '\n';
7910	s << "\thandle = " << value.handle << '\n';
7911	s << "\tname = " << getWStr(value.name) << '\n';
7912	s << '}';
7913	return s;
7914}
7915
7916std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
7917{
7918	s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
7919	s << "\tsType = " << value.sType << '\n';
7920	s << "\tpNext = " << value.pNext << '\n';
7921	s << "\tpAttributes = " << value.pAttributes << '\n';
7922	s << "\tdwAccess = " << value.dwAccess << '\n';
7923	s << "\tname = " << getWStr(value.name) << '\n';
7924	s << '}';
7925	return s;
7926}
7927
7928std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
7929{
7930	s << "VkD3D12FenceSubmitInfoKHR = {\n";
7931	s << "\tsType = " << value.sType << '\n';
7932	s << "\tpNext = " << value.pNext << '\n';
7933	s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
7934	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7935	s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
7936	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7937	s << '}';
7938	return s;
7939}
7940
7941std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
7942{
7943	s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
7944	s << "\tsType = " << value.sType << '\n';
7945	s << "\tpNext = " << value.pNext << '\n';
7946	s << "\tsemaphore = " << value.semaphore << '\n';
7947	s << "\thandleType = " << value.handleType << '\n';
7948	s << '}';
7949	return s;
7950}
7951
7952std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
7953{
7954	s << "VkImportSemaphoreFdInfoKHR = {\n";
7955	s << "\tsType = " << value.sType << '\n';
7956	s << "\tpNext = " << value.pNext << '\n';
7957	s << "\tsemaphore = " << value.semaphore << '\n';
7958	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7959	s << "\thandleType = " << value.handleType << '\n';
7960	s << "\tfd = " << value.fd << '\n';
7961	s << '}';
7962	return s;
7963}
7964
7965std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
7966{
7967	s << "VkSemaphoreGetFdInfoKHR = {\n";
7968	s << "\tsType = " << value.sType << '\n';
7969	s << "\tpNext = " << value.pNext << '\n';
7970	s << "\tsemaphore = " << value.semaphore << '\n';
7971	s << "\thandleType = " << value.handleType << '\n';
7972	s << '}';
7973	return s;
7974}
7975
7976std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
7977{
7978	s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
7979	s << "\tsType = " << value.sType << '\n';
7980	s << "\tpNext = " << value.pNext << '\n';
7981	s << "\tsemaphore = " << value.semaphore << '\n';
7982	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7983	s << "\thandleType = " << value.handleType << '\n';
7984	s << "\tzirconHandle = " << value.zirconHandle << '\n';
7985	s << '}';
7986	return s;
7987}
7988
7989std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
7990{
7991	s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
7992	s << "\tsType = " << value.sType << '\n';
7993	s << "\tpNext = " << value.pNext << '\n';
7994	s << "\tsemaphore = " << value.semaphore << '\n';
7995	s << "\thandleType = " << value.handleType << '\n';
7996	s << '}';
7997	return s;
7998}
7999
8000std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
8001{
8002	s << "VkPhysicalDeviceExternalFenceInfo = {\n";
8003	s << "\tsType = " << value.sType << '\n';
8004	s << "\tpNext = " << value.pNext << '\n';
8005	s << "\thandleType = " << value.handleType << '\n';
8006	s << '}';
8007	return s;
8008}
8009
8010std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
8011{
8012	s << "VkExternalFenceProperties = {\n";
8013	s << "\tsType = " << value.sType << '\n';
8014	s << "\tpNext = " << value.pNext << '\n';
8015	s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8016	s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8017	s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
8018	s << '}';
8019	return s;
8020}
8021
8022std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
8023{
8024	s << "VkExportFenceCreateInfo = {\n";
8025	s << "\tsType = " << value.sType << '\n';
8026	s << "\tpNext = " << value.pNext << '\n';
8027	s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
8028	s << '}';
8029	return s;
8030}
8031
8032std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
8033{
8034	s << "VkImportFenceWin32HandleInfoKHR = {\n";
8035	s << "\tsType = " << value.sType << '\n';
8036	s << "\tpNext = " << value.pNext << '\n';
8037	s << "\tfence = " << value.fence << '\n';
8038	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
8039	s << "\thandleType = " << value.handleType << '\n';
8040	s << "\thandle = " << value.handle << '\n';
8041	s << "\tname = " << getWStr(value.name) << '\n';
8042	s << '}';
8043	return s;
8044}
8045
8046std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
8047{
8048	s << "VkExportFenceWin32HandleInfoKHR = {\n";
8049	s << "\tsType = " << value.sType << '\n';
8050	s << "\tpNext = " << value.pNext << '\n';
8051	s << "\tpAttributes = " << value.pAttributes << '\n';
8052	s << "\tdwAccess = " << value.dwAccess << '\n';
8053	s << "\tname = " << getWStr(value.name) << '\n';
8054	s << '}';
8055	return s;
8056}
8057
8058std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
8059{
8060	s << "VkFenceGetWin32HandleInfoKHR = {\n";
8061	s << "\tsType = " << value.sType << '\n';
8062	s << "\tpNext = " << value.pNext << '\n';
8063	s << "\tfence = " << value.fence << '\n';
8064	s << "\thandleType = " << value.handleType << '\n';
8065	s << '}';
8066	return s;
8067}
8068
8069std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
8070{
8071	s << "VkImportFenceFdInfoKHR = {\n";
8072	s << "\tsType = " << value.sType << '\n';
8073	s << "\tpNext = " << value.pNext << '\n';
8074	s << "\tfence = " << value.fence << '\n';
8075	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
8076	s << "\thandleType = " << value.handleType << '\n';
8077	s << "\tfd = " << value.fd << '\n';
8078	s << '}';
8079	return s;
8080}
8081
8082std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
8083{
8084	s << "VkFenceGetFdInfoKHR = {\n";
8085	s << "\tsType = " << value.sType << '\n';
8086	s << "\tpNext = " << value.pNext << '\n';
8087	s << "\tfence = " << value.fence << '\n';
8088	s << "\thandleType = " << value.handleType << '\n';
8089	s << '}';
8090	return s;
8091}
8092
8093std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
8094{
8095	s << "VkPhysicalDeviceMultiviewFeatures = {\n";
8096	s << "\tsType = " << value.sType << '\n';
8097	s << "\tpNext = " << value.pNext << '\n';
8098	s << "\tmultiview = " << value.multiview << '\n';
8099	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
8100	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
8101	s << '}';
8102	return s;
8103}
8104
8105std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
8106{
8107	s << "VkPhysicalDeviceMultiviewProperties = {\n";
8108	s << "\tsType = " << value.sType << '\n';
8109	s << "\tpNext = " << value.pNext << '\n';
8110	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
8111	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
8112	s << '}';
8113	return s;
8114}
8115
8116std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
8117{
8118	s << "VkRenderPassMultiviewCreateInfo = {\n";
8119	s << "\tsType = " << value.sType << '\n';
8120	s << "\tpNext = " << value.pNext << '\n';
8121	s << "\tsubpassCount = " << value.subpassCount << '\n';
8122	s << "\tpViewMasks = " << value.pViewMasks << '\n';
8123	s << "\tdependencyCount = " << value.dependencyCount << '\n';
8124	s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
8125	s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
8126	s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
8127	s << '}';
8128	return s;
8129}
8130
8131std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
8132{
8133	s << "VkSurfaceCapabilities2EXT = {\n";
8134	s << "\tsType = " << value.sType << '\n';
8135	s << "\tpNext = " << value.pNext << '\n';
8136	s << "\tminImageCount = " << value.minImageCount << '\n';
8137	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8138	s << "\tcurrentExtent = " << value.currentExtent << '\n';
8139	s << "\tminImageExtent = " << value.minImageExtent << '\n';
8140	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8141	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8142	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8143	s << "\tcurrentTransform = " << value.currentTransform << '\n';
8144	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8145	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8146	s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
8147	s << '}';
8148	return s;
8149}
8150
8151std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
8152{
8153	s << "VkDisplayPowerInfoEXT = {\n";
8154	s << "\tsType = " << value.sType << '\n';
8155	s << "\tpNext = " << value.pNext << '\n';
8156	s << "\tpowerState = " << value.powerState << '\n';
8157	s << '}';
8158	return s;
8159}
8160
8161std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
8162{
8163	s << "VkDeviceEventInfoEXT = {\n";
8164	s << "\tsType = " << value.sType << '\n';
8165	s << "\tpNext = " << value.pNext << '\n';
8166	s << "\tdeviceEvent = " << value.deviceEvent << '\n';
8167	s << '}';
8168	return s;
8169}
8170
8171std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
8172{
8173	s << "VkDisplayEventInfoEXT = {\n";
8174	s << "\tsType = " << value.sType << '\n';
8175	s << "\tpNext = " << value.pNext << '\n';
8176	s << "\tdisplayEvent = " << value.displayEvent << '\n';
8177	s << '}';
8178	return s;
8179}
8180
8181std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
8182{
8183	s << "VkSwapchainCounterCreateInfoEXT = {\n";
8184	s << "\tsType = " << value.sType << '\n';
8185	s << "\tpNext = " << value.pNext << '\n';
8186	s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
8187	s << '}';
8188	return s;
8189}
8190
8191std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
8192{
8193	s << "VkPhysicalDeviceGroupProperties = {\n";
8194	s << "\tsType = " << value.sType << '\n';
8195	s << "\tpNext = " << value.pNext << '\n';
8196	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8197	s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
8198	s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
8199	s << '}';
8200	return s;
8201}
8202
8203std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
8204{
8205	s << "VkMemoryAllocateFlagsInfo = {\n";
8206	s << "\tsType = " << value.sType << '\n';
8207	s << "\tpNext = " << value.pNext << '\n';
8208	s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
8209	s << "\tdeviceMask = " << value.deviceMask << '\n';
8210	s << '}';
8211	return s;
8212}
8213
8214std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
8215{
8216	s << "VkBindBufferMemoryInfo = {\n";
8217	s << "\tsType = " << value.sType << '\n';
8218	s << "\tpNext = " << value.pNext << '\n';
8219	s << "\tbuffer = " << value.buffer << '\n';
8220	s << "\tmemory = " << value.memory << '\n';
8221	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8222	s << '}';
8223	return s;
8224}
8225
8226std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
8227{
8228	s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
8229	s << "\tsType = " << value.sType << '\n';
8230	s << "\tpNext = " << value.pNext << '\n';
8231	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8232	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8233	s << '}';
8234	return s;
8235}
8236
8237std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
8238{
8239	s << "VkBindImageMemoryInfo = {\n";
8240	s << "\tsType = " << value.sType << '\n';
8241	s << "\tpNext = " << value.pNext << '\n';
8242	s << "\timage = " << value.image << '\n';
8243	s << "\tmemory = " << value.memory << '\n';
8244	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8245	s << '}';
8246	return s;
8247}
8248
8249std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
8250{
8251	s << "VkBindImageMemoryDeviceGroupInfo = {\n";
8252	s << "\tsType = " << value.sType << '\n';
8253	s << "\tpNext = " << value.pNext << '\n';
8254	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8255	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8256	s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
8257	s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
8258	s << '}';
8259	return s;
8260}
8261
8262std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
8263{
8264	s << "VkDeviceGroupRenderPassBeginInfo = {\n";
8265	s << "\tsType = " << value.sType << '\n';
8266	s << "\tpNext = " << value.pNext << '\n';
8267	s << "\tdeviceMask = " << value.deviceMask << '\n';
8268	s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
8269	s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
8270	s << '}';
8271	return s;
8272}
8273
8274std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
8275{
8276	s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
8277	s << "\tsType = " << value.sType << '\n';
8278	s << "\tpNext = " << value.pNext << '\n';
8279	s << "\tdeviceMask = " << value.deviceMask << '\n';
8280	s << '}';
8281	return s;
8282}
8283
8284std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
8285{
8286	s << "VkDeviceGroupSubmitInfo = {\n";
8287	s << "\tsType = " << value.sType << '\n';
8288	s << "\tpNext = " << value.pNext << '\n';
8289	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8290	s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
8291	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
8292	s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
8293	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
8294	s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
8295	s << '}';
8296	return s;
8297}
8298
8299std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
8300{
8301	s << "VkDeviceGroupBindSparseInfo = {\n";
8302	s << "\tsType = " << value.sType << '\n';
8303	s << "\tpNext = " << value.pNext << '\n';
8304	s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
8305	s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
8306	s << '}';
8307	return s;
8308}
8309
8310std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
8311{
8312	s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
8313	s << "\tsType = " << value.sType << '\n';
8314	s << "\tpNext = " << value.pNext << '\n';
8315	s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
8316	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8317	s << '}';
8318	return s;
8319}
8320
8321std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
8322{
8323	s << "VkImageSwapchainCreateInfoKHR = {\n";
8324	s << "\tsType = " << value.sType << '\n';
8325	s << "\tpNext = " << value.pNext << '\n';
8326	s << "\tswapchain = " << value.swapchain << '\n';
8327	s << '}';
8328	return s;
8329}
8330
8331std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
8332{
8333	s << "VkBindImageMemorySwapchainInfoKHR = {\n";
8334	s << "\tsType = " << value.sType << '\n';
8335	s << "\tpNext = " << value.pNext << '\n';
8336	s << "\tswapchain = " << value.swapchain << '\n';
8337	s << "\timageIndex = " << value.imageIndex << '\n';
8338	s << '}';
8339	return s;
8340}
8341
8342std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
8343{
8344	s << "VkAcquireNextImageInfoKHR = {\n";
8345	s << "\tsType = " << value.sType << '\n';
8346	s << "\tpNext = " << value.pNext << '\n';
8347	s << "\tswapchain = " << value.swapchain << '\n';
8348	s << "\ttimeout = " << value.timeout << '\n';
8349	s << "\tsemaphore = " << value.semaphore << '\n';
8350	s << "\tfence = " << value.fence << '\n';
8351	s << "\tdeviceMask = " << value.deviceMask << '\n';
8352	s << '}';
8353	return s;
8354}
8355
8356std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
8357{
8358	s << "VkDeviceGroupPresentInfoKHR = {\n";
8359	s << "\tsType = " << value.sType << '\n';
8360	s << "\tpNext = " << value.pNext << '\n';
8361	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8362	s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
8363	s << "\tmode = " << value.mode << '\n';
8364	s << '}';
8365	return s;
8366}
8367
8368std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
8369{
8370	s << "VkDeviceGroupDeviceCreateInfo = {\n";
8371	s << "\tsType = " << value.sType << '\n';
8372	s << "\tpNext = " << value.pNext << '\n';
8373	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8374	s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
8375	s << '}';
8376	return s;
8377}
8378
8379std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
8380{
8381	s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
8382	s << "\tsType = " << value.sType << '\n';
8383	s << "\tpNext = " << value.pNext << '\n';
8384	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8385	s << '}';
8386	return s;
8387}
8388
8389std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
8390{
8391	s << "VkDescriptorUpdateTemplateEntry = {\n";
8392	s << "\tdstBinding = " << value.dstBinding << '\n';
8393	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
8394	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
8395	s << "\tdescriptorType = " << value.descriptorType << '\n';
8396	s << "\toffset = " << value.offset << '\n';
8397	s << "\tstride = " << value.stride << '\n';
8398	s << '}';
8399	return s;
8400}
8401
8402std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
8403{
8404	s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
8405	s << "\tsType = " << value.sType << '\n';
8406	s << "\tpNext = " << value.pNext << '\n';
8407	s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
8408	s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
8409	s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
8410	s << "\ttemplateType = " << value.templateType << '\n';
8411	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
8412	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8413	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
8414	s << "\tset = " << value.set << '\n';
8415	s << '}';
8416	return s;
8417}
8418
8419std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
8420{
8421	s << "VkXYColorEXT = {\n";
8422	s << "\tx = " << value.x << '\n';
8423	s << "\ty = " << value.y << '\n';
8424	s << '}';
8425	return s;
8426}
8427
8428std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
8429{
8430	s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
8431	s << "\tsType = " << value.sType << '\n';
8432	s << "\tpNext = " << value.pNext << '\n';
8433	s << "\tpresentId = " << value.presentId << '\n';
8434	s << '}';
8435	return s;
8436}
8437
8438std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
8439{
8440	s << "VkPresentIdKHR = {\n";
8441	s << "\tsType = " << value.sType << '\n';
8442	s << "\tpNext = " << value.pNext << '\n';
8443	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8444	s << "\tpPresentIds = " << value.pPresentIds << '\n';
8445	s << '}';
8446	return s;
8447}
8448
8449std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
8450{
8451	s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
8452	s << "\tsType = " << value.sType << '\n';
8453	s << "\tpNext = " << value.pNext << '\n';
8454	s << "\tpresentWait = " << value.presentWait << '\n';
8455	s << '}';
8456	return s;
8457}
8458
8459std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
8460{
8461	s << "VkHdrMetadataEXT = {\n";
8462	s << "\tsType = " << value.sType << '\n';
8463	s << "\tpNext = " << value.pNext << '\n';
8464	s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
8465	s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
8466	s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
8467	s << "\twhitePoint = " << value.whitePoint << '\n';
8468	s << "\tmaxLuminance = " << value.maxLuminance << '\n';
8469	s << "\tminLuminance = " << value.minLuminance << '\n';
8470	s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
8471	s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
8472	s << '}';
8473	return s;
8474}
8475
8476std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
8477{
8478	s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
8479	s << "\tsType = " << value.sType << '\n';
8480	s << "\tpNext = " << value.pNext << '\n';
8481	s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
8482	s << '}';
8483	return s;
8484}
8485
8486std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
8487{
8488	s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
8489	s << "\tsType = " << value.sType << '\n';
8490	s << "\tpNext = " << value.pNext << '\n';
8491	s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
8492	s << '}';
8493	return s;
8494}
8495
8496std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
8497{
8498	s << "VkRefreshCycleDurationGOOGLE = {\n";
8499	s << "\trefreshDuration = " << value.refreshDuration << '\n';
8500	s << '}';
8501	return s;
8502}
8503
8504std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
8505{
8506	s << "VkPastPresentationTimingGOOGLE = {\n";
8507	s << "\tpresentID = " << value.presentID << '\n';
8508	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8509	s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
8510	s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
8511	s << "\tpresentMargin = " << value.presentMargin << '\n';
8512	s << '}';
8513	return s;
8514}
8515
8516std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
8517{
8518	s << "VkPresentTimesInfoGOOGLE = {\n";
8519	s << "\tsType = " << value.sType << '\n';
8520	s << "\tpNext = " << value.pNext << '\n';
8521	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8522	s << "\tpTimes = " << value.pTimes << '\n';
8523	s << '}';
8524	return s;
8525}
8526
8527std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
8528{
8529	s << "VkPresentTimeGOOGLE = {\n";
8530	s << "\tpresentID = " << value.presentID << '\n';
8531	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8532	s << '}';
8533	return s;
8534}
8535
8536std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
8537{
8538	s << "VkIOSSurfaceCreateInfoMVK = {\n";
8539	s << "\tsType = " << value.sType << '\n';
8540	s << "\tpNext = " << value.pNext << '\n';
8541	s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8542	s << "\tpView = " << value.pView << '\n';
8543	s << '}';
8544	return s;
8545}
8546
8547std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
8548{
8549	s << "VkMacOSSurfaceCreateInfoMVK = {\n";
8550	s << "\tsType = " << value.sType << '\n';
8551	s << "\tpNext = " << value.pNext << '\n';
8552	s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8553	s << "\tpView = " << value.pView << '\n';
8554	s << '}';
8555	return s;
8556}
8557
8558std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
8559{
8560	s << "VkMetalSurfaceCreateInfoEXT = {\n";
8561	s << "\tsType = " << value.sType << '\n';
8562	s << "\tpNext = " << value.pNext << '\n';
8563	s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
8564	s << "\tpLayer = " << value.pLayer << '\n';
8565	s << '}';
8566	return s;
8567}
8568
8569std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
8570{
8571	s << "VkViewportWScalingNV = {\n";
8572	s << "\txcoeff = " << value.xcoeff << '\n';
8573	s << "\tycoeff = " << value.ycoeff << '\n';
8574	s << '}';
8575	return s;
8576}
8577
8578std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
8579{
8580	s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
8581	s << "\tsType = " << value.sType << '\n';
8582	s << "\tpNext = " << value.pNext << '\n';
8583	s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
8584	s << "\tviewportCount = " << value.viewportCount << '\n';
8585	s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
8586	s << '}';
8587	return s;
8588}
8589
8590std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
8591{
8592	s << "VkViewportSwizzleNV = {\n";
8593	s << "\tx = " << value.x << '\n';
8594	s << "\ty = " << value.y << '\n';
8595	s << "\tz = " << value.z << '\n';
8596	s << "\tw = " << value.w << '\n';
8597	s << '}';
8598	return s;
8599}
8600
8601std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
8602{
8603	s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
8604	s << "\tsType = " << value.sType << '\n';
8605	s << "\tpNext = " << value.pNext << '\n';
8606	s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
8607	s << "\tviewportCount = " << value.viewportCount << '\n';
8608	s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
8609	s << '}';
8610	return s;
8611}
8612
8613std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
8614{
8615	s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
8616	s << "\tsType = " << value.sType << '\n';
8617	s << "\tpNext = " << value.pNext << '\n';
8618	s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
8619	s << '}';
8620	return s;
8621}
8622
8623std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
8624{
8625	s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
8626	s << "\tsType = " << value.sType << '\n';
8627	s << "\tpNext = " << value.pNext << '\n';
8628	s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
8629	s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
8630	s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
8631	s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
8632	s << '}';
8633	return s;
8634}
8635
8636std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
8637{
8638	s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
8639	s << "\tsType = " << value.sType << '\n';
8640	s << "\tpNext = " << value.pNext << '\n';
8641	s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
8642	s << '}';
8643	return s;
8644}
8645
8646std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
8647{
8648	s << "VkInputAttachmentAspectReference = {\n";
8649	s << "\tsubpass = " << value.subpass << '\n';
8650	s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
8651	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
8652	s << '}';
8653	return s;
8654}
8655
8656std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
8657{
8658	s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
8659	s << "\tsType = " << value.sType << '\n';
8660	s << "\tpNext = " << value.pNext << '\n';
8661	s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
8662	s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
8663	s << '}';
8664	return s;
8665}
8666
8667std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
8668{
8669	s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
8670	s << "\tsType = " << value.sType << '\n';
8671	s << "\tpNext = " << value.pNext << '\n';
8672	s << "\tsurface = " << value.surface << '\n';
8673	s << '}';
8674	return s;
8675}
8676
8677std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
8678{
8679	s << "VkSurfaceCapabilities2KHR = {\n";
8680	s << "\tsType = " << value.sType << '\n';
8681	s << "\tpNext = " << value.pNext << '\n';
8682	s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
8683	s << '}';
8684	return s;
8685}
8686
8687std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
8688{
8689	s << "VkSurfaceFormat2KHR = {\n";
8690	s << "\tsType = " << value.sType << '\n';
8691	s << "\tpNext = " << value.pNext << '\n';
8692	s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
8693	s << '}';
8694	return s;
8695}
8696
8697std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
8698{
8699	s << "VkDisplayProperties2KHR = {\n";
8700	s << "\tsType = " << value.sType << '\n';
8701	s << "\tpNext = " << value.pNext << '\n';
8702	s << "\tdisplayProperties = " << value.displayProperties << '\n';
8703	s << '}';
8704	return s;
8705}
8706
8707std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
8708{
8709	s << "VkDisplayPlaneProperties2KHR = {\n";
8710	s << "\tsType = " << value.sType << '\n';
8711	s << "\tpNext = " << value.pNext << '\n';
8712	s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
8713	s << '}';
8714	return s;
8715}
8716
8717std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
8718{
8719	s << "VkDisplayModeProperties2KHR = {\n";
8720	s << "\tsType = " << value.sType << '\n';
8721	s << "\tpNext = " << value.pNext << '\n';
8722	s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
8723	s << '}';
8724	return s;
8725}
8726
8727std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
8728{
8729	s << "VkDisplayPlaneInfo2KHR = {\n";
8730	s << "\tsType = " << value.sType << '\n';
8731	s << "\tpNext = " << value.pNext << '\n';
8732	s << "\tmode = " << value.mode << '\n';
8733	s << "\tplaneIndex = " << value.planeIndex << '\n';
8734	s << '}';
8735	return s;
8736}
8737
8738std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
8739{
8740	s << "VkDisplayPlaneCapabilities2KHR = {\n";
8741	s << "\tsType = " << value.sType << '\n';
8742	s << "\tpNext = " << value.pNext << '\n';
8743	s << "\tcapabilities = " << value.capabilities << '\n';
8744	s << '}';
8745	return s;
8746}
8747
8748std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
8749{
8750	s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
8751	s << "\tsType = " << value.sType << '\n';
8752	s << "\tpNext = " << value.pNext << '\n';
8753	s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
8754	s << '}';
8755	return s;
8756}
8757
8758std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
8759{
8760	s << "VkPhysicalDevice16BitStorageFeatures = {\n";
8761	s << "\tsType = " << value.sType << '\n';
8762	s << "\tpNext = " << value.pNext << '\n';
8763	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
8764	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
8765	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
8766	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
8767	s << '}';
8768	return s;
8769}
8770
8771std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
8772{
8773	s << "VkPhysicalDeviceSubgroupProperties = {\n";
8774	s << "\tsType = " << value.sType << '\n';
8775	s << "\tpNext = " << value.pNext << '\n';
8776	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
8777	s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
8778	s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
8779	s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
8780	s << '}';
8781	return s;
8782}
8783
8784std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
8785{
8786	s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
8787	s << "\tsType = " << value.sType << '\n';
8788	s << "\tpNext = " << value.pNext << '\n';
8789	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
8790	s << '}';
8791	return s;
8792}
8793
8794std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
8795{
8796	s << "VkBufferMemoryRequirementsInfo2 = {\n";
8797	s << "\tsType = " << value.sType << '\n';
8798	s << "\tpNext = " << value.pNext << '\n';
8799	s << "\tbuffer = " << value.buffer << '\n';
8800	s << '}';
8801	return s;
8802}
8803
8804std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
8805{
8806	s << "VkDeviceBufferMemoryRequirements = {\n";
8807	s << "\tsType = " << value.sType << '\n';
8808	s << "\tpNext = " << value.pNext << '\n';
8809	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8810	s << '}';
8811	return s;
8812}
8813
8814std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
8815{
8816	s << "VkImageMemoryRequirementsInfo2 = {\n";
8817	s << "\tsType = " << value.sType << '\n';
8818	s << "\tpNext = " << value.pNext << '\n';
8819	s << "\timage = " << value.image << '\n';
8820	s << '}';
8821	return s;
8822}
8823
8824std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
8825{
8826	s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
8827	s << "\tsType = " << value.sType << '\n';
8828	s << "\tpNext = " << value.pNext << '\n';
8829	s << "\timage = " << value.image << '\n';
8830	s << '}';
8831	return s;
8832}
8833
8834std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
8835{
8836	s << "VkDeviceImageMemoryRequirements = {\n";
8837	s << "\tsType = " << value.sType << '\n';
8838	s << "\tpNext = " << value.pNext << '\n';
8839	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8840	s << "\tplaneAspect = " << value.planeAspect << '\n';
8841	s << '}';
8842	return s;
8843}
8844
8845std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
8846{
8847	s << "VkMemoryRequirements2 = {\n";
8848	s << "\tsType = " << value.sType << '\n';
8849	s << "\tpNext = " << value.pNext << '\n';
8850	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8851	s << '}';
8852	return s;
8853}
8854
8855std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
8856{
8857	s << "VkSparseImageMemoryRequirements2 = {\n";
8858	s << "\tsType = " << value.sType << '\n';
8859	s << "\tpNext = " << value.pNext << '\n';
8860	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8861	s << '}';
8862	return s;
8863}
8864
8865std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
8866{
8867	s << "VkPhysicalDevicePointClippingProperties = {\n";
8868	s << "\tsType = " << value.sType << '\n';
8869	s << "\tpNext = " << value.pNext << '\n';
8870	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
8871	s << '}';
8872	return s;
8873}
8874
8875std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
8876{
8877	s << "VkMemoryDedicatedRequirements = {\n";
8878	s << "\tsType = " << value.sType << '\n';
8879	s << "\tpNext = " << value.pNext << '\n';
8880	s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
8881	s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
8882	s << '}';
8883	return s;
8884}
8885
8886std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
8887{
8888	s << "VkMemoryDedicatedAllocateInfo = {\n";
8889	s << "\tsType = " << value.sType << '\n';
8890	s << "\tpNext = " << value.pNext << '\n';
8891	s << "\timage = " << value.image << '\n';
8892	s << "\tbuffer = " << value.buffer << '\n';
8893	s << '}';
8894	return s;
8895}
8896
8897std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
8898{
8899	s << "VkImageViewUsageCreateInfo = {\n";
8900	s << "\tsType = " << value.sType << '\n';
8901	s << "\tpNext = " << value.pNext << '\n';
8902	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8903	s << '}';
8904	return s;
8905}
8906
8907std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
8908{
8909	s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
8910	s << "\tsType = " << value.sType << '\n';
8911	s << "\tpNext = " << value.pNext << '\n';
8912	s << "\tdomainOrigin = " << value.domainOrigin << '\n';
8913	s << '}';
8914	return s;
8915}
8916
8917std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
8918{
8919	s << "VkSamplerYcbcrConversionInfo = {\n";
8920	s << "\tsType = " << value.sType << '\n';
8921	s << "\tpNext = " << value.pNext << '\n';
8922	s << "\tconversion = " << value.conversion << '\n';
8923	s << '}';
8924	return s;
8925}
8926
8927std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
8928{
8929	s << "VkSamplerYcbcrConversionCreateInfo = {\n";
8930	s << "\tsType = " << value.sType << '\n';
8931	s << "\tpNext = " << value.pNext << '\n';
8932	s << "\tformat = " << value.format << '\n';
8933	s << "\tycbcrModel = " << value.ycbcrModel << '\n';
8934	s << "\tycbcrRange = " << value.ycbcrRange << '\n';
8935	s << "\tcomponents = " << value.components << '\n';
8936	s << "\txChromaOffset = " << value.xChromaOffset << '\n';
8937	s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
8938	s << "\tchromaFilter = " << value.chromaFilter << '\n';
8939	s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
8940	s << '}';
8941	return s;
8942}
8943
8944std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
8945{
8946	s << "VkBindImagePlaneMemoryInfo = {\n";
8947	s << "\tsType = " << value.sType << '\n';
8948	s << "\tpNext = " << value.pNext << '\n';
8949	s << "\tplaneAspect = " << value.planeAspect << '\n';
8950	s << '}';
8951	return s;
8952}
8953
8954std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
8955{
8956	s << "VkImagePlaneMemoryRequirementsInfo = {\n";
8957	s << "\tsType = " << value.sType << '\n';
8958	s << "\tpNext = " << value.pNext << '\n';
8959	s << "\tplaneAspect = " << value.planeAspect << '\n';
8960	s << '}';
8961	return s;
8962}
8963
8964std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
8965{
8966	s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
8967	s << "\tsType = " << value.sType << '\n';
8968	s << "\tpNext = " << value.pNext << '\n';
8969	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
8970	s << '}';
8971	return s;
8972}
8973
8974std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
8975{
8976	s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
8977	s << "\tsType = " << value.sType << '\n';
8978	s << "\tpNext = " << value.pNext << '\n';
8979	s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
8980	s << '}';
8981	return s;
8982}
8983
8984std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
8985{
8986	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
8987	s << "\tsType = " << value.sType << '\n';
8988	s << "\tpNext = " << value.pNext << '\n';
8989	s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
8990	s << '}';
8991	return s;
8992}
8993
8994std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
8995{
8996	s << "VkConditionalRenderingBeginInfoEXT = {\n";
8997	s << "\tsType = " << value.sType << '\n';
8998	s << "\tpNext = " << value.pNext << '\n';
8999	s << "\tbuffer = " << value.buffer << '\n';
9000	s << "\toffset = " << value.offset << '\n';
9001	s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
9002	s << '}';
9003	return s;
9004}
9005
9006std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
9007{
9008	s << "VkProtectedSubmitInfo = {\n";
9009	s << "\tsType = " << value.sType << '\n';
9010	s << "\tpNext = " << value.pNext << '\n';
9011	s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
9012	s << '}';
9013	return s;
9014}
9015
9016std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
9017{
9018	s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
9019	s << "\tsType = " << value.sType << '\n';
9020	s << "\tpNext = " << value.pNext << '\n';
9021	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
9022	s << '}';
9023	return s;
9024}
9025
9026std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
9027{
9028	s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
9029	s << "\tsType = " << value.sType << '\n';
9030	s << "\tpNext = " << value.pNext << '\n';
9031	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
9032	s << '}';
9033	return s;
9034}
9035
9036std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
9037{
9038	s << "VkDeviceQueueInfo2 = {\n";
9039	s << "\tsType = " << value.sType << '\n';
9040	s << "\tpNext = " << value.pNext << '\n';
9041	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
9042	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
9043	s << "\tqueueIndex = " << value.queueIndex << '\n';
9044	s << '}';
9045	return s;
9046}
9047
9048std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
9049{
9050	s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
9051	s << "\tsType = " << value.sType << '\n';
9052	s << "\tpNext = " << value.pNext << '\n';
9053	s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
9054	s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
9055	s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
9056	s << '}';
9057	return s;
9058}
9059
9060std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
9061{
9062	s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
9063	s << "\tsType = " << value.sType << '\n';
9064	s << "\tpNext = " << value.pNext << '\n';
9065	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
9066	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
9067	s << '}';
9068	return s;
9069}
9070
9071std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
9072{
9073	s << "VkSampleLocationEXT = {\n";
9074	s << "\tx = " << value.x << '\n';
9075	s << "\ty = " << value.y << '\n';
9076	s << '}';
9077	return s;
9078}
9079
9080std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
9081{
9082	s << "VkSampleLocationsInfoEXT = {\n";
9083	s << "\tsType = " << value.sType << '\n';
9084	s << "\tpNext = " << value.pNext << '\n';
9085	s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
9086	s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
9087	s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
9088	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9089	s << '}';
9090	return s;
9091}
9092
9093std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
9094{
9095	s << "VkAttachmentSampleLocationsEXT = {\n";
9096	s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
9097	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9098	s << '}';
9099	return s;
9100}
9101
9102std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
9103{
9104	s << "VkSubpassSampleLocationsEXT = {\n";
9105	s << "\tsubpassIndex = " << value.subpassIndex << '\n';
9106	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9107	s << '}';
9108	return s;
9109}
9110
9111std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
9112{
9113	s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
9114	s << "\tsType = " << value.sType << '\n';
9115	s << "\tpNext = " << value.pNext << '\n';
9116	s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
9117	s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
9118	s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
9119	s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
9120	s << '}';
9121	return s;
9122}
9123
9124std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
9125{
9126	s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
9127	s << "\tsType = " << value.sType << '\n';
9128	s << "\tpNext = " << value.pNext << '\n';
9129	s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
9130	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9131	s << '}';
9132	return s;
9133}
9134
9135std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
9136{
9137	s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
9138	s << "\tsType = " << value.sType << '\n';
9139	s << "\tpNext = " << value.pNext << '\n';
9140	s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
9141	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9142	s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
9143	s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
9144	s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
9145	s << '}';
9146	return s;
9147}
9148
9149std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
9150{
9151	s << "VkMultisamplePropertiesEXT = {\n";
9152	s << "\tsType = " << value.sType << '\n';
9153	s << "\tpNext = " << value.pNext << '\n';
9154	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9155	s << '}';
9156	return s;
9157}
9158
9159std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
9160{
9161	s << "VkSamplerReductionModeCreateInfo = {\n";
9162	s << "\tsType = " << value.sType << '\n';
9163	s << "\tpNext = " << value.pNext << '\n';
9164	s << "\treductionMode = " << value.reductionMode << '\n';
9165	s << '}';
9166	return s;
9167}
9168
9169std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
9170{
9171	s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
9172	s << "\tsType = " << value.sType << '\n';
9173	s << "\tpNext = " << value.pNext << '\n';
9174	s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
9175	s << '}';
9176	return s;
9177}
9178
9179std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
9180{
9181	s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
9182	s << "\tsType = " << value.sType << '\n';
9183	s << "\tpNext = " << value.pNext << '\n';
9184	s << "\tmultiDraw = " << value.multiDraw << '\n';
9185	s << '}';
9186	return s;
9187}
9188
9189std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
9190{
9191	s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
9192	s << "\tsType = " << value.sType << '\n';
9193	s << "\tpNext = " << value.pNext << '\n';
9194	s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
9195	s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
9196	s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
9197	s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
9198	s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
9199	s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
9200	s << '}';
9201	return s;
9202}
9203
9204std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
9205{
9206	s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
9207	s << "\tsType = " << value.sType << '\n';
9208	s << "\tpNext = " << value.pNext << '\n';
9209	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
9210	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
9211	s << "\tblendOverlap = " << value.blendOverlap << '\n';
9212	s << '}';
9213	return s;
9214}
9215
9216std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
9217{
9218	s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
9219	s << "\tsType = " << value.sType << '\n';
9220	s << "\tpNext = " << value.pNext << '\n';
9221	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
9222	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
9223	s << '}';
9224	return s;
9225}
9226
9227std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
9228{
9229	s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
9230	s << "\tsType = " << value.sType << '\n';
9231	s << "\tpNext = " << value.pNext << '\n';
9232	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
9233	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
9234	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
9235	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
9236	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
9237	s << '}';
9238	return s;
9239}
9240
9241std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
9242{
9243	s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
9244	s << "\tsType = " << value.sType << '\n';
9245	s << "\tpNext = " << value.pNext << '\n';
9246	s << "\tdataSize = " << value.dataSize << '\n';
9247	s << "\tpData = " << value.pData << '\n';
9248	s << '}';
9249	return s;
9250}
9251
9252std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
9253{
9254	s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
9255	s << "\tsType = " << value.sType << '\n';
9256	s << "\tpNext = " << value.pNext << '\n';
9257	s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
9258	s << '}';
9259	return s;
9260}
9261
9262std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
9263{
9264	s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
9265	s << "\tsType = " << value.sType << '\n';
9266	s << "\tpNext = " << value.pNext << '\n';
9267	s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
9268	s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
9269	s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
9270	s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
9271	s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
9272	s << '}';
9273	return s;
9274}
9275
9276std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
9277{
9278	s << "VkImageFormatListCreateInfo = {\n";
9279	s << "\tsType = " << value.sType << '\n';
9280	s << "\tpNext = " << value.pNext << '\n';
9281	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
9282	s << "\tpViewFormats = " << value.pViewFormats << '\n';
9283	s << '}';
9284	return s;
9285}
9286
9287std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
9288{
9289	s << "VkValidationCacheCreateInfoEXT = {\n";
9290	s << "\tsType = " << value.sType << '\n';
9291	s << "\tpNext = " << value.pNext << '\n';
9292	s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
9293	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
9294	s << "\tpInitialData = " << value.pInitialData << '\n';
9295	s << '}';
9296	return s;
9297}
9298
9299std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
9300{
9301	s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
9302	s << "\tsType = " << value.sType << '\n';
9303	s << "\tpNext = " << value.pNext << '\n';
9304	s << "\tvalidationCache = " << value.validationCache << '\n';
9305	s << '}';
9306	return s;
9307}
9308
9309std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
9310{
9311	s << "VkPhysicalDeviceMaintenance3Properties = {\n";
9312	s << "\tsType = " << value.sType << '\n';
9313	s << "\tpNext = " << value.pNext << '\n';
9314	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
9315	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
9316	s << '}';
9317	return s;
9318}
9319
9320std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
9321{
9322	s << "VkPhysicalDeviceMaintenance4Features = {\n";
9323	s << "\tsType = " << value.sType << '\n';
9324	s << "\tpNext = " << value.pNext << '\n';
9325	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
9326	s << '}';
9327	return s;
9328}
9329
9330std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
9331{
9332	s << "VkPhysicalDeviceMaintenance4Properties = {\n";
9333	s << "\tsType = " << value.sType << '\n';
9334	s << "\tpNext = " << value.pNext << '\n';
9335	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
9336	s << '}';
9337	return s;
9338}
9339
9340std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
9341{
9342	s << "VkDescriptorSetLayoutSupport = {\n";
9343	s << "\tsType = " << value.sType << '\n';
9344	s << "\tpNext = " << value.pNext << '\n';
9345	s << "\tsupported = " << value.supported << '\n';
9346	s << '}';
9347	return s;
9348}
9349
9350std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
9351{
9352	s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
9353	s << "\tsType = " << value.sType << '\n';
9354	s << "\tpNext = " << value.pNext << '\n';
9355	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
9356	s << '}';
9357	return s;
9358}
9359
9360std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
9361{
9362	s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
9363	s << "\tsType = " << value.sType << '\n';
9364	s << "\tpNext = " << value.pNext << '\n';
9365	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
9366	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
9367	s << '}';
9368	return s;
9369}
9370
9371std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
9372{
9373	s << "VkPhysicalDeviceFloatControlsProperties = {\n";
9374	s << "\tsType = " << value.sType << '\n';
9375	s << "\tpNext = " << value.pNext << '\n';
9376	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
9377	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
9378	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
9379	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
9380	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
9381	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
9382	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
9383	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
9384	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
9385	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
9386	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
9387	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
9388	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
9389	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
9390	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
9391	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
9392	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
9393	s << '}';
9394	return s;
9395}
9396
9397std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
9398{
9399	s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
9400	s << "\tsType = " << value.sType << '\n';
9401	s << "\tpNext = " << value.pNext << '\n';
9402	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
9403	s << '}';
9404	return s;
9405}
9406
9407std::ostream& operator<< (std::ostream& s, const VkNativeBufferOpenHarmony& value)
9408{
9409	s << "VkNativeBufferOpenHarmony = {\n";
9410	s << "\tsType = " << value.sType << '\n';
9411	s << "\tpNext = " << value.pNext << '\n';
9412	s << "\thandle = " << value.handle << '\n';
9413	s << '}';
9414	return s;
9415}
9416
9417std::ostream& operator<< (std::ostream& s, const VkSwapchainImageCreateInfoOpenHarmony& value)
9418{
9419	s << "VkSwapchainImageCreateInfoOpenHarmony = {\n";
9420	s << "\tsType = " << value.sType << '\n';
9421	s << "\tpNext = " << value.pNext << '\n';
9422	s << "\tusage = " << getSwapchainImageUsageFlagsOpenHarmonyStr(value.usage) << '\n';
9423	s << '}';
9424	return s;
9425}
9426
9427std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentationPropertiesOpenHarmony& value)
9428{
9429	s << "VkPhysicalDevicePresentationPropertiesOpenHarmony = {\n";
9430	s << "\tsType = " << value.sType << '\n';
9431	s << "\tpNext = " << value.pNext << '\n';
9432	s << "\tsharedImage = " << value.sharedImage << '\n';
9433	s << '}';
9434	return s;
9435}
9436
9437std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
9438{
9439	s << "VkShaderResourceUsageAMD = {\n";
9440	s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
9441	s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
9442	s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
9443	s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
9444	s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
9445	s << '}';
9446	return s;
9447}
9448
9449std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
9450{
9451	s << "VkShaderStatisticsInfoAMD = {\n";
9452	s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
9453	s << "\tresourceUsage = " << value.resourceUsage << '\n';
9454	s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
9455	s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
9456	s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
9457	s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
9458	s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
9459	s << '}';
9460	return s;
9461}
9462
9463std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
9464{
9465	s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
9466	s << "\tsType = " << value.sType << '\n';
9467	s << "\tpNext = " << value.pNext << '\n';
9468	s << "\tglobalPriority = " << value.globalPriority << '\n';
9469	s << '}';
9470	return s;
9471}
9472
9473std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
9474{
9475	s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
9476	s << "\tsType = " << value.sType << '\n';
9477	s << "\tpNext = " << value.pNext << '\n';
9478	s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
9479	s << '}';
9480	return s;
9481}
9482
9483std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
9484{
9485	s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
9486	s << "\tsType = " << value.sType << '\n';
9487	s << "\tpNext = " << value.pNext << '\n';
9488	s << "\tpriorityCount = " << value.priorityCount << '\n';
9489	s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
9490	s << '}';
9491	return s;
9492}
9493
9494std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
9495{
9496	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
9497	s << "\tsType = " << value.sType << '\n';
9498	s << "\tpNext = " << value.pNext << '\n';
9499	s << "\tobjectType = " << value.objectType << '\n';
9500	s << "\tobjectHandle = " << value.objectHandle << '\n';
9501	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9502	s << '}';
9503	return s;
9504}
9505
9506std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
9507{
9508	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
9509	s << "\tsType = " << value.sType << '\n';
9510	s << "\tpNext = " << value.pNext << '\n';
9511	s << "\tobjectType = " << value.objectType << '\n';
9512	s << "\tobjectHandle = " << value.objectHandle << '\n';
9513	s << "\ttagName = " << value.tagName << '\n';
9514	s << "\ttagSize = " << value.tagSize << '\n';
9515	s << "\tpTag = " << value.pTag << '\n';
9516	s << '}';
9517	return s;
9518}
9519
9520std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9521{
9522	s << "VkDebugUtilsLabelEXT = {\n";
9523	s << "\tsType = " << value.sType << '\n';
9524	s << "\tpNext = " << value.pNext << '\n';
9525	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9526	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9527	s << '}';
9528	return s;
9529}
9530
9531std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9532{
9533	s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9534	s << "\tsType = " << value.sType << '\n';
9535	s << "\tpNext = " << value.pNext << '\n';
9536	s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9537	s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9538	s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9539	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9540	s << "\tpUserData = " << value.pUserData << '\n';
9541	s << '}';
9542	return s;
9543}
9544
9545std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9546{
9547	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9548	s << "\tsType = " << value.sType << '\n';
9549	s << "\tpNext = " << value.pNext << '\n';
9550	s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9551	s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9552	s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9553	s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9554	s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9555	s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9556	s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9557	s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9558	s << "\tobjectCount = " << value.objectCount << '\n';
9559	s << "\tpObjects = " << value.pObjects << '\n';
9560	s << '}';
9561	return s;
9562}
9563
9564std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
9565{
9566	s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
9567	s << "\tsType = " << value.sType << '\n';
9568	s << "\tpNext = " << value.pNext << '\n';
9569	s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
9570	s << '}';
9571	return s;
9572}
9573
9574std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
9575{
9576	s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
9577	s << "\tsType = " << value.sType << '\n';
9578	s << "\tpNext = " << value.pNext << '\n';
9579	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9580	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9581	s << "\tpUserData = " << value.pUserData << '\n';
9582	s << '}';
9583	return s;
9584}
9585
9586std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
9587{
9588	s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
9589	s << "\tsType = " << value.sType << '\n';
9590	s << "\tpNext = " << value.pNext << '\n';
9591	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9592	s << "\ttype = " << value.type << '\n';
9593	s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
9594	s << "\tsize = " << value.size << '\n';
9595	s << "\tobjectType = " << value.objectType << '\n';
9596	s << "\tobjectHandle = " << value.objectHandle << '\n';
9597	s << "\theapIndex = " << value.heapIndex << '\n';
9598	s << '}';
9599	return s;
9600}
9601
9602std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
9603{
9604	s << "VkImportMemoryHostPointerInfoEXT = {\n";
9605	s << "\tsType = " << value.sType << '\n';
9606	s << "\tpNext = " << value.pNext << '\n';
9607	s << "\thandleType = " << value.handleType << '\n';
9608	s << "\tpHostPointer = " << value.pHostPointer << '\n';
9609	s << '}';
9610	return s;
9611}
9612
9613std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
9614{
9615	s << "VkMemoryHostPointerPropertiesEXT = {\n";
9616	s << "\tsType = " << value.sType << '\n';
9617	s << "\tpNext = " << value.pNext << '\n';
9618	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9619	s << '}';
9620	return s;
9621}
9622
9623std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
9624{
9625	s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
9626	s << "\tsType = " << value.sType << '\n';
9627	s << "\tpNext = " << value.pNext << '\n';
9628	s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
9629	s << '}';
9630	return s;
9631}
9632
9633std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
9634{
9635	s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
9636	s << "\tsType = " << value.sType << '\n';
9637	s << "\tpNext = " << value.pNext << '\n';
9638	s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
9639	s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
9640	s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
9641	s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
9642	s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
9643	s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
9644	s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
9645	s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
9646	s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
9647	s << '}';
9648	return s;
9649}
9650
9651std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
9652{
9653	s << "VkCalibratedTimestampInfoEXT = {\n";
9654	s << "\tsType = " << value.sType << '\n';
9655	s << "\tpNext = " << value.pNext << '\n';
9656	s << "\ttimeDomain = " << value.timeDomain << '\n';
9657	s << '}';
9658	return s;
9659}
9660
9661std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
9662{
9663	s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
9664	s << "\tsType = " << value.sType << '\n';
9665	s << "\tpNext = " << value.pNext << '\n';
9666	s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
9667	s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
9668	s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
9669	s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
9670	s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
9671	s << "\twavefrontSize = " << value.wavefrontSize << '\n';
9672	s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
9673	s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
9674	s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
9675	s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
9676	s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
9677	s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
9678	s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
9679	s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
9680	s << '}';
9681	return s;
9682}
9683
9684std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
9685{
9686	s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
9687	s << "\tsType = " << value.sType << '\n';
9688	s << "\tpNext = " << value.pNext << '\n';
9689	s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
9690	s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
9691	s << '}';
9692	return s;
9693}
9694
9695std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
9696{
9697	s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
9698	s << "\tsType = " << value.sType << '\n';
9699	s << "\tpNext = " << value.pNext << '\n';
9700	s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
9701	s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
9702	s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
9703	s << '}';
9704	return s;
9705}
9706
9707std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
9708{
9709	s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
9710	s << "\tsType = " << value.sType << '\n';
9711	s << "\tpNext = " << value.pNext << '\n';
9712	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
9713	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
9714	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
9715	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
9716	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
9717	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
9718	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
9719	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
9720	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
9721	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
9722	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
9723	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
9724	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
9725	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
9726	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
9727	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
9728	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
9729	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
9730	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
9731	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
9732	s << '}';
9733	return s;
9734}
9735
9736std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
9737{
9738	s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
9739	s << "\tsType = " << value.sType << '\n';
9740	s << "\tpNext = " << value.pNext << '\n';
9741	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
9742	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
9743	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
9744	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
9745	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
9746	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
9747	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
9748	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
9749	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
9750	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
9751	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
9752	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
9753	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
9754	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
9755	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
9756	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
9757	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
9758	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
9759	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
9760	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
9761	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
9762	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
9763	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
9764	s << '}';
9765	return s;
9766}
9767
9768std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
9769{
9770	s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
9771	s << "\tsType = " << value.sType << '\n';
9772	s << "\tpNext = " << value.pNext << '\n';
9773	s << "\tbindingCount = " << value.bindingCount << '\n';
9774	s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
9775	s << '}';
9776	return s;
9777}
9778
9779std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
9780{
9781	s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
9782	s << "\tsType = " << value.sType << '\n';
9783	s << "\tpNext = " << value.pNext << '\n';
9784	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
9785	s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
9786	s << '}';
9787	return s;
9788}
9789
9790std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
9791{
9792	s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
9793	s << "\tsType = " << value.sType << '\n';
9794	s << "\tpNext = " << value.pNext << '\n';
9795	s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
9796	s << '}';
9797	return s;
9798}
9799
9800std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
9801{
9802	s << "VkAttachmentDescription2 = {\n";
9803	s << "\tsType = " << value.sType << '\n';
9804	s << "\tpNext = " << value.pNext << '\n';
9805	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
9806	s << "\tformat = " << value.format << '\n';
9807	s << "\tsamples = " << value.samples << '\n';
9808	s << "\tloadOp = " << value.loadOp << '\n';
9809	s << "\tstoreOp = " << value.storeOp << '\n';
9810	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
9811	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
9812	s << "\tinitialLayout = " << value.initialLayout << '\n';
9813	s << "\tfinalLayout = " << value.finalLayout << '\n';
9814	s << '}';
9815	return s;
9816}
9817
9818std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
9819{
9820	s << "VkAttachmentReference2 = {\n";
9821	s << "\tsType = " << value.sType << '\n';
9822	s << "\tpNext = " << value.pNext << '\n';
9823	s << "\tattachment = " << value.attachment << '\n';
9824	s << "\tlayout = " << value.layout << '\n';
9825	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
9826	s << '}';
9827	return s;
9828}
9829
9830std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
9831{
9832	s << "VkSubpassDescription2 = {\n";
9833	s << "\tsType = " << value.sType << '\n';
9834	s << "\tpNext = " << value.pNext << '\n';
9835	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
9836	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
9837	s << "\tviewMask = " << value.viewMask << '\n';
9838	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
9839	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
9840	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
9841	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
9842	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
9843	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
9844	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
9845	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
9846	s << '}';
9847	return s;
9848}
9849
9850std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
9851{
9852	s << "VkSubpassDependency2 = {\n";
9853	s << "\tsType = " << value.sType << '\n';
9854	s << "\tpNext = " << value.pNext << '\n';
9855	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
9856	s << "\tdstSubpass = " << value.dstSubpass << '\n';
9857	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
9858	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
9859	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
9860	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
9861	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
9862	s << "\tviewOffset = " << value.viewOffset << '\n';
9863	s << '}';
9864	return s;
9865}
9866
9867std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
9868{
9869	s << "VkRenderPassCreateInfo2 = {\n";
9870	s << "\tsType = " << value.sType << '\n';
9871	s << "\tpNext = " << value.pNext << '\n';
9872	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
9873	s << "\tattachmentCount = " << value.attachmentCount << '\n';
9874	s << "\tpAttachments = " << value.pAttachments << '\n';
9875	s << "\tsubpassCount = " << value.subpassCount << '\n';
9876	s << "\tpSubpasses = " << value.pSubpasses << '\n';
9877	s << "\tdependencyCount = " << value.dependencyCount << '\n';
9878	s << "\tpDependencies = " << value.pDependencies << '\n';
9879	s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
9880	s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
9881	s << '}';
9882	return s;
9883}
9884
9885std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
9886{
9887	s << "VkSubpassBeginInfo = {\n";
9888	s << "\tsType = " << value.sType << '\n';
9889	s << "\tpNext = " << value.pNext << '\n';
9890	s << "\tcontents = " << value.contents << '\n';
9891	s << '}';
9892	return s;
9893}
9894
9895std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
9896{
9897	s << "VkSubpassEndInfo = {\n";
9898	s << "\tsType = " << value.sType << '\n';
9899	s << "\tpNext = " << value.pNext << '\n';
9900	s << '}';
9901	return s;
9902}
9903
9904std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
9905{
9906	s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
9907	s << "\tsType = " << value.sType << '\n';
9908	s << "\tpNext = " << value.pNext << '\n';
9909	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
9910	s << '}';
9911	return s;
9912}
9913
9914std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
9915{
9916	s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
9917	s << "\tsType = " << value.sType << '\n';
9918	s << "\tpNext = " << value.pNext << '\n';
9919	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
9920	s << '}';
9921	return s;
9922}
9923
9924std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
9925{
9926	s << "VkSemaphoreTypeCreateInfo = {\n";
9927	s << "\tsType = " << value.sType << '\n';
9928	s << "\tpNext = " << value.pNext << '\n';
9929	s << "\tsemaphoreType = " << value.semaphoreType << '\n';
9930	s << "\tinitialValue = " << value.initialValue << '\n';
9931	s << '}';
9932	return s;
9933}
9934
9935std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
9936{
9937	s << "VkTimelineSemaphoreSubmitInfo = {\n";
9938	s << "\tsType = " << value.sType << '\n';
9939	s << "\tpNext = " << value.pNext << '\n';
9940	s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
9941	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
9942	s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
9943	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
9944	s << '}';
9945	return s;
9946}
9947
9948std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
9949{
9950	s << "VkSemaphoreWaitInfo = {\n";
9951	s << "\tsType = " << value.sType << '\n';
9952	s << "\tpNext = " << value.pNext << '\n';
9953	s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
9954	s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
9955	s << "\tpSemaphores = " << value.pSemaphores << '\n';
9956	s << "\tpValues = " << value.pValues << '\n';
9957	s << '}';
9958	return s;
9959}
9960
9961std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
9962{
9963	s << "VkSemaphoreSignalInfo = {\n";
9964	s << "\tsType = " << value.sType << '\n';
9965	s << "\tpNext = " << value.pNext << '\n';
9966	s << "\tsemaphore = " << value.semaphore << '\n';
9967	s << "\tvalue = " << value.value << '\n';
9968	s << '}';
9969	return s;
9970}
9971
9972std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
9973{
9974	s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
9975	s << "\tbinding = " << value.binding << '\n';
9976	s << "\tdivisor = " << value.divisor << '\n';
9977	s << '}';
9978	return s;
9979}
9980
9981std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
9982{
9983	s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
9984	s << "\tsType = " << value.sType << '\n';
9985	s << "\tpNext = " << value.pNext << '\n';
9986	s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
9987	s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
9988	s << '}';
9989	return s;
9990}
9991
9992std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
9993{
9994	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
9995	s << "\tsType = " << value.sType << '\n';
9996	s << "\tpNext = " << value.pNext << '\n';
9997	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
9998	s << '}';
9999	return s;
10000}
10001
10002std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
10003{
10004	s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
10005	s << "\tsType = " << value.sType << '\n';
10006	s << "\tpNext = " << value.pNext << '\n';
10007	s << "\tpciDomain = " << value.pciDomain << '\n';
10008	s << "\tpciBus = " << value.pciBus << '\n';
10009	s << "\tpciDevice = " << value.pciDevice << '\n';
10010	s << "\tpciFunction = " << value.pciFunction << '\n';
10011	s << '}';
10012	return s;
10013}
10014
10015std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
10016{
10017	s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
10018	s << "\tsType = " << value.sType << '\n';
10019	s << "\tpNext = " << value.pNext << '\n';
10020	s << "\tbuffer = " << value.buffer << '\n';
10021	s << '}';
10022	return s;
10023}
10024
10025std::ostream& operator<< (std::ostream& s, const VkImportOHOSNativeBufferInfoOpenHarmony& value)
10026{
10027	s << "VkImportOHOSNativeBufferInfoOpenHarmony = {\n";
10028	s << "\tsType = " << value.sType << '\n';
10029	s << "\tpNext = " << value.pNext << '\n';
10030	s << "\tbuffer = " << value.buffer << '\n';
10031	s << '}';
10032	return s;
10033}
10034
10035std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
10036{
10037	s << "VkAndroidHardwareBufferUsageANDROID = {\n";
10038	s << "\tsType = " << value.sType << '\n';
10039	s << "\tpNext = " << value.pNext << '\n';
10040	s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
10041	s << '}';
10042	return s;
10043}
10044
10045std::ostream& operator<< (std::ostream& s, const VkOHOSNativeBufferUsageOpenHarmony& value)
10046{
10047	s << "VkOHOSNativeBufferUsageOpenHarmony = {\n";
10048	s << "\tsType = " << value.sType << '\n';
10049	s << "\tpNext = " << value.pNext << '\n';
10050	s << "\tOHOSNativeBufferUsage = " << value.OHOSNativeBufferUsage << '\n';
10051	s << '}';
10052	return s;
10053}
10054
10055std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
10056{
10057	s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
10058	s << "\tsType = " << value.sType << '\n';
10059	s << "\tpNext = " << value.pNext << '\n';
10060	s << "\tallocationSize = " << value.allocationSize << '\n';
10061	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10062	s << '}';
10063	return s;
10064}
10065
10066std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
10067{
10068	s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
10069	s << "\tsType = " << value.sType << '\n';
10070	s << "\tpNext = " << value.pNext << '\n';
10071	s << "\tmemory = " << value.memory << '\n';
10072	s << '}';
10073	return s;
10074}
10075
10076std::ostream& operator<< (std::ostream& s, const VkMemoryGetOHOSNativeBufferInfoOpenHarmony& value)
10077{
10078	s << "VkMemoryGetOHOSNativeBufferInfoOpenHarmony = {\n";
10079	s << "\tsType = " << value.sType << '\n';
10080	s << "\tpNext = " << value.pNext << '\n';
10081	s << "\tmemory = " << value.memory << '\n';
10082	s << '}';
10083	return s;
10084}
10085
10086std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
10087{
10088	s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
10089	s << "\tsType = " << value.sType << '\n';
10090	s << "\tpNext = " << value.pNext << '\n';
10091	s << "\tformat = " << value.format << '\n';
10092	s << "\texternalFormat = " << value.externalFormat << '\n';
10093	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
10094	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
10095	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
10096	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
10097	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
10098	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
10099	s << '}';
10100	return s;
10101}
10102
10103std::ostream& operator<< (std::ostream& s, const VkOHOSNativeBufferFormatPropertiesOpenHarmony& value)
10104{
10105	s << "VkOHOSNativeBufferFormatPropertiesOpenHarmony = {\n";
10106	s << "\tsType = " << value.sType << '\n';
10107	s << "\tpNext = " << value.pNext << '\n';
10108	s << "\tformat = " << value.format << '\n';
10109	s << "\texternalFormat = " << value.externalFormat << '\n';
10110	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
10111	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
10112	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
10113	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
10114	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
10115	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
10116	s << '}';
10117	return s;
10118}
10119
10120std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
10121{
10122	s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
10123	s << "\tsType = " << value.sType << '\n';
10124	s << "\tpNext = " << value.pNext << '\n';
10125	s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
10126	s << '}';
10127	return s;
10128}
10129
10130std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
10131{
10132	s << "VkExternalFormatANDROID = {\n";
10133	s << "\tsType = " << value.sType << '\n';
10134	s << "\tpNext = " << value.pNext << '\n';
10135	s << "\texternalFormat = " << value.externalFormat << '\n';
10136	s << '}';
10137	return s;
10138}
10139
10140std::ostream& operator<< (std::ostream& s, const VkExternalFormatOpenHarmony& value)
10141{
10142	s << "VkExternalFormatOpenHarmony = {\n";
10143	s << "\tsType = " << value.sType << '\n';
10144	s << "\tpNext = " << value.pNext << '\n';
10145	s << "\texternalFormat = " << value.externalFormat << '\n';
10146	s << '}';
10147	return s;
10148}
10149
10150std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
10151{
10152	s << "VkPhysicalDevice8BitStorageFeatures = {\n";
10153	s << "\tsType = " << value.sType << '\n';
10154	s << "\tpNext = " << value.pNext << '\n';
10155	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
10156	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
10157	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
10158	s << '}';
10159	return s;
10160}
10161
10162std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
10163{
10164	s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
10165	s << "\tsType = " << value.sType << '\n';
10166	s << "\tpNext = " << value.pNext << '\n';
10167	s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
10168	s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
10169	s << '}';
10170	return s;
10171}
10172
10173std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
10174{
10175	s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
10176	s << "\tsType = " << value.sType << '\n';
10177	s << "\tpNext = " << value.pNext << '\n';
10178	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
10179	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
10180	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
10181	s << '}';
10182	return s;
10183}
10184
10185std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
10186{
10187	s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
10188	s << "\tsType = " << value.sType << '\n';
10189	s << "\tpNext = " << value.pNext << '\n';
10190	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
10191	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
10192	s << '}';
10193	return s;
10194}
10195
10196std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
10197{
10198	s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
10199	s << "\tsType = " << value.sType << '\n';
10200	s << "\tpNext = " << value.pNext << '\n';
10201	s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
10202	s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
10203	s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
10204	s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
10205	s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
10206	s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
10207	s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
10208	s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
10209	s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
10210	s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
10211	s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
10212	s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
10213	s << '}';
10214	return s;
10215}
10216
10217std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
10218{
10219	s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
10220	s << "\tsType = " << value.sType << '\n';
10221	s << "\tpNext = " << value.pNext << '\n';
10222	s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
10223	s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
10224	s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
10225	s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
10226	s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
10227	s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
10228	s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
10229	s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
10230	s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
10231	s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
10232	s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
10233	s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
10234	s << '}';
10235	return s;
10236}
10237
10238std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
10239{
10240	s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
10241	s << "\tsType = " << value.sType << '\n';
10242	s << "\tpNext = " << value.pNext << '\n';
10243	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
10244	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
10245	s << '}';
10246	return s;
10247}
10248
10249std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
10250{
10251	s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
10252	s << "\tsType = " << value.sType << '\n';
10253	s << "\tpNext = " << value.pNext << '\n';
10254	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
10255	s << '}';
10256	return s;
10257}
10258
10259std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
10260{
10261	s << "VkCheckpointDataNV = {\n";
10262	s << "\tsType = " << value.sType << '\n';
10263	s << "\tpNext = " << value.pNext << '\n';
10264	s << "\tstage = " << value.stage << '\n';
10265	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
10266	s << '}';
10267	return s;
10268}
10269
10270std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
10271{
10272	s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
10273	s << "\tsType = " << value.sType << '\n';
10274	s << "\tpNext = " << value.pNext << '\n';
10275	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
10276	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
10277	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
10278	s << "\tindependentResolve = " << value.independentResolve << '\n';
10279	s << '}';
10280	return s;
10281}
10282
10283std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
10284{
10285	s << "VkSubpassDescriptionDepthStencilResolve = {\n";
10286	s << "\tsType = " << value.sType << '\n';
10287	s << "\tpNext = " << value.pNext << '\n';
10288	s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
10289	s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
10290	s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
10291	s << '}';
10292	return s;
10293}
10294
10295std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
10296{
10297	s << "VkImageViewASTCDecodeModeEXT = {\n";
10298	s << "\tsType = " << value.sType << '\n';
10299	s << "\tpNext = " << value.pNext << '\n';
10300	s << "\tdecodeMode = " << value.decodeMode << '\n';
10301	s << '}';
10302	return s;
10303}
10304
10305std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
10306{
10307	s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
10308	s << "\tsType = " << value.sType << '\n';
10309	s << "\tpNext = " << value.pNext << '\n';
10310	s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
10311	s << '}';
10312	return s;
10313}
10314
10315std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
10316{
10317	s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
10318	s << "\tsType = " << value.sType << '\n';
10319	s << "\tpNext = " << value.pNext << '\n';
10320	s << "\ttransformFeedback = " << value.transformFeedback << '\n';
10321	s << "\tgeometryStreams = " << value.geometryStreams << '\n';
10322	s << '}';
10323	return s;
10324}
10325
10326std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
10327{
10328	s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
10329	s << "\tsType = " << value.sType << '\n';
10330	s << "\tpNext = " << value.pNext << '\n';
10331	s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
10332	s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
10333	s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
10334	s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
10335	s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
10336	s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
10337	s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
10338	s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
10339	s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
10340	s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
10341	s << '}';
10342	return s;
10343}
10344
10345std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
10346{
10347	s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
10348	s << "\tsType = " << value.sType << '\n';
10349	s << "\tpNext = " << value.pNext << '\n';
10350	s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
10351	s << "\trasterizationStream = " << value.rasterizationStream << '\n';
10352	s << '}';
10353	return s;
10354}
10355
10356std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
10357{
10358	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
10359	s << "\tsType = " << value.sType << '\n';
10360	s << "\tpNext = " << value.pNext << '\n';
10361	s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
10362	s << '}';
10363	return s;
10364}
10365
10366std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
10367{
10368	s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
10369	s << "\tsType = " << value.sType << '\n';
10370	s << "\tpNext = " << value.pNext << '\n';
10371	s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
10372	s << '}';
10373	return s;
10374}
10375
10376std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
10377{
10378	s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
10379	s << "\tsType = " << value.sType << '\n';
10380	s << "\tpNext = " << value.pNext << '\n';
10381	s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
10382	s << '}';
10383	return s;
10384}
10385
10386std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
10387{
10388	s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
10389	s << "\tsType = " << value.sType << '\n';
10390	s << "\tpNext = " << value.pNext << '\n';
10391	s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
10392	s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
10393	s << '}';
10394	return s;
10395}
10396
10397std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
10398{
10399	s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
10400	s << "\tsType = " << value.sType << '\n';
10401	s << "\tpNext = " << value.pNext << '\n';
10402	s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
10403	s << '}';
10404	return s;
10405}
10406
10407std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10408{
10409	s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10410	s << "\tsType = " << value.sType << '\n';
10411	s << "\tpNext = " << value.pNext << '\n';
10412	s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10413	s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10414	s << '}';
10415	return s;
10416}
10417
10418std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
10419{
10420	s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
10421	s << "\tsType = " << value.sType << '\n';
10422	s << "\tpNext = " << value.pNext << '\n';
10423	s << "\timageFootprint = " << value.imageFootprint << '\n';
10424	s << '}';
10425	return s;
10426}
10427
10428std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
10429{
10430	s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
10431	s << "\tsType = " << value.sType << '\n';
10432	s << "\tpNext = " << value.pNext << '\n';
10433	s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
10434	s << '}';
10435	return s;
10436}
10437
10438std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV& value)
10439{
10440	s << "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV = {\n";
10441	s << "\tsType = " << value.sType << '\n';
10442	s << "\tpNext = " << value.pNext << '\n';
10443	s << "\tindirectCopy = " << value.indirectCopy << '\n';
10444	s << '}';
10445	return s;
10446}
10447
10448std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV& value)
10449{
10450	s << "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV = {\n";
10451	s << "\tsType = " << value.sType << '\n';
10452	s << "\tpNext = " << value.pNext << '\n';
10453	s << "\tsupportedQueues = " << getQueueFlagsStr(value.supportedQueues) << '\n';
10454	s << '}';
10455	return s;
10456}
10457
10458std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionFeaturesNV& value)
10459{
10460	s << "VkPhysicalDeviceMemoryDecompressionFeaturesNV = {\n";
10461	s << "\tsType = " << value.sType << '\n';
10462	s << "\tpNext = " << value.pNext << '\n';
10463	s << "\tmemoryDecompression = " << value.memoryDecompression << '\n';
10464	s << '}';
10465	return s;
10466}
10467
10468std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionPropertiesNV& value)
10469{
10470	s << "VkPhysicalDeviceMemoryDecompressionPropertiesNV = {\n";
10471	s << "\tsType = " << value.sType << '\n';
10472	s << "\tpNext = " << value.pNext << '\n';
10473	s << "\tdecompressionMethods = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethods) << '\n';
10474	s << "\tmaxDecompressionIndirectCount = " << value.maxDecompressionIndirectCount << '\n';
10475	s << '}';
10476	return s;
10477}
10478
10479std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
10480{
10481	s << "VkShadingRatePaletteNV = {\n";
10482	s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
10483	s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
10484	s << '}';
10485	return s;
10486}
10487
10488std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
10489{
10490	s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
10491	s << "\tsType = " << value.sType << '\n';
10492	s << "\tpNext = " << value.pNext << '\n';
10493	s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
10494	s << "\tviewportCount = " << value.viewportCount << '\n';
10495	s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
10496	s << '}';
10497	return s;
10498}
10499
10500std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
10501{
10502	s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
10503	s << "\tsType = " << value.sType << '\n';
10504	s << "\tpNext = " << value.pNext << '\n';
10505	s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
10506	s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
10507	s << '}';
10508	return s;
10509}
10510
10511std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
10512{
10513	s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
10514	s << "\tsType = " << value.sType << '\n';
10515	s << "\tpNext = " << value.pNext << '\n';
10516	s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
10517	s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
10518	s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
10519	s << '}';
10520	return s;
10521}
10522
10523std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
10524{
10525	s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
10526	s << "\tsType = " << value.sType << '\n';
10527	s << "\tpNext = " << value.pNext << '\n';
10528	s << "\tinvocationMask = " << value.invocationMask << '\n';
10529	s << '}';
10530	return s;
10531}
10532
10533std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
10534{
10535	s << "VkCoarseSampleLocationNV = {\n";
10536	s << "\tpixelX = " << value.pixelX << '\n';
10537	s << "\tpixelY = " << value.pixelY << '\n';
10538	s << "\tsample = " << value.sample << '\n';
10539	s << '}';
10540	return s;
10541}
10542
10543std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
10544{
10545	s << "VkCoarseSampleOrderCustomNV = {\n";
10546	s << "\tshadingRate = " << value.shadingRate << '\n';
10547	s << "\tsampleCount = " << value.sampleCount << '\n';
10548	s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
10549	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10550	s << '}';
10551	return s;
10552}
10553
10554std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
10555{
10556	s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
10557	s << "\tsType = " << value.sType << '\n';
10558	s << "\tpNext = " << value.pNext << '\n';
10559	s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
10560	s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
10561	s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
10562	s << '}';
10563	return s;
10564}
10565
10566std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
10567{
10568	s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
10569	s << "\tsType = " << value.sType << '\n';
10570	s << "\tpNext = " << value.pNext << '\n';
10571	s << "\ttaskShader = " << value.taskShader << '\n';
10572	s << "\tmeshShader = " << value.meshShader << '\n';
10573	s << '}';
10574	return s;
10575}
10576
10577std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
10578{
10579	s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
10580	s << "\tsType = " << value.sType << '\n';
10581	s << "\tpNext = " << value.pNext << '\n';
10582	s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
10583	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10584	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10585	s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
10586	s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
10587	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10588	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10589	s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
10590	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10591	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10592	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10593	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10594	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10595	s << '}';
10596	return s;
10597}
10598
10599std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
10600{
10601	s << "VkDrawMeshTasksIndirectCommandNV = {\n";
10602	s << "\ttaskCount = " << value.taskCount << '\n';
10603	s << "\tfirstTask = " << value.firstTask << '\n';
10604	s << '}';
10605	return s;
10606}
10607
10608std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesEXT& value)
10609{
10610	s << "VkPhysicalDeviceMeshShaderFeaturesEXT = {\n";
10611	s << "\tsType = " << value.sType << '\n';
10612	s << "\tpNext = " << value.pNext << '\n';
10613	s << "\ttaskShader = " << value.taskShader << '\n';
10614	s << "\tmeshShader = " << value.meshShader << '\n';
10615	s << "\tmultiviewMeshShader = " << value.multiviewMeshShader << '\n';
10616	s << "\tprimitiveFragmentShadingRateMeshShader = " << value.primitiveFragmentShadingRateMeshShader << '\n';
10617	s << "\tmeshShaderQueries = " << value.meshShaderQueries << '\n';
10618	s << '}';
10619	return s;
10620}
10621
10622std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesEXT& value)
10623{
10624	s << "VkPhysicalDeviceMeshShaderPropertiesEXT = {\n";
10625	s << "\tsType = " << value.sType << '\n';
10626	s << "\tpNext = " << value.pNext << '\n';
10627	s << "\tmaxTaskWorkGroupTotalCount = " << value.maxTaskWorkGroupTotalCount << '\n';
10628	s << "\tmaxTaskWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupCount), DE_ARRAY_END(value.maxTaskWorkGroupCount)) << '\n';
10629	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10630	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10631	s << "\tmaxTaskPayloadSize = " << value.maxTaskPayloadSize << '\n';
10632	s << "\tmaxTaskSharedMemorySize = " << value.maxTaskSharedMemorySize << '\n';
10633	s << "\tmaxTaskPayloadAndSharedMemorySize = " << value.maxTaskPayloadAndSharedMemorySize << '\n';
10634	s << "\tmaxMeshWorkGroupTotalCount = " << value.maxMeshWorkGroupTotalCount << '\n';
10635	s << "\tmaxMeshWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupCount), DE_ARRAY_END(value.maxMeshWorkGroupCount)) << '\n';
10636	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10637	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10638	s << "\tmaxMeshSharedMemorySize = " << value.maxMeshSharedMemorySize << '\n';
10639	s << "\tmaxMeshPayloadAndSharedMemorySize = " << value.maxMeshPayloadAndSharedMemorySize << '\n';
10640	s << "\tmaxMeshOutputMemorySize = " << value.maxMeshOutputMemorySize << '\n';
10641	s << "\tmaxMeshPayloadAndOutputMemorySize = " << value.maxMeshPayloadAndOutputMemorySize << '\n';
10642	s << "\tmaxMeshOutputComponents = " << value.maxMeshOutputComponents << '\n';
10643	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10644	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10645	s << "\tmaxMeshOutputLayers = " << value.maxMeshOutputLayers << '\n';
10646	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10647	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10648	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10649	s << "\tmaxPreferredTaskWorkGroupInvocations = " << value.maxPreferredTaskWorkGroupInvocations << '\n';
10650	s << "\tmaxPreferredMeshWorkGroupInvocations = " << value.maxPreferredMeshWorkGroupInvocations << '\n';
10651	s << "\tprefersLocalInvocationVertexOutput = " << value.prefersLocalInvocationVertexOutput << '\n';
10652	s << "\tprefersLocalInvocationPrimitiveOutput = " << value.prefersLocalInvocationPrimitiveOutput << '\n';
10653	s << "\tprefersCompactVertexOutput = " << value.prefersCompactVertexOutput << '\n';
10654	s << "\tprefersCompactPrimitiveOutput = " << value.prefersCompactPrimitiveOutput << '\n';
10655	s << '}';
10656	return s;
10657}
10658
10659std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandEXT& value)
10660{
10661	s << "VkDrawMeshTasksIndirectCommandEXT = {\n";
10662	s << "\tgroupCountX = " << value.groupCountX << '\n';
10663	s << "\tgroupCountY = " << value.groupCountY << '\n';
10664	s << "\tgroupCountZ = " << value.groupCountZ << '\n';
10665	s << '}';
10666	return s;
10667}
10668
10669std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
10670{
10671	s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
10672	s << "\tsType = " << value.sType << '\n';
10673	s << "\tpNext = " << value.pNext << '\n';
10674	s << "\ttype = " << value.type << '\n';
10675	s << "\tgeneralShader = " << value.generalShader << '\n';
10676	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10677	s << "\tanyHitShader = " << value.anyHitShader << '\n';
10678	s << "\tintersectionShader = " << value.intersectionShader << '\n';
10679	s << '}';
10680	return s;
10681}
10682
10683std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
10684{
10685	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
10686	s << "\tsType = " << value.sType << '\n';
10687	s << "\tpNext = " << value.pNext << '\n';
10688	s << "\ttype = " << value.type << '\n';
10689	s << "\tgeneralShader = " << value.generalShader << '\n';
10690	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10691	s << "\tanyHitShader = " << value.anyHitShader << '\n';
10692	s << "\tintersectionShader = " << value.intersectionShader << '\n';
10693	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
10694	s << '}';
10695	return s;
10696}
10697
10698std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
10699{
10700	s << "VkRayTracingPipelineCreateInfoNV = {\n";
10701	s << "\tsType = " << value.sType << '\n';
10702	s << "\tpNext = " << value.pNext << '\n';
10703	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10704	s << "\tstageCount = " << value.stageCount << '\n';
10705	s << "\tpStages = " << value.pStages << '\n';
10706	s << "\tgroupCount = " << value.groupCount << '\n';
10707	s << "\tpGroups = " << value.pGroups << '\n';
10708	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10709	s << "\tlayout = " << value.layout << '\n';
10710	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10711	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10712	s << '}';
10713	return s;
10714}
10715
10716std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
10717{
10718	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
10719	s << "\tsType = " << value.sType << '\n';
10720	s << "\tpNext = " << value.pNext << '\n';
10721	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10722	s << "\tstageCount = " << value.stageCount << '\n';
10723	s << "\tpStages = " << value.pStages << '\n';
10724	s << "\tgroupCount = " << value.groupCount << '\n';
10725	s << "\tpGroups = " << value.pGroups << '\n';
10726	s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
10727	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
10728	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
10729	s << "\tpDynamicState = " << value.pDynamicState << '\n';
10730	s << "\tlayout = " << value.layout << '\n';
10731	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10732	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10733	s << '}';
10734	return s;
10735}
10736
10737std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
10738{
10739	s << "VkGeometryTrianglesNV = {\n";
10740	s << "\tsType = " << value.sType << '\n';
10741	s << "\tpNext = " << value.pNext << '\n';
10742	s << "\tvertexData = " << value.vertexData << '\n';
10743	s << "\tvertexOffset = " << value.vertexOffset << '\n';
10744	s << "\tvertexCount = " << value.vertexCount << '\n';
10745	s << "\tvertexStride = " << value.vertexStride << '\n';
10746	s << "\tvertexFormat = " << value.vertexFormat << '\n';
10747	s << "\tindexData = " << value.indexData << '\n';
10748	s << "\tindexOffset = " << value.indexOffset << '\n';
10749	s << "\tindexCount = " << value.indexCount << '\n';
10750	s << "\tindexType = " << value.indexType << '\n';
10751	s << "\ttransformData = " << value.transformData << '\n';
10752	s << "\ttransformOffset = " << value.transformOffset << '\n';
10753	s << '}';
10754	return s;
10755}
10756
10757std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
10758{
10759	s << "VkGeometryAABBNV = {\n";
10760	s << "\tsType = " << value.sType << '\n';
10761	s << "\tpNext = " << value.pNext << '\n';
10762	s << "\taabbData = " << value.aabbData << '\n';
10763	s << "\tnumAABBs = " << value.numAABBs << '\n';
10764	s << "\tstride = " << value.stride << '\n';
10765	s << "\toffset = " << value.offset << '\n';
10766	s << '}';
10767	return s;
10768}
10769
10770std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
10771{
10772	s << "VkGeometryDataNV = {\n";
10773	s << "\ttriangles = " << value.triangles << '\n';
10774	s << "\taabbs = " << value.aabbs << '\n';
10775	s << '}';
10776	return s;
10777}
10778
10779std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
10780{
10781	s << "VkGeometryNV = {\n";
10782	s << "\tsType = " << value.sType << '\n';
10783	s << "\tpNext = " << value.pNext << '\n';
10784	s << "\tgeometryType = " << value.geometryType << '\n';
10785	s << "\tgeometry = " << value.geometry << '\n';
10786	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
10787	s << '}';
10788	return s;
10789}
10790
10791std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
10792{
10793	s << "VkAccelerationStructureInfoNV = {\n";
10794	s << "\tsType = " << value.sType << '\n';
10795	s << "\tpNext = " << value.pNext << '\n';
10796	s << "\ttype = " << value.type << '\n';
10797	s << "\tflags = " << value.flags << '\n';
10798	s << "\tinstanceCount = " << value.instanceCount << '\n';
10799	s << "\tgeometryCount = " << value.geometryCount << '\n';
10800	s << "\tpGeometries = " << value.pGeometries << '\n';
10801	s << '}';
10802	return s;
10803}
10804
10805std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
10806{
10807	s << "VkAccelerationStructureCreateInfoNV = {\n";
10808	s << "\tsType = " << value.sType << '\n';
10809	s << "\tpNext = " << value.pNext << '\n';
10810	s << "\tcompactedSize = " << value.compactedSize << '\n';
10811	s << "\tinfo = " << value.info << '\n';
10812	s << '}';
10813	return s;
10814}
10815
10816std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
10817{
10818	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
10819	s << "\tsType = " << value.sType << '\n';
10820	s << "\tpNext = " << value.pNext << '\n';
10821	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10822	s << "\tmemory = " << value.memory << '\n';
10823	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
10824	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
10825	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
10826	s << '}';
10827	return s;
10828}
10829
10830std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
10831{
10832	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
10833	s << "\tsType = " << value.sType << '\n';
10834	s << "\tpNext = " << value.pNext << '\n';
10835	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10836	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10837	s << '}';
10838	return s;
10839}
10840
10841std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
10842{
10843	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
10844	s << "\tsType = " << value.sType << '\n';
10845	s << "\tpNext = " << value.pNext << '\n';
10846	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10847	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10848	s << '}';
10849	return s;
10850}
10851
10852std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
10853{
10854	s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
10855	s << "\tsType = " << value.sType << '\n';
10856	s << "\tpNext = " << value.pNext << '\n';
10857	s << "\ttype = " << value.type << '\n';
10858	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10859	s << '}';
10860	return s;
10861}
10862
10863std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
10864{
10865	s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
10866	s << "\tsType = " << value.sType << '\n';
10867	s << "\tpNext = " << value.pNext << '\n';
10868	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10869	s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
10870	s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
10871	s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
10872	s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
10873	s << '}';
10874	return s;
10875}
10876
10877std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
10878{
10879	s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
10880	s << "\tsType = " << value.sType << '\n';
10881	s << "\tpNext = " << value.pNext << '\n';
10882	s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
10883	s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
10884	s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
10885	s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
10886	s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
10887	s << '}';
10888	return s;
10889}
10890
10891std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
10892{
10893	s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
10894	s << "\tsType = " << value.sType << '\n';
10895	s << "\tpNext = " << value.pNext << '\n';
10896	s << "\trayQuery = " << value.rayQuery << '\n';
10897	s << '}';
10898	return s;
10899}
10900
10901std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
10902{
10903	s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
10904	s << "\tsType = " << value.sType << '\n';
10905	s << "\tpNext = " << value.pNext << '\n';
10906	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10907	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10908	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
10909	s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
10910	s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
10911	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10912	s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
10913	s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
10914	s << '}';
10915	return s;
10916}
10917
10918std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
10919{
10920	s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
10921	s << "\tsType = " << value.sType << '\n';
10922	s << "\tpNext = " << value.pNext << '\n';
10923	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10924	s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
10925	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10926	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10927	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
10928	s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
10929	s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
10930	s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
10931	s << '}';
10932	return s;
10933}
10934
10935std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
10936{
10937	s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
10938	s << "\tsType = " << value.sType << '\n';
10939	s << "\tpNext = " << value.pNext << '\n';
10940	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10941	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10942	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10943	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10944	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10945	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10946	s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
10947	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10948	s << '}';
10949	return s;
10950}
10951
10952std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
10953{
10954	s << "VkStridedDeviceAddressRegionKHR = {\n";
10955	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10956	s << "\tstride = " << value.stride << '\n';
10957	s << "\tsize = " << value.size << '\n';
10958	s << '}';
10959	return s;
10960}
10961
10962std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
10963{
10964	s << "VkTraceRaysIndirectCommandKHR = {\n";
10965	s << "\twidth = " << value.width << '\n';
10966	s << "\theight = " << value.height << '\n';
10967	s << "\tdepth = " << value.depth << '\n';
10968	s << '}';
10969	return s;
10970}
10971
10972std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
10973{
10974	s << "VkTraceRaysIndirectCommand2KHR = {\n";
10975	s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
10976	s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
10977	s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
10978	s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
10979	s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
10980	s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
10981	s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
10982	s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
10983	s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
10984	s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
10985	s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
10986	s << "\twidth = " << value.width << '\n';
10987	s << "\theight = " << value.height << '\n';
10988	s << "\tdepth = " << value.depth << '\n';
10989	s << '}';
10990	return s;
10991}
10992
10993std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
10994{
10995	s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
10996	s << "\tsType = " << value.sType << '\n';
10997	s << "\tpNext = " << value.pNext << '\n';
10998	s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
10999	s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
11000	s << '}';
11001	return s;
11002}
11003
11004std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
11005{
11006	s << "VkDrmFormatModifierPropertiesListEXT = {\n";
11007	s << "\tsType = " << value.sType << '\n';
11008	s << "\tpNext = " << value.pNext << '\n';
11009	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
11010	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
11011	s << '}';
11012	return s;
11013}
11014
11015std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
11016{
11017	s << "VkDrmFormatModifierPropertiesEXT = {\n";
11018	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11019	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
11020	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
11021	s << '}';
11022	return s;
11023}
11024
11025std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
11026{
11027	s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
11028	s << "\tsType = " << value.sType << '\n';
11029	s << "\tpNext = " << value.pNext << '\n';
11030	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11031	s << "\tsharingMode = " << value.sharingMode << '\n';
11032	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
11033	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
11034	s << '}';
11035	return s;
11036}
11037
11038std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
11039{
11040	s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
11041	s << "\tsType = " << value.sType << '\n';
11042	s << "\tpNext = " << value.pNext << '\n';
11043	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
11044	s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
11045	s << '}';
11046	return s;
11047}
11048
11049std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
11050{
11051	s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
11052	s << "\tsType = " << value.sType << '\n';
11053	s << "\tpNext = " << value.pNext << '\n';
11054	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11055	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
11056	s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
11057	s << '}';
11058	return s;
11059}
11060
11061std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
11062{
11063	s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
11064	s << "\tsType = " << value.sType << '\n';
11065	s << "\tpNext = " << value.pNext << '\n';
11066	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
11067	s << '}';
11068	return s;
11069}
11070
11071std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
11072{
11073	s << "VkImageStencilUsageCreateInfo = {\n";
11074	s << "\tsType = " << value.sType << '\n';
11075	s << "\tpNext = " << value.pNext << '\n';
11076	s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
11077	s << '}';
11078	return s;
11079}
11080
11081std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
11082{
11083	s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
11084	s << "\tsType = " << value.sType << '\n';
11085	s << "\tpNext = " << value.pNext << '\n';
11086	s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
11087	s << '}';
11088	return s;
11089}
11090
11091std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
11092{
11093	s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
11094	s << "\tsType = " << value.sType << '\n';
11095	s << "\tpNext = " << value.pNext << '\n';
11096	s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
11097	s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
11098	s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
11099	s << '}';
11100	return s;
11101}
11102
11103std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
11104{
11105	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
11106	s << "\tsType = " << value.sType << '\n';
11107	s << "\tpNext = " << value.pNext << '\n';
11108	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
11109	s << '}';
11110	return s;
11111}
11112
11113std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
11114{
11115	s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
11116	s << "\tsType = " << value.sType << '\n';
11117	s << "\tpNext = " << value.pNext << '\n';
11118	s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
11119	s << '}';
11120	return s;
11121}
11122
11123std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
11124{
11125	s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
11126	s << "\tsType = " << value.sType << '\n';
11127	s << "\tpNext = " << value.pNext << '\n';
11128	s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
11129	s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
11130	s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
11131	s << '}';
11132	return s;
11133}
11134
11135std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
11136{
11137	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
11138	s << "\tsType = " << value.sType << '\n';
11139	s << "\tpNext = " << value.pNext << '\n';
11140	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
11141	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
11142	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
11143	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
11144	s << '}';
11145	return s;
11146}
11147
11148std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
11149{
11150	s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
11151	s << "\tsType = " << value.sType << '\n';
11152	s << "\tpNext = " << value.pNext << '\n';
11153	s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
11154	s << '}';
11155	return s;
11156}
11157
11158std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
11159{
11160	s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
11161	s << "\tsType = " << value.sType << '\n';
11162	s << "\tpNext = " << value.pNext << '\n';
11163	s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
11164	s << '}';
11165	return s;
11166}
11167
11168std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
11169{
11170	s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
11171	s << "\tsType = " << value.sType << '\n';
11172	s << "\tpNext = " << value.pNext << '\n';
11173	s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
11174	s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
11175	s << '}';
11176	return s;
11177}
11178
11179std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
11180{
11181	s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
11182	s << "\tsType = " << value.sType << '\n';
11183	s << "\tpNext = " << value.pNext << '\n';
11184	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
11185	s << '}';
11186	return s;
11187}
11188
11189std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
11190{
11191	s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
11192	s << "\tsType = " << value.sType << '\n';
11193	s << "\tpNext = " << value.pNext << '\n';
11194	s << "\tsupportsProtected = " << value.supportsProtected << '\n';
11195	s << '}';
11196	return s;
11197}
11198
11199std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
11200{
11201	s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
11202	s << "\tsType = " << value.sType << '\n';
11203	s << "\tpNext = " << value.pNext << '\n';
11204	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
11205	s << '}';
11206	return s;
11207}
11208
11209std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
11210{
11211	s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
11212	s << "\tsType = " << value.sType << '\n';
11213	s << "\tpNext = " << value.pNext << '\n';
11214	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
11215	s << '}';
11216	return s;
11217}
11218
11219std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
11220{
11221	s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
11222	s << "\tsType = " << value.sType << '\n';
11223	s << "\tpNext = " << value.pNext << '\n';
11224	s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
11225	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
11226	s << '}';
11227	return s;
11228}
11229
11230std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
11231{
11232	s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
11233	s << "\tsType = " << value.sType << '\n';
11234	s << "\tpNext = " << value.pNext << '\n';
11235	s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
11236	s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
11237	s << '}';
11238	return s;
11239}
11240
11241std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
11242{
11243	s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
11244	s << "\tsType = " << value.sType << '\n';
11245	s << "\tpNext = " << value.pNext << '\n';
11246	s << "\tmemoryPriority = " << value.memoryPriority << '\n';
11247	s << '}';
11248	return s;
11249}
11250
11251std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
11252{
11253	s << "VkMemoryPriorityAllocateInfoEXT = {\n";
11254	s << "\tsType = " << value.sType << '\n';
11255	s << "\tpNext = " << value.pNext << '\n';
11256	s << "\tpriority = " << value.priority << '\n';
11257	s << '}';
11258	return s;
11259}
11260
11261std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
11262{
11263	s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
11264	s << "\tsType = " << value.sType << '\n';
11265	s << "\tpNext = " << value.pNext << '\n';
11266	s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
11267	s << '}';
11268	return s;
11269}
11270
11271std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
11272{
11273	s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
11274	s << "\tsType = " << value.sType << '\n';
11275	s << "\tpNext = " << value.pNext << '\n';
11276	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11277	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11278	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11279	s << '}';
11280	return s;
11281}
11282
11283std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
11284{
11285	s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
11286	s << "\tsType = " << value.sType << '\n';
11287	s << "\tpNext = " << value.pNext << '\n';
11288	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11289	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11290	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11291	s << '}';
11292	return s;
11293}
11294
11295std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
11296{
11297	s << "VkBufferDeviceAddressInfo = {\n";
11298	s << "\tsType = " << value.sType << '\n';
11299	s << "\tpNext = " << value.pNext << '\n';
11300	s << "\tbuffer = " << value.buffer << '\n';
11301	s << '}';
11302	return s;
11303}
11304
11305std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
11306{
11307	s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
11308	s << "\tsType = " << value.sType << '\n';
11309	s << "\tpNext = " << value.pNext << '\n';
11310	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
11311	s << '}';
11312	return s;
11313}
11314
11315std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
11316{
11317	s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
11318	s << "\tsType = " << value.sType << '\n';
11319	s << "\tpNext = " << value.pNext << '\n';
11320	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11321	s << '}';
11322	return s;
11323}
11324
11325std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
11326{
11327	s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
11328	s << "\tsType = " << value.sType << '\n';
11329	s << "\tpNext = " << value.pNext << '\n';
11330	s << "\timageViewType = " << value.imageViewType << '\n';
11331	s << '}';
11332	return s;
11333}
11334
11335std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
11336{
11337	s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
11338	s << "\tsType = " << value.sType << '\n';
11339	s << "\tpNext = " << value.pNext << '\n';
11340	s << "\tfilterCubic = " << value.filterCubic << '\n';
11341	s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
11342	s << '}';
11343	return s;
11344}
11345
11346std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
11347{
11348	s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
11349	s << "\tsType = " << value.sType << '\n';
11350	s << "\tpNext = " << value.pNext << '\n';
11351	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
11352	s << '}';
11353	return s;
11354}
11355
11356std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
11357{
11358	s << "VkFramebufferAttachmentsCreateInfo = {\n";
11359	s << "\tsType = " << value.sType << '\n';
11360	s << "\tpNext = " << value.pNext << '\n';
11361	s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
11362	s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
11363	s << '}';
11364	return s;
11365}
11366
11367std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
11368{
11369	s << "VkFramebufferAttachmentImageInfo = {\n";
11370	s << "\tsType = " << value.sType << '\n';
11371	s << "\tpNext = " << value.pNext << '\n';
11372	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
11373	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
11374	s << "\twidth = " << value.width << '\n';
11375	s << "\theight = " << value.height << '\n';
11376	s << "\tlayerCount = " << value.layerCount << '\n';
11377	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
11378	s << "\tpViewFormats = " << value.pViewFormats << '\n';
11379	s << '}';
11380	return s;
11381}
11382
11383std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
11384{
11385	s << "VkRenderPassAttachmentBeginInfo = {\n";
11386	s << "\tsType = " << value.sType << '\n';
11387	s << "\tpNext = " << value.pNext << '\n';
11388	s << "\tattachmentCount = " << value.attachmentCount << '\n';
11389	s << "\tpAttachments = " << value.pAttachments << '\n';
11390	s << '}';
11391	return s;
11392}
11393
11394std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
11395{
11396	s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
11397	s << "\tsType = " << value.sType << '\n';
11398	s << "\tpNext = " << value.pNext << '\n';
11399	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
11400	s << '}';
11401	return s;
11402}
11403
11404std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
11405{
11406	s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
11407	s << "\tsType = " << value.sType << '\n';
11408	s << "\tpNext = " << value.pNext << '\n';
11409	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
11410	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
11411	s << '}';
11412	return s;
11413}
11414
11415std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
11416{
11417	s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
11418	s << "\tsType = " << value.sType << '\n';
11419	s << "\tpNext = " << value.pNext << '\n';
11420	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
11421	s << '}';
11422	return s;
11423}
11424
11425std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
11426{
11427	s << "VkCooperativeMatrixPropertiesNV = {\n";
11428	s << "\tsType = " << value.sType << '\n';
11429	s << "\tpNext = " << value.pNext << '\n';
11430	s << "\tMSize = " << value.MSize << '\n';
11431	s << "\tNSize = " << value.NSize << '\n';
11432	s << "\tKSize = " << value.KSize << '\n';
11433	s << "\tAType = " << value.AType << '\n';
11434	s << "\tBType = " << value.BType << '\n';
11435	s << "\tCType = " << value.CType << '\n';
11436	s << "\tDType = " << value.DType << '\n';
11437	s << "\tscope = " << value.scope << '\n';
11438	s << '}';
11439	return s;
11440}
11441
11442std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
11443{
11444	s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
11445	s << "\tsType = " << value.sType << '\n';
11446	s << "\tpNext = " << value.pNext << '\n';
11447	s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
11448	s << '}';
11449	return s;
11450}
11451
11452std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
11453{
11454	s << "VkImageViewHandleInfoNVX = {\n";
11455	s << "\tsType = " << value.sType << '\n';
11456	s << "\tpNext = " << value.pNext << '\n';
11457	s << "\timageView = " << value.imageView << '\n';
11458	s << "\tdescriptorType = " << value.descriptorType << '\n';
11459	s << "\tsampler = " << value.sampler << '\n';
11460	s << '}';
11461	return s;
11462}
11463
11464std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
11465{
11466	s << "VkImageViewAddressPropertiesNVX = {\n";
11467	s << "\tsType = " << value.sType << '\n';
11468	s << "\tpNext = " << value.pNext << '\n';
11469	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11470	s << "\tsize = " << value.size << '\n';
11471	s << '}';
11472	return s;
11473}
11474
11475std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
11476{
11477	s << "VkPresentFrameTokenGGP = {\n";
11478	s << "\tsType = " << value.sType << '\n';
11479	s << "\tpNext = " << value.pNext << '\n';
11480	s << "\tframeToken = " << value.frameToken << '\n';
11481	s << '}';
11482	return s;
11483}
11484
11485std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
11486{
11487	s << "VkPipelineCreationFeedback = {\n";
11488	s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
11489	s << "\tduration = " << value.duration << '\n';
11490	s << '}';
11491	return s;
11492}
11493
11494std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
11495{
11496	s << "VkPipelineCreationFeedbackCreateInfo = {\n";
11497	s << "\tsType = " << value.sType << '\n';
11498	s << "\tpNext = " << value.pNext << '\n';
11499	s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
11500	s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
11501	s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
11502	s << '}';
11503	return s;
11504}
11505
11506std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
11507{
11508	s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
11509	s << "\tsType = " << value.sType << '\n';
11510	s << "\tpNext = " << value.pNext << '\n';
11511	s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
11512	s << '}';
11513	return s;
11514}
11515
11516std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
11517{
11518	s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
11519	s << "\tsType = " << value.sType << '\n';
11520	s << "\tpNext = " << value.pNext << '\n';
11521	s << "\thmonitor = " << value.hmonitor << '\n';
11522	s << '}';
11523	return s;
11524}
11525
11526std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
11527{
11528	s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
11529	s << "\tsType = " << value.sType << '\n';
11530	s << "\tpNext = " << value.pNext << '\n';
11531	s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
11532	s << '}';
11533	return s;
11534}
11535
11536std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentBarrierFeaturesNV& value)
11537{
11538	s << "VkPhysicalDevicePresentBarrierFeaturesNV = {\n";
11539	s << "\tsType = " << value.sType << '\n';
11540	s << "\tpNext = " << value.pNext << '\n';
11541	s << "\tpresentBarrier = " << value.presentBarrier << '\n';
11542	s << '}';
11543	return s;
11544}
11545
11546std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesPresentBarrierNV& value)
11547{
11548	s << "VkSurfaceCapabilitiesPresentBarrierNV = {\n";
11549	s << "\tsType = " << value.sType << '\n';
11550	s << "\tpNext = " << value.pNext << '\n';
11551	s << "\tpresentBarrierSupported = " << value.presentBarrierSupported << '\n';
11552	s << '}';
11553	return s;
11554}
11555
11556std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentBarrierCreateInfoNV& value)
11557{
11558	s << "VkSwapchainPresentBarrierCreateInfoNV = {\n";
11559	s << "\tsType = " << value.sType << '\n';
11560	s << "\tpNext = " << value.pNext << '\n';
11561	s << "\tpresentBarrierEnable = " << value.presentBarrierEnable << '\n';
11562	s << '}';
11563	return s;
11564}
11565
11566std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
11567{
11568	s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
11569	s << "\tsType = " << value.sType << '\n';
11570	s << "\tpNext = " << value.pNext << '\n';
11571	s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
11572	s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
11573	s << '}';
11574	return s;
11575}
11576
11577std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
11578{
11579	s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
11580	s << "\tsType = " << value.sType << '\n';
11581	s << "\tpNext = " << value.pNext << '\n';
11582	s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
11583	s << '}';
11584	return s;
11585}
11586
11587std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
11588{
11589	s << "VkPerformanceCounterKHR = {\n";
11590	s << "\tsType = " << value.sType << '\n';
11591	s << "\tpNext = " << value.pNext << '\n';
11592	s << "\tunit = " << value.unit << '\n';
11593	s << "\tscope = " << value.scope << '\n';
11594	s << "\tstorage = " << value.storage << '\n';
11595	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';
11596	s << '}';
11597	return s;
11598}
11599
11600std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
11601{
11602	s << "VkPerformanceCounterDescriptionKHR = {\n";
11603	s << "\tsType = " << value.sType << '\n';
11604	s << "\tpNext = " << value.pNext << '\n';
11605	s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
11606	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11607	s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
11608	s << "\tdescription = " << (const char*)value.description << '\n';
11609	s << '}';
11610	return s;
11611}
11612
11613std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
11614{
11615	s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
11616	s << "\tsType = " << value.sType << '\n';
11617	s << "\tpNext = " << value.pNext << '\n';
11618	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
11619	s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
11620	s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
11621	s << '}';
11622	return s;
11623}
11624
11625std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
11626{
11627	s << "VkPerformanceCounterResultKHR = {\n";
11628	s << "\tint32 = " << value.int32 << '\n';
11629	s << "\tint64 = " << value.int64 << '\n';
11630	s << "\tuint32 = " << value.uint32 << '\n';
11631	s << "\tuint64 = " << value.uint64 << '\n';
11632	s << "\tfloat32 = " << value.float32 << '\n';
11633	s << "\tfloat64 = " << value.float64 << '\n';
11634	s << '}';
11635	return s;
11636}
11637
11638std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
11639{
11640	s << "VkAcquireProfilingLockInfoKHR = {\n";
11641	s << "\tsType = " << value.sType << '\n';
11642	s << "\tpNext = " << value.pNext << '\n';
11643	s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
11644	s << "\ttimeout = " << value.timeout << '\n';
11645	s << '}';
11646	return s;
11647}
11648
11649std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
11650{
11651	s << "VkPerformanceQuerySubmitInfoKHR = {\n";
11652	s << "\tsType = " << value.sType << '\n';
11653	s << "\tpNext = " << value.pNext << '\n';
11654	s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
11655	s << '}';
11656	return s;
11657}
11658
11659std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
11660{
11661	s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
11662	s << "\tsType = " << value.sType << '\n';
11663	s << "\tpNext = " << value.pNext << '\n';
11664	s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
11665	s << '}';
11666	return s;
11667}
11668
11669std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
11670{
11671	s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
11672	s << "\tsType = " << value.sType << '\n';
11673	s << "\tpNext = " << value.pNext << '\n';
11674	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11675	s << '}';
11676	return s;
11677}
11678
11679std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
11680{
11681	s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
11682	s << "\tsType = " << value.sType << '\n';
11683	s << "\tpNext = " << value.pNext << '\n';
11684	s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
11685	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11686	s << '}';
11687	return s;
11688}
11689
11690std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
11691{
11692	s << "VkFramebufferMixedSamplesCombinationNV = {\n";
11693	s << "\tsType = " << value.sType << '\n';
11694	s << "\tpNext = " << value.pNext << '\n';
11695	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11696	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
11697	s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
11698	s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
11699	s << '}';
11700	return s;
11701}
11702
11703std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
11704{
11705	s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
11706	s << "\tsType = " << value.sType << '\n';
11707	s << "\tpNext = " << value.pNext << '\n';
11708	s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
11709	s << '}';
11710	return s;
11711}
11712
11713std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
11714{
11715	s << "VkPerformanceValueDataINTEL = {\n";
11716	s << "\tvalue32 = " << value.value32 << '\n';
11717	s << "\tvalue64 = " << value.value64 << '\n';
11718	s << "\tvalueFloat = " << value.valueFloat << '\n';
11719	s << "\tvalueBool = " << value.valueBool << '\n';
11720	s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
11721	s << '}';
11722	return s;
11723}
11724
11725std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
11726{
11727	s << "VkPerformanceValueINTEL = {\n";
11728	s << "\ttype = " << value.type << '\n';
11729	s << "\tdata = " << value.data << '\n';
11730	s << '}';
11731	return s;
11732}
11733
11734std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
11735{
11736	s << "VkInitializePerformanceApiInfoINTEL = {\n";
11737	s << "\tsType = " << value.sType << '\n';
11738	s << "\tpNext = " << value.pNext << '\n';
11739	s << "\tpUserData = " << value.pUserData << '\n';
11740	s << '}';
11741	return s;
11742}
11743
11744std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
11745{
11746	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
11747	s << "\tsType = " << value.sType << '\n';
11748	s << "\tpNext = " << value.pNext << '\n';
11749	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
11750	s << '}';
11751	return s;
11752}
11753
11754std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
11755{
11756	s << "VkPerformanceMarkerInfoINTEL = {\n";
11757	s << "\tsType = " << value.sType << '\n';
11758	s << "\tpNext = " << value.pNext << '\n';
11759	s << "\tmarker = " << value.marker << '\n';
11760	s << '}';
11761	return s;
11762}
11763
11764std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
11765{
11766	s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
11767	s << "\tsType = " << value.sType << '\n';
11768	s << "\tpNext = " << value.pNext << '\n';
11769	s << "\tmarker = " << value.marker << '\n';
11770	s << '}';
11771	return s;
11772}
11773
11774std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
11775{
11776	s << "VkPerformanceOverrideInfoINTEL = {\n";
11777	s << "\tsType = " << value.sType << '\n';
11778	s << "\tpNext = " << value.pNext << '\n';
11779	s << "\ttype = " << value.type << '\n';
11780	s << "\tenable = " << value.enable << '\n';
11781	s << "\tparameter = " << value.parameter << '\n';
11782	s << '}';
11783	return s;
11784}
11785
11786std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
11787{
11788	s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
11789	s << "\tsType = " << value.sType << '\n';
11790	s << "\tpNext = " << value.pNext << '\n';
11791	s << "\ttype = " << value.type << '\n';
11792	s << '}';
11793	return s;
11794}
11795
11796std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
11797{
11798	s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
11799	s << "\tsType = " << value.sType << '\n';
11800	s << "\tpNext = " << value.pNext << '\n';
11801	s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
11802	s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
11803	s << '}';
11804	return s;
11805}
11806
11807std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
11808{
11809	s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
11810	s << "\tsType = " << value.sType << '\n';
11811	s << "\tpNext = " << value.pNext << '\n';
11812	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
11813	s << '}';
11814	return s;
11815}
11816
11817std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
11818{
11819	s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
11820	s << "\tsType = " << value.sType << '\n';
11821	s << "\tpNext = " << value.pNext << '\n';
11822	s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
11823	s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
11824	s << '}';
11825	return s;
11826}
11827
11828std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
11829{
11830	s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
11831	s << "\tsType = " << value.sType << '\n';
11832	s << "\tpNext = " << value.pNext << '\n';
11833	s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
11834	s << '}';
11835	return s;
11836}
11837
11838std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
11839{
11840	s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
11841	s << "\tsType = " << value.sType << '\n';
11842	s << "\tpNext = " << value.pNext << '\n';
11843	s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
11844	s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
11845	s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
11846	s << '}';
11847	return s;
11848}
11849
11850std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
11851{
11852	s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
11853	s << "\tsType = " << value.sType << '\n';
11854	s << "\tpNext = " << value.pNext << '\n';
11855	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
11856	s << '}';
11857	return s;
11858}
11859
11860std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
11861{
11862	s << "VkAttachmentReferenceStencilLayout = {\n";
11863	s << "\tsType = " << value.sType << '\n';
11864	s << "\tpNext = " << value.pNext << '\n';
11865	s << "\tstencilLayout = " << value.stencilLayout << '\n';
11866	s << '}';
11867	return s;
11868}
11869
11870std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
11871{
11872	s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
11873	s << "\tsType = " << value.sType << '\n';
11874	s << "\tpNext = " << value.pNext << '\n';
11875	s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
11876	s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
11877	s << '}';
11878	return s;
11879}
11880
11881std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
11882{
11883	s << "VkAttachmentDescriptionStencilLayout = {\n";
11884	s << "\tsType = " << value.sType << '\n';
11885	s << "\tpNext = " << value.pNext << '\n';
11886	s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
11887	s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
11888	s << '}';
11889	return s;
11890}
11891
11892std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
11893{
11894	s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
11895	s << "\tsType = " << value.sType << '\n';
11896	s << "\tpNext = " << value.pNext << '\n';
11897	s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
11898	s << '}';
11899	return s;
11900}
11901
11902std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
11903{
11904	s << "VkPipelineInfoKHR = {\n";
11905	s << "\tsType = " << value.sType << '\n';
11906	s << "\tpNext = " << value.pNext << '\n';
11907	s << "\tpipeline = " << value.pipeline << '\n';
11908	s << '}';
11909	return s;
11910}
11911
11912std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
11913{
11914	s << "VkPipelineExecutablePropertiesKHR = {\n";
11915	s << "\tsType = " << value.sType << '\n';
11916	s << "\tpNext = " << value.pNext << '\n';
11917	s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
11918	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11919	s << "\tdescription = " << (const char*)value.description << '\n';
11920	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
11921	s << '}';
11922	return s;
11923}
11924
11925std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
11926{
11927	s << "VkPipelineExecutableInfoKHR = {\n";
11928	s << "\tsType = " << value.sType << '\n';
11929	s << "\tpNext = " << value.pNext << '\n';
11930	s << "\tpipeline = " << value.pipeline << '\n';
11931	s << "\texecutableIndex = " << value.executableIndex << '\n';
11932	s << '}';
11933	return s;
11934}
11935
11936std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
11937{
11938	s << "VkPipelineExecutableStatisticValueKHR = {\n";
11939	s << "\tb32 = " << value.b32 << '\n';
11940	s << "\ti64 = " << value.i64 << '\n';
11941	s << "\tu64 = " << value.u64 << '\n';
11942	s << "\tf64 = " << value.f64 << '\n';
11943	s << '}';
11944	return s;
11945}
11946
11947std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
11948{
11949	s << "VkPipelineExecutableStatisticKHR = {\n";
11950	s << "\tsType = " << value.sType << '\n';
11951	s << "\tpNext = " << value.pNext << '\n';
11952	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11953	s << "\tdescription = " << (const char*)value.description << '\n';
11954	s << "\tformat = " << value.format << '\n';
11955	s << "\tvalue = " << value.value << '\n';
11956	s << '}';
11957	return s;
11958}
11959
11960std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
11961{
11962	s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
11963	s << "\tsType = " << value.sType << '\n';
11964	s << "\tpNext = " << value.pNext << '\n';
11965	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11966	s << "\tdescription = " << (const char*)value.description << '\n';
11967	s << "\tisText = " << value.isText << '\n';
11968	s << "\tdataSize = " << value.dataSize << '\n';
11969	s << "\tpData = " << value.pData << '\n';
11970	s << '}';
11971	return s;
11972}
11973
11974std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
11975{
11976	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
11977	s << "\tsType = " << value.sType << '\n';
11978	s << "\tpNext = " << value.pNext << '\n';
11979	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
11980	s << '}';
11981	return s;
11982}
11983
11984std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
11985{
11986	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
11987	s << "\tsType = " << value.sType << '\n';
11988	s << "\tpNext = " << value.pNext << '\n';
11989	s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
11990	s << '}';
11991	return s;
11992}
11993
11994std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
11995{
11996	s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
11997	s << "\tsType = " << value.sType << '\n';
11998	s << "\tpNext = " << value.pNext << '\n';
11999	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
12000	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
12001	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
12002	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
12003	s << '}';
12004	return s;
12005}
12006
12007std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
12008{
12009	s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
12010	s << "\tsType = " << value.sType << '\n';
12011	s << "\tpNext = " << value.pNext << '\n';
12012	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
12013	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
12014	s << '}';
12015	return s;
12016}
12017
12018std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
12019{
12020	s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
12021	s << "\tsType = " << value.sType << '\n';
12022	s << "\tpNext = " << value.pNext << '\n';
12023	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
12024	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
12025	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
12026	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
12027	s << '}';
12028	return s;
12029}
12030
12031std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
12032{
12033	s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
12034	s << "\tsType = " << value.sType << '\n';
12035	s << "\tpNext = " << value.pNext << '\n';
12036	s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
12037	s << '}';
12038	return s;
12039}
12040
12041std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
12042{
12043	s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
12044	s << "\tsType = " << value.sType << '\n';
12045	s << "\tpNext = " << value.pNext << '\n';
12046	s << "\trenderPass = " << value.renderPass << '\n';
12047	s << "\tsubpass = " << value.subpass << '\n';
12048	s << '}';
12049	return s;
12050}
12051
12052std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
12053{
12054	s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
12055	s << "\tsType = " << value.sType << '\n';
12056	s << "\tpNext = " << value.pNext << '\n';
12057	s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
12058	s << '}';
12059	return s;
12060}
12061
12062std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
12063{
12064	s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
12065	s << "\tsType = " << value.sType << '\n';
12066	s << "\tpNext = " << value.pNext << '\n';
12067	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
12068	s << '}';
12069	return s;
12070}
12071
12072std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
12073{
12074	s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
12075	s << "\tsType = " << value.sType << '\n';
12076	s << "\tpNext = " << value.pNext << '\n';
12077	s << "\tmemory = " << value.memory << '\n';
12078	s << '}';
12079	return s;
12080}
12081
12082std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
12083{
12084	s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
12085	s << "\tsType = " << value.sType << '\n';
12086	s << "\tpNext = " << value.pNext << '\n';
12087	s << "\trectangularLines = " << value.rectangularLines << '\n';
12088	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
12089	s << "\tsmoothLines = " << value.smoothLines << '\n';
12090	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
12091	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
12092	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
12093	s << '}';
12094	return s;
12095}
12096
12097std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
12098{
12099	s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
12100	s << "\tsType = " << value.sType << '\n';
12101	s << "\tpNext = " << value.pNext << '\n';
12102	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
12103	s << '}';
12104	return s;
12105}
12106
12107std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
12108{
12109	s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
12110	s << "\tsType = " << value.sType << '\n';
12111	s << "\tpNext = " << value.pNext << '\n';
12112	s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
12113	s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
12114	s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
12115	s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
12116	s << '}';
12117	return s;
12118}
12119
12120std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
12121{
12122	s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
12123	s << "\tsType = " << value.sType << '\n';
12124	s << "\tpNext = " << value.pNext << '\n';
12125	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
12126	s << '}';
12127	return s;
12128}
12129
12130std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
12131{
12132	s << "VkPhysicalDeviceVulkan11Features = {\n";
12133	s << "\tsType = " << value.sType << '\n';
12134	s << "\tpNext = " << value.pNext << '\n';
12135	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
12136	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
12137	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
12138	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
12139	s << "\tmultiview = " << value.multiview << '\n';
12140	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
12141	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
12142	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
12143	s << "\tvariablePointers = " << value.variablePointers << '\n';
12144	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
12145	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
12146	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
12147	s << '}';
12148	return s;
12149}
12150
12151std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
12152{
12153	s << "VkPhysicalDeviceVulkan11Properties = {\n";
12154	s << "\tsType = " << value.sType << '\n';
12155	s << "\tpNext = " << value.pNext << '\n';
12156	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';
12157	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';
12158	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';
12159	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
12160	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
12161	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
12162	s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
12163	s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
12164	s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
12165	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
12166	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
12167	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
12168	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
12169	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
12170	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
12171	s << '}';
12172	return s;
12173}
12174
12175std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
12176{
12177	s << "VkPhysicalDeviceVulkan12Features = {\n";
12178	s << "\tsType = " << value.sType << '\n';
12179	s << "\tpNext = " << value.pNext << '\n';
12180	s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
12181	s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
12182	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
12183	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
12184	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
12185	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
12186	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
12187	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
12188	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
12189	s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
12190	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
12191	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
12192	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
12193	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
12194	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
12195	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
12196	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
12197	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
12198	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
12199	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
12200	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
12201	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
12202	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
12203	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
12204	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
12205	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
12206	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
12207	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
12208	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
12209	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
12210	s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
12211	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
12212	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
12213	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
12214	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
12215	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
12216	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
12217	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
12218	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
12219	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
12220	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
12221	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
12222	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
12223	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
12224	s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
12225	s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
12226	s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
12227	s << '}';
12228	return s;
12229}
12230
12231std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
12232{
12233	s << "VkPhysicalDeviceVulkan12Properties = {\n";
12234	s << "\tsType = " << value.sType << '\n';
12235	s << "\tpNext = " << value.pNext << '\n';
12236	s << "\tdriverID = " << value.driverID << '\n';
12237	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
12238	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
12239	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
12240	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
12241	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
12242	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
12243	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
12244	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
12245	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
12246	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
12247	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
12248	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
12249	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
12250	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
12251	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
12252	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
12253	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
12254	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
12255	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
12256	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
12257	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
12258	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
12259	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
12260	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
12261	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
12262	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
12263	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
12264	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
12265	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
12266	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
12267	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
12268	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
12269	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
12270	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
12271	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
12272	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
12273	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
12274	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
12275	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
12276	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
12277	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
12278	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
12279	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
12280	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
12281	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
12282	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
12283	s << "\tindependentResolve = " << value.independentResolve << '\n';
12284	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
12285	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
12286	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
12287	s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
12288	s << '}';
12289	return s;
12290}
12291
12292std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
12293{
12294	s << "VkPhysicalDeviceVulkan13Features = {\n";
12295	s << "\tsType = " << value.sType << '\n';
12296	s << "\tpNext = " << value.pNext << '\n';
12297	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12298	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
12299	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
12300	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
12301	s << "\tprivateData = " << value.privateData << '\n';
12302	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
12303	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
12304	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
12305	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
12306	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
12307	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
12308	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12309	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
12310	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
12311	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
12312	s << '}';
12313	return s;
12314}
12315
12316std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
12317{
12318	s << "VkPhysicalDeviceVulkan13Properties = {\n";
12319	s << "\tsType = " << value.sType << '\n';
12320	s << "\tpNext = " << value.pNext << '\n';
12321	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
12322	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
12323	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
12324	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
12325	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
12326	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
12327	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
12328	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
12329	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
12330	s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
12331	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
12332	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
12333	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
12334	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
12335	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
12336	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
12337	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
12338	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
12339	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
12340	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
12341	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
12342	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
12343	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
12344	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
12345	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
12346	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
12347	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
12348	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
12349	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
12350	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
12351	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
12352	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
12353	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
12354	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
12355	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
12356	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
12357	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
12358	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
12359	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
12360	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
12361	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
12362	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
12363	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
12364	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
12365	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
12366	s << '}';
12367	return s;
12368}
12369
12370std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
12371{
12372	s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
12373	s << "\tsType = " << value.sType << '\n';
12374	s << "\tpNext = " << value.pNext << '\n';
12375	s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
12376	s << '}';
12377	return s;
12378}
12379
12380std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
12381{
12382	s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
12383	s << "\tsType = " << value.sType << '\n';
12384	s << "\tpNext = " << value.pNext << '\n';
12385	s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
12386	s << '}';
12387	return s;
12388}
12389
12390std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
12391{
12392	s << "VkPhysicalDeviceToolProperties = {\n";
12393	s << "\tsType = " << value.sType << '\n';
12394	s << "\tpNext = " << value.pNext << '\n';
12395	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12396	s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
12397	s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
12398	s << "\tdescription = " << (const char*)value.description << '\n';
12399	s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
12400	s << '}';
12401	return s;
12402}
12403
12404std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
12405{
12406	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
12407	s << "\tsType = " << value.sType << '\n';
12408	s << "\tpNext = " << value.pNext << '\n';
12409	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
12410	s << "\tformat = " << value.format << '\n';
12411	s << '}';
12412	return s;
12413}
12414
12415std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
12416{
12417	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
12418	s << "\tsType = " << value.sType << '\n';
12419	s << "\tpNext = " << value.pNext << '\n';
12420	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
12421	s << '}';
12422	return s;
12423}
12424
12425std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
12426{
12427	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
12428	s << "\tsType = " << value.sType << '\n';
12429	s << "\tpNext = " << value.pNext << '\n';
12430	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
12431	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
12432	s << '}';
12433	return s;
12434}
12435
12436std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
12437{
12438	s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
12439	s << "\tsType = " << value.sType << '\n';
12440	s << "\tpNext = " << value.pNext << '\n';
12441	s << "\tcomponents = " << value.components << '\n';
12442	s << "\tsrgb = " << value.srgb << '\n';
12443	s << '}';
12444	return s;
12445}
12446
12447std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
12448{
12449	s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
12450	s << "\tsType = " << value.sType << '\n';
12451	s << "\tpNext = " << value.pNext << '\n';
12452	s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
12453	s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
12454	s << '}';
12455	return s;
12456}
12457
12458std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
12459{
12460	s << "VkDeviceOrHostAddressKHR = {\n";
12461	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12462	s << "\thostAddress = " << value.hostAddress << '\n';
12463	s << '}';
12464	return s;
12465}
12466
12467std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
12468{
12469	s << "VkDeviceOrHostAddressConstKHR = {\n";
12470	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12471	s << "\thostAddress = " << value.hostAddress << '\n';
12472	s << '}';
12473	return s;
12474}
12475
12476std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
12477{
12478	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
12479	s << "\tsType = " << value.sType << '\n';
12480	s << "\tpNext = " << value.pNext << '\n';
12481	s << "\tvertexFormat = " << value.vertexFormat << '\n';
12482	s << "\tvertexData = " << value.vertexData << '\n';
12483	s << "\tvertexStride = " << value.vertexStride << '\n';
12484	s << "\tmaxVertex = " << value.maxVertex << '\n';
12485	s << "\tindexType = " << value.indexType << '\n';
12486	s << "\tindexData = " << value.indexData << '\n';
12487	s << "\ttransformData = " << value.transformData << '\n';
12488	s << '}';
12489	return s;
12490}
12491
12492std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
12493{
12494	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
12495	s << "\tsType = " << value.sType << '\n';
12496	s << "\tpNext = " << value.pNext << '\n';
12497	s << "\tdata = " << value.data << '\n';
12498	s << "\tstride = " << value.stride << '\n';
12499	s << '}';
12500	return s;
12501}
12502
12503std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
12504{
12505	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
12506	s << "\tsType = " << value.sType << '\n';
12507	s << "\tpNext = " << value.pNext << '\n';
12508	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
12509	s << "\tdata = " << value.data << '\n';
12510	s << '}';
12511	return s;
12512}
12513
12514std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
12515{
12516	s << "VkAccelerationStructureGeometryDataKHR = {\n";
12517	s << "\ttriangles = " << value.triangles << '\n';
12518	s << "\taabbs = " << value.aabbs << '\n';
12519	s << "\tinstances = " << value.instances << '\n';
12520	s << '}';
12521	return s;
12522}
12523
12524std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
12525{
12526	s << "VkAccelerationStructureGeometryKHR = {\n";
12527	s << "\tsType = " << value.sType << '\n';
12528	s << "\tpNext = " << value.pNext << '\n';
12529	s << "\tgeometryType = " << value.geometryType << '\n';
12530	s << "\tgeometry = " << value.geometry << '\n';
12531	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
12532	s << '}';
12533	return s;
12534}
12535
12536std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
12537{
12538	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
12539	s << "\tsType = " << value.sType << '\n';
12540	s << "\tpNext = " << value.pNext << '\n';
12541	s << "\ttype = " << value.type << '\n';
12542	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
12543	s << "\tmode = " << value.mode << '\n';
12544	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
12545	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
12546	s << "\tgeometryCount = " << value.geometryCount << '\n';
12547	s << "\tpGeometries = " << value.pGeometries << '\n';
12548	s << "\tppGeometries = " << value.ppGeometries << '\n';
12549	s << "\tscratchData = " << value.scratchData << '\n';
12550	s << '}';
12551	return s;
12552}
12553
12554std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
12555{
12556	s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
12557	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
12558	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
12559	s << "\tfirstVertex = " << value.firstVertex << '\n';
12560	s << "\ttransformOffset = " << value.transformOffset << '\n';
12561	s << '}';
12562	return s;
12563}
12564
12565std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
12566{
12567	s << "VkAccelerationStructureCreateInfoKHR = {\n";
12568	s << "\tsType = " << value.sType << '\n';
12569	s << "\tpNext = " << value.pNext << '\n';
12570	s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
12571	s << "\tbuffer = " << value.buffer << '\n';
12572	s << "\toffset = " << value.offset << '\n';
12573	s << "\tsize = " << value.size << '\n';
12574	s << "\ttype = " << value.type << '\n';
12575	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12576	s << '}';
12577	return s;
12578}
12579
12580std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
12581{
12582	s << "VkAabbPositionsKHR = {\n";
12583	s << "\tminX = " << value.minX << '\n';
12584	s << "\tminY = " << value.minY << '\n';
12585	s << "\tminZ = " << value.minZ << '\n';
12586	s << "\tmaxX = " << value.maxX << '\n';
12587	s << "\tmaxY = " << value.maxY << '\n';
12588	s << "\tmaxZ = " << value.maxZ << '\n';
12589	s << '}';
12590	return s;
12591}
12592
12593std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
12594{
12595	s << "VkTransformMatrixKHR = {\n";
12596	s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
12597	s << '}';
12598	return s;
12599}
12600
12601std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
12602{
12603	s << "VkAccelerationStructureInstanceKHR = {\n";
12604	s << "\ttransform = " << value.transform << '\n';
12605	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
12606	s << "\tmask = " << value.mask << '\n';
12607	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
12608	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
12609	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
12610	s << '}';
12611	return s;
12612}
12613
12614std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
12615{
12616	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
12617	s << "\tsType = " << value.sType << '\n';
12618	s << "\tpNext = " << value.pNext << '\n';
12619	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12620	s << '}';
12621	return s;
12622}
12623
12624std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
12625{
12626	s << "VkAccelerationStructureVersionInfoKHR = {\n";
12627	s << "\tsType = " << value.sType << '\n';
12628	s << "\tpNext = " << value.pNext << '\n';
12629	s << "\tpVersionData = " << value.pVersionData << '\n';
12630	s << '}';
12631	return s;
12632}
12633
12634std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
12635{
12636	s << "VkCopyAccelerationStructureInfoKHR = {\n";
12637	s << "\tsType = " << value.sType << '\n';
12638	s << "\tpNext = " << value.pNext << '\n';
12639	s << "\tsrc = " << value.src << '\n';
12640	s << "\tdst = " << value.dst << '\n';
12641	s << "\tmode = " << value.mode << '\n';
12642	s << '}';
12643	return s;
12644}
12645
12646std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
12647{
12648	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
12649	s << "\tsType = " << value.sType << '\n';
12650	s << "\tpNext = " << value.pNext << '\n';
12651	s << "\tsrc = " << value.src << '\n';
12652	s << "\tdst = " << value.dst << '\n';
12653	s << "\tmode = " << value.mode << '\n';
12654	s << '}';
12655	return s;
12656}
12657
12658std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
12659{
12660	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
12661	s << "\tsType = " << value.sType << '\n';
12662	s << "\tpNext = " << value.pNext << '\n';
12663	s << "\tsrc = " << value.src << '\n';
12664	s << "\tdst = " << value.dst << '\n';
12665	s << "\tmode = " << value.mode << '\n';
12666	s << '}';
12667	return s;
12668}
12669
12670std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
12671{
12672	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
12673	s << "\tsType = " << value.sType << '\n';
12674	s << "\tpNext = " << value.pNext << '\n';
12675	s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
12676	s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
12677	s << '}';
12678	return s;
12679}
12680
12681std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
12682{
12683	s << "VkPipelineLibraryCreateInfoKHR = {\n";
12684	s << "\tsType = " << value.sType << '\n';
12685	s << "\tpNext = " << value.pNext << '\n';
12686	s << "\tlibraryCount = " << value.libraryCount << '\n';
12687	s << "\tpLibraries = " << value.pLibraries << '\n';
12688	s << '}';
12689	return s;
12690}
12691
12692std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
12693{
12694	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
12695	s << "\tsType = " << value.sType << '\n';
12696	s << "\tpNext = " << value.pNext << '\n';
12697	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
12698	s << '}';
12699	return s;
12700}
12701
12702std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
12703{
12704	s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
12705	s << "\tsType = " << value.sType << '\n';
12706	s << "\tpNext = " << value.pNext << '\n';
12707	s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
12708	s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
12709	s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
12710	s << '}';
12711	return s;
12712}
12713
12714std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT& value)
12715{
12716	s << "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = {\n";
12717	s << "\tsType = " << value.sType << '\n';
12718	s << "\tpNext = " << value.pNext << '\n';
12719	s << "\textendedDynamicState3TessellationDomainOrigin = " << value.extendedDynamicState3TessellationDomainOrigin << '\n';
12720	s << "\textendedDynamicState3DepthClampEnable = " << value.extendedDynamicState3DepthClampEnable << '\n';
12721	s << "\textendedDynamicState3PolygonMode = " << value.extendedDynamicState3PolygonMode << '\n';
12722	s << "\textendedDynamicState3RasterizationSamples = " << value.extendedDynamicState3RasterizationSamples << '\n';
12723	s << "\textendedDynamicState3SampleMask = " << value.extendedDynamicState3SampleMask << '\n';
12724	s << "\textendedDynamicState3AlphaToCoverageEnable = " << value.extendedDynamicState3AlphaToCoverageEnable << '\n';
12725	s << "\textendedDynamicState3AlphaToOneEnable = " << value.extendedDynamicState3AlphaToOneEnable << '\n';
12726	s << "\textendedDynamicState3LogicOpEnable = " << value.extendedDynamicState3LogicOpEnable << '\n';
12727	s << "\textendedDynamicState3ColorBlendEnable = " << value.extendedDynamicState3ColorBlendEnable << '\n';
12728	s << "\textendedDynamicState3ColorBlendEquation = " << value.extendedDynamicState3ColorBlendEquation << '\n';
12729	s << "\textendedDynamicState3ColorWriteMask = " << value.extendedDynamicState3ColorWriteMask << '\n';
12730	s << "\textendedDynamicState3RasterizationStream = " << value.extendedDynamicState3RasterizationStream << '\n';
12731	s << "\textendedDynamicState3ConservativeRasterizationMode = " << value.extendedDynamicState3ConservativeRasterizationMode << '\n';
12732	s << "\textendedDynamicState3ExtraPrimitiveOverestimationSize = " << value.extendedDynamicState3ExtraPrimitiveOverestimationSize << '\n';
12733	s << "\textendedDynamicState3DepthClipEnable = " << value.extendedDynamicState3DepthClipEnable << '\n';
12734	s << "\textendedDynamicState3SampleLocationsEnable = " << value.extendedDynamicState3SampleLocationsEnable << '\n';
12735	s << "\textendedDynamicState3ColorBlendAdvanced = " << value.extendedDynamicState3ColorBlendAdvanced << '\n';
12736	s << "\textendedDynamicState3ProvokingVertexMode = " << value.extendedDynamicState3ProvokingVertexMode << '\n';
12737	s << "\textendedDynamicState3LineRasterizationMode = " << value.extendedDynamicState3LineRasterizationMode << '\n';
12738	s << "\textendedDynamicState3LineStippleEnable = " << value.extendedDynamicState3LineStippleEnable << '\n';
12739	s << "\textendedDynamicState3DepthClipNegativeOneToOne = " << value.extendedDynamicState3DepthClipNegativeOneToOne << '\n';
12740	s << "\textendedDynamicState3ViewportWScalingEnable = " << value.extendedDynamicState3ViewportWScalingEnable << '\n';
12741	s << "\textendedDynamicState3ViewportSwizzle = " << value.extendedDynamicState3ViewportSwizzle << '\n';
12742	s << "\textendedDynamicState3CoverageToColorEnable = " << value.extendedDynamicState3CoverageToColorEnable << '\n';
12743	s << "\textendedDynamicState3CoverageToColorLocation = " << value.extendedDynamicState3CoverageToColorLocation << '\n';
12744	s << "\textendedDynamicState3CoverageModulationMode = " << value.extendedDynamicState3CoverageModulationMode << '\n';
12745	s << "\textendedDynamicState3CoverageModulationTableEnable = " << value.extendedDynamicState3CoverageModulationTableEnable << '\n';
12746	s << "\textendedDynamicState3CoverageModulationTable = " << value.extendedDynamicState3CoverageModulationTable << '\n';
12747	s << "\textendedDynamicState3CoverageReductionMode = " << value.extendedDynamicState3CoverageReductionMode << '\n';
12748	s << "\textendedDynamicState3RepresentativeFragmentTestEnable = " << value.extendedDynamicState3RepresentativeFragmentTestEnable << '\n';
12749	s << "\textendedDynamicState3ShadingRateImageEnable = " << value.extendedDynamicState3ShadingRateImageEnable << '\n';
12750	s << '}';
12751	return s;
12752}
12753
12754std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT& value)
12755{
12756	s << "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = {\n";
12757	s << "\tsType = " << value.sType << '\n';
12758	s << "\tpNext = " << value.pNext << '\n';
12759	s << "\tdynamicPrimitiveTopologyUnrestricted = " << value.dynamicPrimitiveTopologyUnrestricted << '\n';
12760	s << '}';
12761	return s;
12762}
12763
12764std::ostream& operator<< (std::ostream& s, const VkColorBlendEquationEXT& value)
12765{
12766	s << "VkColorBlendEquationEXT = {\n";
12767	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
12768	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
12769	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
12770	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
12771	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
12772	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
12773	s << '}';
12774	return s;
12775}
12776
12777std::ostream& operator<< (std::ostream& s, const VkColorBlendAdvancedEXT& value)
12778{
12779	s << "VkColorBlendAdvancedEXT = {\n";
12780	s << "\tadvancedBlendOp = " << value.advancedBlendOp << '\n';
12781	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
12782	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
12783	s << "\tblendOverlap = " << value.blendOverlap << '\n';
12784	s << "\tclampResults = " << value.clampResults << '\n';
12785	s << '}';
12786	return s;
12787}
12788
12789std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
12790{
12791	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
12792	s << "\tsType = " << value.sType << '\n';
12793	s << "\tpNext = " << value.pNext << '\n';
12794	s << "\ttransform = " << value.transform << '\n';
12795	s << '}';
12796	return s;
12797}
12798
12799std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
12800{
12801	s << "VkCopyCommandTransformInfoQCOM = {\n";
12802	s << "\tsType = " << value.sType << '\n';
12803	s << "\tpNext = " << value.pNext << '\n';
12804	s << "\ttransform = " << value.transform << '\n';
12805	s << '}';
12806	return s;
12807}
12808
12809std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
12810{
12811	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
12812	s << "\tsType = " << value.sType << '\n';
12813	s << "\tpNext = " << value.pNext << '\n';
12814	s << "\ttransform = " << value.transform << '\n';
12815	s << "\trenderArea = " << value.renderArea << '\n';
12816	s << '}';
12817	return s;
12818}
12819
12820std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
12821{
12822	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
12823	s << "\tsType = " << value.sType << '\n';
12824	s << "\tpNext = " << value.pNext << '\n';
12825	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
12826	s << '}';
12827	return s;
12828}
12829
12830std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
12831{
12832	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
12833	s << "\tsType = " << value.sType << '\n';
12834	s << "\tpNext = " << value.pNext << '\n';
12835	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
12836	s << '}';
12837	return s;
12838}
12839
12840std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
12841{
12842	s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
12843	s << "\tsType = " << value.sType << '\n';
12844	s << "\tpNext = " << value.pNext << '\n';
12845	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12846	s << '}';
12847	return s;
12848}
12849
12850std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
12851{
12852	s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
12853	s << "\tsType = " << value.sType << '\n';
12854	s << "\tpNext = " << value.pNext << '\n';
12855	s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
12856	s << '}';
12857	return s;
12858}
12859
12860std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
12861{
12862	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
12863	s << "\tsType = " << value.sType << '\n';
12864	s << "\tpNext = " << value.pNext << '\n';
12865	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
12866	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
12867	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
12868	s << '}';
12869	return s;
12870}
12871
12872std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
12873{
12874	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
12875	s << "\tsType = " << value.sType << '\n';
12876	s << "\tpNext = " << value.pNext << '\n';
12877	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
12878	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
12879	s << '}';
12880	return s;
12881}
12882
12883std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
12884{
12885	s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
12886	s << "\tsType = " << value.sType << '\n';
12887	s << "\tpNext = " << value.pNext << '\n';
12888	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12889	s << '}';
12890	return s;
12891}
12892
12893std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
12894{
12895	s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
12896	s << "\tsType = " << value.sType << '\n';
12897	s << "\tpNext = " << value.pNext << '\n';
12898	s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
12899	s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
12900	s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
12901	s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
12902	s << '}';
12903	return s;
12904}
12905
12906std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
12907{
12908	s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
12909	s << "\tsType = " << value.sType << '\n';
12910	s << "\tpNext = " << value.pNext << '\n';
12911	s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
12912	s << "\tevents = " << value.events << '\n';
12913	s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
12914	s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
12915	s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
12916	s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
12917	s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
12918	s << "\tpointPolygons = " << value.pointPolygons << '\n';
12919	s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
12920	s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
12921	s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
12922	s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
12923	s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
12924	s << "\ttriangleFans = " << value.triangleFans << '\n';
12925	s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
12926	s << '}';
12927	return s;
12928}
12929
12930std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
12931{
12932	s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
12933	s << "\tsType = " << value.sType << '\n';
12934	s << "\tpNext = " << value.pNext << '\n';
12935	s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
12936	s << '}';
12937	return s;
12938}
12939
12940std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
12941{
12942	s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
12943	s << "\tsType = " << value.sType << '\n';
12944	s << "\tpNext = " << value.pNext << '\n';
12945	s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
12946	s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
12947	s << '}';
12948	return s;
12949}
12950
12951std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
12952{
12953	s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
12954	s << "\tsType = " << value.sType << '\n';
12955	s << "\tpNext = " << value.pNext << '\n';
12956	s << "\tsubpassShading = " << value.subpassShading << '\n';
12957	s << '}';
12958	return s;
12959}
12960
12961std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
12962{
12963	s << "VkBufferCopy2 = {\n";
12964	s << "\tsType = " << value.sType << '\n';
12965	s << "\tpNext = " << value.pNext << '\n';
12966	s << "\tsrcOffset = " << value.srcOffset << '\n';
12967	s << "\tdstOffset = " << value.dstOffset << '\n';
12968	s << "\tsize = " << value.size << '\n';
12969	s << '}';
12970	return s;
12971}
12972
12973std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
12974{
12975	s << "VkImageCopy2 = {\n";
12976	s << "\tsType = " << value.sType << '\n';
12977	s << "\tpNext = " << value.pNext << '\n';
12978	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12979	s << "\tsrcOffset = " << value.srcOffset << '\n';
12980	s << "\tdstSubresource = " << value.dstSubresource << '\n';
12981	s << "\tdstOffset = " << value.dstOffset << '\n';
12982	s << "\textent = " << value.extent << '\n';
12983	s << '}';
12984	return s;
12985}
12986
12987std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
12988{
12989	s << "VkImageBlit2 = {\n";
12990	s << "\tsType = " << value.sType << '\n';
12991	s << "\tpNext = " << value.pNext << '\n';
12992	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12993	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
12994	s << "\tdstSubresource = " << value.dstSubresource << '\n';
12995	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
12996	s << '}';
12997	return s;
12998}
12999
13000std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
13001{
13002	s << "VkBufferImageCopy2 = {\n";
13003	s << "\tsType = " << value.sType << '\n';
13004	s << "\tpNext = " << value.pNext << '\n';
13005	s << "\tbufferOffset = " << value.bufferOffset << '\n';
13006	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
13007	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
13008	s << "\timageSubresource = " << value.imageSubresource << '\n';
13009	s << "\timageOffset = " << value.imageOffset << '\n';
13010	s << "\timageExtent = " << value.imageExtent << '\n';
13011	s << '}';
13012	return s;
13013}
13014
13015std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
13016{
13017	s << "VkImageResolve2 = {\n";
13018	s << "\tsType = " << value.sType << '\n';
13019	s << "\tpNext = " << value.pNext << '\n';
13020	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
13021	s << "\tsrcOffset = " << value.srcOffset << '\n';
13022	s << "\tdstSubresource = " << value.dstSubresource << '\n';
13023	s << "\tdstOffset = " << value.dstOffset << '\n';
13024	s << "\textent = " << value.extent << '\n';
13025	s << '}';
13026	return s;
13027}
13028
13029std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
13030{
13031	s << "VkCopyBufferInfo2 = {\n";
13032	s << "\tsType = " << value.sType << '\n';
13033	s << "\tpNext = " << value.pNext << '\n';
13034	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13035	s << "\tdstBuffer = " << value.dstBuffer << '\n';
13036	s << "\tregionCount = " << value.regionCount << '\n';
13037	s << "\tpRegions = " << value.pRegions << '\n';
13038	s << '}';
13039	return s;
13040}
13041
13042std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
13043{
13044	s << "VkCopyImageInfo2 = {\n";
13045	s << "\tsType = " << value.sType << '\n';
13046	s << "\tpNext = " << value.pNext << '\n';
13047	s << "\tsrcImage = " << value.srcImage << '\n';
13048	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13049	s << "\tdstImage = " << value.dstImage << '\n';
13050	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13051	s << "\tregionCount = " << value.regionCount << '\n';
13052	s << "\tpRegions = " << value.pRegions << '\n';
13053	s << '}';
13054	return s;
13055}
13056
13057std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
13058{
13059	s << "VkBlitImageInfo2 = {\n";
13060	s << "\tsType = " << value.sType << '\n';
13061	s << "\tpNext = " << value.pNext << '\n';
13062	s << "\tsrcImage = " << value.srcImage << '\n';
13063	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13064	s << "\tdstImage = " << value.dstImage << '\n';
13065	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13066	s << "\tregionCount = " << value.regionCount << '\n';
13067	s << "\tpRegions = " << value.pRegions << '\n';
13068	s << "\tfilter = " << value.filter << '\n';
13069	s << '}';
13070	return s;
13071}
13072
13073std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
13074{
13075	s << "VkCopyBufferToImageInfo2 = {\n";
13076	s << "\tsType = " << value.sType << '\n';
13077	s << "\tpNext = " << value.pNext << '\n';
13078	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13079	s << "\tdstImage = " << value.dstImage << '\n';
13080	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13081	s << "\tregionCount = " << value.regionCount << '\n';
13082	s << "\tpRegions = " << value.pRegions << '\n';
13083	s << '}';
13084	return s;
13085}
13086
13087std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
13088{
13089	s << "VkCopyImageToBufferInfo2 = {\n";
13090	s << "\tsType = " << value.sType << '\n';
13091	s << "\tpNext = " << value.pNext << '\n';
13092	s << "\tsrcImage = " << value.srcImage << '\n';
13093	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13094	s << "\tdstBuffer = " << value.dstBuffer << '\n';
13095	s << "\tregionCount = " << value.regionCount << '\n';
13096	s << "\tpRegions = " << value.pRegions << '\n';
13097	s << '}';
13098	return s;
13099}
13100
13101std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
13102{
13103	s << "VkResolveImageInfo2 = {\n";
13104	s << "\tsType = " << value.sType << '\n';
13105	s << "\tpNext = " << value.pNext << '\n';
13106	s << "\tsrcImage = " << value.srcImage << '\n';
13107	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
13108	s << "\tdstImage = " << value.dstImage << '\n';
13109	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
13110	s << "\tregionCount = " << value.regionCount << '\n';
13111	s << "\tpRegions = " << value.pRegions << '\n';
13112	s << '}';
13113	return s;
13114}
13115
13116std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
13117{
13118	s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
13119	s << "\tsType = " << value.sType << '\n';
13120	s << "\tpNext = " << value.pNext << '\n';
13121	s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
13122	s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
13123	s << '}';
13124	return s;
13125}
13126
13127std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
13128{
13129	s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
13130	s << "\tsType = " << value.sType << '\n';
13131	s << "\tpNext = " << value.pNext << '\n';
13132	s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
13133	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
13134	s << '}';
13135	return s;
13136}
13137
13138std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
13139{
13140	s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
13141	s << "\tsType = " << value.sType << '\n';
13142	s << "\tpNext = " << value.pNext << '\n';
13143	s << "\tfragmentSize = " << value.fragmentSize << '\n';
13144	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
13145	s << '}';
13146	return s;
13147}
13148
13149std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
13150{
13151	s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
13152	s << "\tsType = " << value.sType << '\n';
13153	s << "\tpNext = " << value.pNext << '\n';
13154	s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
13155	s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
13156	s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
13157	s << '}';
13158	return s;
13159}
13160
13161std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
13162{
13163	s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
13164	s << "\tsType = " << value.sType << '\n';
13165	s << "\tpNext = " << value.pNext << '\n';
13166	s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
13167	s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
13168	s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
13169	s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
13170	s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
13171	s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
13172	s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
13173	s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
13174	s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
13175	s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
13176	s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
13177	s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
13178	s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
13179	s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
13180	s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
13181	s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
13182	s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
13183	s << '}';
13184	return s;
13185}
13186
13187std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
13188{
13189	s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
13190	s << "\tsType = " << value.sType << '\n';
13191	s << "\tpNext = " << value.pNext << '\n';
13192	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
13193	s << "\tfragmentSize = " << value.fragmentSize << '\n';
13194	s << '}';
13195	return s;
13196}
13197
13198std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
13199{
13200	s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
13201	s << "\tsType = " << value.sType << '\n';
13202	s << "\tpNext = " << value.pNext << '\n';
13203	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
13204	s << '}';
13205	return s;
13206}
13207
13208std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
13209{
13210	s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
13211	s << "\tsType = " << value.sType << '\n';
13212	s << "\tpNext = " << value.pNext << '\n';
13213	s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
13214	s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
13215	s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
13216	s << '}';
13217	return s;
13218}
13219
13220std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
13221{
13222	s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
13223	s << "\tsType = " << value.sType << '\n';
13224	s << "\tpNext = " << value.pNext << '\n';
13225	s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
13226	s << '}';
13227	return s;
13228}
13229
13230std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
13231{
13232	s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
13233	s << "\tsType = " << value.sType << '\n';
13234	s << "\tpNext = " << value.pNext << '\n';
13235	s << "\tshadingRateType = " << value.shadingRateType << '\n';
13236	s << "\tshadingRate = " << value.shadingRate << '\n';
13237	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
13238	s << '}';
13239	return s;
13240}
13241
13242std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
13243{
13244	s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
13245	s << "\tsType = " << value.sType << '\n';
13246	s << "\tpNext = " << value.pNext << '\n';
13247	s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
13248	s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
13249	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
13250	s << '}';
13251	return s;
13252}
13253
13254std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
13255{
13256	s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
13257	s << "\tsType = " << value.sType << '\n';
13258	s << "\tpNext = " << value.pNext << '\n';
13259	s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
13260	s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
13261	s << '}';
13262	return s;
13263}
13264
13265std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT& value)
13266{
13267	s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = {\n";
13268	s << "\tsType = " << value.sType << '\n';
13269	s << "\tpNext = " << value.pNext << '\n';
13270	s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
13271	s << '}';
13272	return s;
13273}
13274
13275std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListEXT& value)
13276{
13277	s << "VkMutableDescriptorTypeListEXT = {\n";
13278	s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
13279	s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
13280	s << '}';
13281	return s;
13282}
13283
13284std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoEXT& value)
13285{
13286	s << "VkMutableDescriptorTypeCreateInfoEXT = {\n";
13287	s << "\tsType = " << value.sType << '\n';
13288	s << "\tpNext = " << value.pNext << '\n';
13289	s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
13290	s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
13291	s << '}';
13292	return s;
13293}
13294
13295std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
13296{
13297	s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
13298	s << "\tsType = " << value.sType << '\n';
13299	s << "\tpNext = " << value.pNext << '\n';
13300	s << "\tdepthClipControl = " << value.depthClipControl << '\n';
13301	s << '}';
13302	return s;
13303}
13304
13305std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
13306{
13307	s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
13308	s << "\tsType = " << value.sType << '\n';
13309	s << "\tpNext = " << value.pNext << '\n';
13310	s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
13311	s << '}';
13312	return s;
13313}
13314
13315std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
13316{
13317	s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
13318	s << "\tsType = " << value.sType << '\n';
13319	s << "\tpNext = " << value.pNext << '\n';
13320	s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
13321	s << '}';
13322	return s;
13323}
13324
13325std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
13326{
13327	s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
13328	s << "\tsType = " << value.sType << '\n';
13329	s << "\tpNext = " << value.pNext << '\n';
13330	s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
13331	s << '}';
13332	return s;
13333}
13334
13335std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
13336{
13337	s << "VkVertexInputBindingDescription2EXT = {\n";
13338	s << "\tsType = " << value.sType << '\n';
13339	s << "\tpNext = " << value.pNext << '\n';
13340	s << "\tbinding = " << value.binding << '\n';
13341	s << "\tstride = " << value.stride << '\n';
13342	s << "\tinputRate = " << value.inputRate << '\n';
13343	s << "\tdivisor = " << value.divisor << '\n';
13344	s << '}';
13345	return s;
13346}
13347
13348std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
13349{
13350	s << "VkVertexInputAttributeDescription2EXT = {\n";
13351	s << "\tsType = " << value.sType << '\n';
13352	s << "\tpNext = " << value.pNext << '\n';
13353	s << "\tlocation = " << value.location << '\n';
13354	s << "\tbinding = " << value.binding << '\n';
13355	s << "\tformat = " << value.format << '\n';
13356	s << "\toffset = " << value.offset << '\n';
13357	s << '}';
13358	return s;
13359}
13360
13361std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
13362{
13363	s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
13364	s << "\tsType = " << value.sType << '\n';
13365	s << "\tpNext = " << value.pNext << '\n';
13366	s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
13367	s << '}';
13368	return s;
13369}
13370
13371std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
13372{
13373	s << "VkPipelineColorWriteCreateInfoEXT = {\n";
13374	s << "\tsType = " << value.sType << '\n';
13375	s << "\tpNext = " << value.pNext << '\n';
13376	s << "\tattachmentCount = " << value.attachmentCount << '\n';
13377	s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
13378	s << '}';
13379	return s;
13380}
13381
13382std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
13383{
13384	s << "VkMemoryBarrier2 = {\n";
13385	s << "\tsType = " << value.sType << '\n';
13386	s << "\tpNext = " << value.pNext << '\n';
13387	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13388	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13389	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13390	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13391	s << '}';
13392	return s;
13393}
13394
13395std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
13396{
13397	s << "VkImageMemoryBarrier2 = {\n";
13398	s << "\tsType = " << value.sType << '\n';
13399	s << "\tpNext = " << value.pNext << '\n';
13400	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13401	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13402	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13403	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13404	s << "\toldLayout = " << value.oldLayout << '\n';
13405	s << "\tnewLayout = " << value.newLayout << '\n';
13406	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
13407	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
13408	s << "\timage = " << value.image << '\n';
13409	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
13410	s << '}';
13411	return s;
13412}
13413
13414std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
13415{
13416	s << "VkBufferMemoryBarrier2 = {\n";
13417	s << "\tsType = " << value.sType << '\n';
13418	s << "\tpNext = " << value.pNext << '\n';
13419	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13420	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13421	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13422	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13423	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
13424	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
13425	s << "\tbuffer = " << value.buffer << '\n';
13426	s << "\toffset = " << value.offset << '\n';
13427	s << "\tsize = " << value.size << '\n';
13428	s << '}';
13429	return s;
13430}
13431
13432std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
13433{
13434	s << "VkDependencyInfo = {\n";
13435	s << "\tsType = " << value.sType << '\n';
13436	s << "\tpNext = " << value.pNext << '\n';
13437	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
13438	s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
13439	s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
13440	s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
13441	s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
13442	s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
13443	s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
13444	s << '}';
13445	return s;
13446}
13447
13448std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
13449{
13450	s << "VkSemaphoreSubmitInfo = {\n";
13451	s << "\tsType = " << value.sType << '\n';
13452	s << "\tpNext = " << value.pNext << '\n';
13453	s << "\tsemaphore = " << value.semaphore << '\n';
13454	s << "\tvalue = " << value.value << '\n';
13455	s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
13456	s << "\tdeviceIndex = " << value.deviceIndex << '\n';
13457	s << '}';
13458	return s;
13459}
13460
13461std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
13462{
13463	s << "VkCommandBufferSubmitInfo = {\n";
13464	s << "\tsType = " << value.sType << '\n';
13465	s << "\tpNext = " << value.pNext << '\n';
13466	s << "\tcommandBuffer = " << value.commandBuffer << '\n';
13467	s << "\tdeviceMask = " << value.deviceMask << '\n';
13468	s << '}';
13469	return s;
13470}
13471
13472std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
13473{
13474	s << "VkSubmitInfo2 = {\n";
13475	s << "\tsType = " << value.sType << '\n';
13476	s << "\tpNext = " << value.pNext << '\n';
13477	s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
13478	s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
13479	s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
13480	s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
13481	s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
13482	s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
13483	s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
13484	s << '}';
13485	return s;
13486}
13487
13488std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
13489{
13490	s << "VkQueueFamilyCheckpointProperties2NV = {\n";
13491	s << "\tsType = " << value.sType << '\n';
13492	s << "\tpNext = " << value.pNext << '\n';
13493	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
13494	s << '}';
13495	return s;
13496}
13497
13498std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
13499{
13500	s << "VkCheckpointData2NV = {\n";
13501	s << "\tsType = " << value.sType << '\n';
13502	s << "\tpNext = " << value.pNext << '\n';
13503	s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
13504	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
13505	s << '}';
13506	return s;
13507}
13508
13509std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
13510{
13511	s << "VkPhysicalDeviceSynchronization2Features = {\n";
13512	s << "\tsType = " << value.sType << '\n';
13513	s << "\tpNext = " << value.pNext << '\n';
13514	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
13515	s << '}';
13516	return s;
13517}
13518
13519std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
13520{
13521	s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
13522	s << "\tsType = " << value.sType << '\n';
13523	s << "\tpNext = " << value.pNext << '\n';
13524	s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
13525	s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
13526	s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
13527	s << '}';
13528	return s;
13529}
13530
13531std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyDitheringFeaturesEXT& value)
13532{
13533	s << "VkPhysicalDeviceLegacyDitheringFeaturesEXT = {\n";
13534	s << "\tsType = " << value.sType << '\n';
13535	s << "\tpNext = " << value.pNext << '\n';
13536	s << "\tlegacyDithering = " << value.legacyDithering << '\n';
13537	s << '}';
13538	return s;
13539}
13540
13541std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
13542{
13543	s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
13544	s << "\tsType = " << value.sType << '\n';
13545	s << "\tpNext = " << value.pNext << '\n';
13546	s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
13547	s << '}';
13548	return s;
13549}
13550
13551std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
13552{
13553	s << "VkSubpassResolvePerformanceQueryEXT = {\n";
13554	s << "\tsType = " << value.sType << '\n';
13555	s << "\tpNext = " << value.pNext << '\n';
13556	s << "\toptimal = " << value.optimal << '\n';
13557	s << '}';
13558	return s;
13559}
13560
13561std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
13562{
13563	s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
13564	s << "\tsType = " << value.sType << '\n';
13565	s << "\tpNext = " << value.pNext << '\n';
13566	s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
13567	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
13568	s << '}';
13569	return s;
13570}
13571
13572std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT& value)
13573{
13574	s << "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT = {\n";
13575	s << "\tsType = " << value.sType << '\n';
13576	s << "\tpNext = " << value.pNext << '\n';
13577	s << "\tpipelineProtectedAccess = " << value.pipelineProtectedAccess << '\n';
13578	s << '}';
13579	return s;
13580}
13581
13582std::ostream& operator<< (std::ostream& s, const VkQueueFamilyVideoPropertiesKHR& value)
13583{
13584	s << "VkQueueFamilyVideoPropertiesKHR = {\n";
13585	s << "\tsType = " << value.sType << '\n';
13586	s << "\tpNext = " << value.pNext << '\n';
13587	s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
13588	s << '}';
13589	return s;
13590}
13591
13592std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusPropertiesKHR& value)
13593{
13594	s << "VkQueueFamilyQueryResultStatusPropertiesKHR = {\n";
13595	s << "\tsType = " << value.sType << '\n';
13596	s << "\tpNext = " << value.pNext << '\n';
13597	s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
13598	s << '}';
13599	return s;
13600}
13601
13602std::ostream& operator<< (std::ostream& s, const VkVideoProfileListInfoKHR& value)
13603{
13604	s << "VkVideoProfileListInfoKHR = {\n";
13605	s << "\tsType = " << value.sType << '\n';
13606	s << "\tpNext = " << value.pNext << '\n';
13607	s << "\tprofileCount = " << value.profileCount << '\n';
13608	s << "\tpProfiles = " << value.pProfiles << '\n';
13609	s << '}';
13610	return s;
13611}
13612
13613std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
13614{
13615	s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
13616	s << "\tsType = " << value.sType << '\n';
13617	s << "\tpNext = " << value.pNext << '\n';
13618	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
13619	s << '}';
13620	return s;
13621}
13622
13623std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
13624{
13625	s << "VkVideoFormatPropertiesKHR = {\n";
13626	s << "\tsType = " << value.sType << '\n';
13627	s << "\tpNext = " << value.pNext << '\n';
13628	s << "\tformat = " << value.format << '\n';
13629	s << "\tcomponentMapping = " << value.componentMapping << '\n';
13630	s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
13631	s << "\timageType = " << value.imageType << '\n';
13632	s << "\timageTiling = " << value.imageTiling << '\n';
13633	s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
13634	s << '}';
13635	return s;
13636}
13637
13638std::ostream& operator<< (std::ostream& s, const VkVideoProfileInfoKHR& value)
13639{
13640	s << "VkVideoProfileInfoKHR = {\n";
13641	s << "\tsType = " << value.sType << '\n';
13642	s << "\tpNext = " << value.pNext << '\n';
13643	s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
13644	s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
13645	s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
13646	s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
13647	s << '}';
13648	return s;
13649}
13650
13651std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
13652{
13653	s << "VkVideoCapabilitiesKHR = {\n";
13654	s << "\tsType = " << value.sType << '\n';
13655	s << "\tpNext = " << value.pNext << '\n';
13656	s << "\tflags = " << getVideoCapabilityFlagsKHRStr(value.flags) << '\n';
13657	s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
13658	s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
13659	s << "\tpictureAccessGranularity = " << value.pictureAccessGranularity << '\n';
13660	s << "\tminCodedExtent = " << value.minCodedExtent << '\n';
13661	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13662	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
13663	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
13664	s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
13665	s << '}';
13666	return s;
13667}
13668
13669std::ostream& operator<< (std::ostream& s, const VkVideoSessionMemoryRequirementsKHR& value)
13670{
13671	s << "VkVideoSessionMemoryRequirementsKHR = {\n";
13672	s << "\tsType = " << value.sType << '\n';
13673	s << "\tpNext = " << value.pNext << '\n';
13674	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13675	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
13676	s << '}';
13677	return s;
13678}
13679
13680std::ostream& operator<< (std::ostream& s, const VkBindVideoSessionMemoryInfoKHR& value)
13681{
13682	s << "VkBindVideoSessionMemoryInfoKHR = {\n";
13683	s << "\tsType = " << value.sType << '\n';
13684	s << "\tpNext = " << value.pNext << '\n';
13685	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13686	s << "\tmemory = " << value.memory << '\n';
13687	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
13688	s << "\tmemorySize = " << value.memorySize << '\n';
13689	s << '}';
13690	return s;
13691}
13692
13693std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceInfoKHR& value)
13694{
13695	s << "VkVideoPictureResourceInfoKHR = {\n";
13696	s << "\tsType = " << value.sType << '\n';
13697	s << "\tpNext = " << value.pNext << '\n';
13698	s << "\tcodedOffset = " << value.codedOffset << '\n';
13699	s << "\tcodedExtent = " << value.codedExtent << '\n';
13700	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
13701	s << "\timageViewBinding = " << value.imageViewBinding << '\n';
13702	s << '}';
13703	return s;
13704}
13705
13706std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotInfoKHR& value)
13707{
13708	s << "VkVideoReferenceSlotInfoKHR = {\n";
13709	s << "\tsType = " << value.sType << '\n';
13710	s << "\tpNext = " << value.pNext << '\n';
13711	s << "\tslotIndex = " << value.slotIndex << '\n';
13712	s << "\tpPictureResource = " << value.pPictureResource << '\n';
13713	s << '}';
13714	return s;
13715}
13716
13717std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
13718{
13719	s << "VkVideoDecodeCapabilitiesKHR = {\n";
13720	s << "\tsType = " << value.sType << '\n';
13721	s << "\tpNext = " << value.pNext << '\n';
13722	s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
13723	s << '}';
13724	return s;
13725}
13726
13727std::ostream& operator<< (std::ostream& s, const VkVideoDecodeUsageInfoKHR& value)
13728{
13729	s << "VkVideoDecodeUsageInfoKHR = {\n";
13730	s << "\tsType = " << value.sType << '\n';
13731	s << "\tpNext = " << value.pNext << '\n';
13732	s << "\tvideoUsageHints = " << getVideoDecodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13733	s << '}';
13734	return s;
13735}
13736
13737std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
13738{
13739	s << "VkVideoDecodeInfoKHR = {\n";
13740	s << "\tsType = " << value.sType << '\n';
13741	s << "\tpNext = " << value.pNext << '\n';
13742	s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
13743	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13744	s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
13745	s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
13746	s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
13747	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13748	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13749	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13750	s << '}';
13751	return s;
13752}
13753
13754std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileInfoKHR& value)
13755{
13756	s << "VkVideoDecodeH264ProfileInfoKHR = {\n";
13757	s << "\tsType = " << value.sType << '\n';
13758	s << "\tpNext = " << value.pNext << '\n';
13759	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13760	s << "\tpictureLayout = " << value.pictureLayout << '\n';
13761	s << '}';
13762	return s;
13763}
13764
13765std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesKHR& value)
13766{
13767	s << "VkVideoDecodeH264CapabilitiesKHR = {\n";
13768	s << "\tsType = " << value.sType << '\n';
13769	s << "\tpNext = " << value.pNext << '\n';
13770	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
13771	s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
13772	s << '}';
13773	return s;
13774}
13775
13776std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoKHR& value)
13777{
13778	s << "VkVideoDecodeH264SessionParametersAddInfoKHR = {\n";
13779	s << "\tsType = " << value.sType << '\n';
13780	s << "\tpNext = " << value.pNext << '\n';
13781	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13782	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13783	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13784	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13785	s << '}';
13786	return s;
13787}
13788
13789std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoKHR& value)
13790{
13791	s << "VkVideoDecodeH264SessionParametersCreateInfoKHR = {\n";
13792	s << "\tsType = " << value.sType << '\n';
13793	s << "\tpNext = " << value.pNext << '\n';
13794	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13795	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13796	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13797	s << '}';
13798	return s;
13799}
13800
13801std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoKHR& value)
13802{
13803	s << "VkVideoDecodeH264PictureInfoKHR = {\n";
13804	s << "\tsType = " << value.sType << '\n';
13805	s << "\tpNext = " << value.pNext << '\n';
13806	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13807	s << "\tsliceCount = " << value.sliceCount << '\n';
13808	s << "\tpSliceOffsets = " << value.pSliceOffsets << '\n';
13809	s << '}';
13810	return s;
13811}
13812
13813std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoKHR& value)
13814{
13815	s << "VkVideoDecodeH264DpbSlotInfoKHR = {\n";
13816	s << "\tsType = " << value.sType << '\n';
13817	s << "\tpNext = " << value.pNext << '\n';
13818	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13819	s << '}';
13820	return s;
13821}
13822
13823std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileInfoKHR& value)
13824{
13825	s << "VkVideoDecodeH265ProfileInfoKHR = {\n";
13826	s << "\tsType = " << value.sType << '\n';
13827	s << "\tpNext = " << value.pNext << '\n';
13828	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13829	s << '}';
13830	return s;
13831}
13832
13833std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesKHR& value)
13834{
13835	s << "VkVideoDecodeH265CapabilitiesKHR = {\n";
13836	s << "\tsType = " << value.sType << '\n';
13837	s << "\tpNext = " << value.pNext << '\n';
13838	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
13839	s << '}';
13840	return s;
13841}
13842
13843std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoKHR& value)
13844{
13845	s << "VkVideoDecodeH265SessionParametersAddInfoKHR = {\n";
13846	s << "\tsType = " << value.sType << '\n';
13847	s << "\tpNext = " << value.pNext << '\n';
13848	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
13849	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
13850	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13851	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13852	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13853	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13854	s << '}';
13855	return s;
13856}
13857
13858std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoKHR& value)
13859{
13860	s << "VkVideoDecodeH265SessionParametersCreateInfoKHR = {\n";
13861	s << "\tsType = " << value.sType << '\n';
13862	s << "\tpNext = " << value.pNext << '\n';
13863	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
13864	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13865	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13866	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13867	s << '}';
13868	return s;
13869}
13870
13871std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoKHR& value)
13872{
13873	s << "VkVideoDecodeH265PictureInfoKHR = {\n";
13874	s << "\tsType = " << value.sType << '\n';
13875	s << "\tpNext = " << value.pNext << '\n';
13876	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13877	s << "\tsliceSegmentCount = " << value.sliceSegmentCount << '\n';
13878	s << "\tpSliceSegmentOffsets = " << value.pSliceSegmentOffsets << '\n';
13879	s << '}';
13880	return s;
13881}
13882
13883std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoKHR& value)
13884{
13885	s << "VkVideoDecodeH265DpbSlotInfoKHR = {\n";
13886	s << "\tsType = " << value.sType << '\n';
13887	s << "\tpNext = " << value.pNext << '\n';
13888	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13889	s << '}';
13890	return s;
13891}
13892
13893std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
13894{
13895	s << "VkVideoSessionCreateInfoKHR = {\n";
13896	s << "\tsType = " << value.sType << '\n';
13897	s << "\tpNext = " << value.pNext << '\n';
13898	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
13899	s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
13900	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
13901	s << "\tpictureFormat = " << value.pictureFormat << '\n';
13902	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13903	s << "\treferencePictureFormat = " << value.referencePictureFormat << '\n';
13904	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
13905	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
13906	s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
13907	s << '}';
13908	return s;
13909}
13910
13911std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
13912{
13913	s << "VkVideoSessionParametersCreateInfoKHR = {\n";
13914	s << "\tsType = " << value.sType << '\n';
13915	s << "\tpNext = " << value.pNext << '\n';
13916	s << "\tflags = " << getVideoSessionParametersCreateFlagsKHRStr(value.flags) << '\n';
13917	s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
13918	s << "\tvideoSession = " << value.videoSession << '\n';
13919	s << '}';
13920	return s;
13921}
13922
13923std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
13924{
13925	s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
13926	s << "\tsType = " << value.sType << '\n';
13927	s << "\tpNext = " << value.pNext << '\n';
13928	s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
13929	s << '}';
13930	return s;
13931}
13932
13933std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
13934{
13935	s << "VkVideoBeginCodingInfoKHR = {\n";
13936	s << "\tsType = " << value.sType << '\n';
13937	s << "\tpNext = " << value.pNext << '\n';
13938	s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
13939	s << "\tvideoSession = " << value.videoSession << '\n';
13940	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
13941	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13942	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13943	s << '}';
13944	return s;
13945}
13946
13947std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
13948{
13949	s << "VkVideoEndCodingInfoKHR = {\n";
13950	s << "\tsType = " << value.sType << '\n';
13951	s << "\tpNext = " << value.pNext << '\n';
13952	s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
13953	s << '}';
13954	return s;
13955}
13956
13957std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
13958{
13959	s << "VkVideoCodingControlInfoKHR = {\n";
13960	s << "\tsType = " << value.sType << '\n';
13961	s << "\tpNext = " << value.pNext << '\n';
13962	s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
13963	s << '}';
13964	return s;
13965}
13966
13967std::ostream& operator<< (std::ostream& s, const VkVideoEncodeUsageInfoKHR& value)
13968{
13969	s << "VkVideoEncodeUsageInfoKHR = {\n";
13970	s << "\tsType = " << value.sType << '\n';
13971	s << "\tpNext = " << value.pNext << '\n';
13972	s << "\tvideoUsageHints = " << getVideoEncodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13973	s << "\tvideoContentHints = " << getVideoEncodeContentFlagsKHRStr(value.videoContentHints) << '\n';
13974	s << "\ttuningMode = " << value.tuningMode << '\n';
13975	s << '}';
13976	return s;
13977}
13978
13979std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
13980{
13981	s << "VkVideoEncodeInfoKHR = {\n";
13982	s << "\tsType = " << value.sType << '\n';
13983	s << "\tpNext = " << value.pNext << '\n';
13984	s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
13985	s << "\tqualityLevel = " << value.qualityLevel << '\n';
13986	s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
13987	s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
13988	s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
13989	s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
13990	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13991	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13992	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13993	s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
13994	s << '}';
13995	return s;
13996}
13997
13998std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
13999{
14000	s << "VkVideoEncodeRateControlInfoKHR = {\n";
14001	s << "\tsType = " << value.sType << '\n';
14002	s << "\tpNext = " << value.pNext << '\n';
14003	s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
14004	s << "\trateControlMode = " << value.rateControlMode << '\n';
14005	s << "\tlayerCount = " << value.layerCount << '\n';
14006	s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
14007	s << '}';
14008	return s;
14009}
14010
14011std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
14012{
14013	s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
14014	s << "\tsType = " << value.sType << '\n';
14015	s << "\tpNext = " << value.pNext << '\n';
14016	s << "\taverageBitrate = " << value.averageBitrate << '\n';
14017	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
14018	s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
14019	s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
14020	s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
14021	s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
14022	s << '}';
14023	return s;
14024}
14025
14026std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
14027{
14028	s << "VkVideoEncodeCapabilitiesKHR = {\n";
14029	s << "\tsType = " << value.sType << '\n';
14030	s << "\tpNext = " << value.pNext << '\n';
14031	s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
14032	s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
14033	s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
14034	s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
14035	s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
14036	s << '}';
14037	return s;
14038}
14039
14040std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
14041{
14042	s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
14043	s << "\tsType = " << value.sType << '\n';
14044	s << "\tpNext = " << value.pNext << '\n';
14045	s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
14046	s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
14047	s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
14048	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
14049	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
14050	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
14051	s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
14052	s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
14053	s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
14054	s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
14055	s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
14056	s << '}';
14057	return s;
14058}
14059
14060std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
14061{
14062	s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
14063	s << "\tsType = " << value.sType << '\n';
14064	s << "\tpNext = " << value.pNext << '\n';
14065	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
14066	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
14067	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
14068	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
14069	s << '}';
14070	return s;
14071}
14072
14073std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
14074{
14075	s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
14076	s << "\tsType = " << value.sType << '\n';
14077	s << "\tpNext = " << value.pNext << '\n';
14078	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
14079	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
14080	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14081	s << '}';
14082	return s;
14083}
14084
14085std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
14086{
14087	s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
14088	s << "\tsType = " << value.sType << '\n';
14089	s << "\tpNext = " << value.pNext << '\n';
14090	s << "\tslotIndex = " << value.slotIndex << '\n';
14091	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14092	s << '}';
14093	return s;
14094}
14095
14096std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
14097{
14098	s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
14099	s << "\tsType = " << value.sType << '\n';
14100	s << "\tpNext = " << value.pNext << '\n';
14101	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14102	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
14103	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
14104	s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
14105	s << '}';
14106	return s;
14107}
14108
14109std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsInfoEXT& value)
14110{
14111	s << "VkVideoEncodeH264ReferenceListsInfoEXT = {\n";
14112	s << "\tsType = " << value.sType << '\n';
14113	s << "\tpNext = " << value.pNext << '\n';
14114	s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
14115	s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
14116	s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
14117	s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
14118	s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
14119	s << '}';
14120	return s;
14121}
14122
14123std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersInfoEXT& value)
14124{
14125	s << "VkVideoEncodeH264EmitPictureParametersInfoEXT = {\n";
14126	s << "\tsType = " << value.sType << '\n';
14127	s << "\tpNext = " << value.pNext << '\n';
14128	s << "\tspsId = " << value.spsId << '\n';
14129	s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
14130	s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
14131	s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
14132	s << '}';
14133	return s;
14134}
14135
14136std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileInfoEXT& value)
14137{
14138	s << "VkVideoEncodeH264ProfileInfoEXT = {\n";
14139	s << "\tsType = " << value.sType << '\n';
14140	s << "\tpNext = " << value.pNext << '\n';
14141	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14142	s << '}';
14143	return s;
14144}
14145
14146std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceInfoEXT& value)
14147{
14148	s << "VkVideoEncodeH264NaluSliceInfoEXT = {\n";
14149	s << "\tsType = " << value.sType << '\n';
14150	s << "\tpNext = " << value.pNext << '\n';
14151	s << "\tmbCount = " << value.mbCount << '\n';
14152	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14153	s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
14154	s << '}';
14155	return s;
14156}
14157
14158std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
14159{
14160	s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
14161	s << "\tsType = " << value.sType << '\n';
14162	s << "\tpNext = " << value.pNext << '\n';
14163	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
14164	s << "\tidrPeriod = " << value.idrPeriod << '\n';
14165	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
14166	s << "\trateControlStructure = " << value.rateControlStructure << '\n';
14167	s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
14168	s << '}';
14169	return s;
14170}
14171
14172std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
14173{
14174	s << "VkVideoEncodeH264QpEXT = {\n";
14175	s << "\tqpI = " << value.qpI << '\n';
14176	s << "\tqpP = " << value.qpP << '\n';
14177	s << "\tqpB = " << value.qpB << '\n';
14178	s << '}';
14179	return s;
14180}
14181
14182std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
14183{
14184	s << "VkVideoEncodeH264FrameSizeEXT = {\n";
14185	s << "\tframeISize = " << value.frameISize << '\n';
14186	s << "\tframePSize = " << value.framePSize << '\n';
14187	s << "\tframeBSize = " << value.frameBSize << '\n';
14188	s << '}';
14189	return s;
14190}
14191
14192std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
14193{
14194	s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
14195	s << "\tsType = " << value.sType << '\n';
14196	s << "\tpNext = " << value.pNext << '\n';
14197	s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
14198	s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
14199	s << "\tinitialRcQp = " << value.initialRcQp << '\n';
14200	s << "\tuseMinQp = " << value.useMinQp << '\n';
14201	s << "\tminQp = " << value.minQp << '\n';
14202	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
14203	s << "\tmaxQp = " << value.maxQp << '\n';
14204	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
14205	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
14206	s << '}';
14207	return s;
14208}
14209
14210std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
14211{
14212	s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
14213	s << "\tsType = " << value.sType << '\n';
14214	s << "\tpNext = " << value.pNext << '\n';
14215	s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
14216	s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
14217	s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
14218	s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
14219	s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
14220	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
14221	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
14222	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
14223	s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
14224	s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
14225	s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
14226	s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
14227	s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
14228	s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
14229	s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
14230	s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
14231	s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
14232	s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
14233	s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
14234	s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
14235	s << '}';
14236	return s;
14237}
14238
14239std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
14240{
14241	s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
14242	s << "\tsType = " << value.sType << '\n';
14243	s << "\tpNext = " << value.pNext << '\n';
14244	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
14245	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
14246	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
14247	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
14248	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
14249	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
14250	s << '}';
14251	return s;
14252}
14253
14254std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
14255{
14256	s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
14257	s << "\tsType = " << value.sType << '\n';
14258	s << "\tpNext = " << value.pNext << '\n';
14259	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
14260	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
14261	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
14262	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14263	s << '}';
14264	return s;
14265}
14266
14267std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
14268{
14269	s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
14270	s << "\tsType = " << value.sType << '\n';
14271	s << "\tpNext = " << value.pNext << '\n';
14272	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14273	s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
14274	s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
14275	s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
14276	s << '}';
14277	return s;
14278}
14279
14280std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersInfoEXT& value)
14281{
14282	s << "VkVideoEncodeH265EmitPictureParametersInfoEXT = {\n";
14283	s << "\tsType = " << value.sType << '\n';
14284	s << "\tpNext = " << value.pNext << '\n';
14285	s << "\tvpsId = " << value.vpsId << '\n';
14286	s << "\tspsId = " << value.spsId << '\n';
14287	s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
14288	s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
14289	s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
14290	s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
14291	s << '}';
14292	return s;
14293}
14294
14295std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentInfoEXT& value)
14296{
14297	s << "VkVideoEncodeH265NaluSliceSegmentInfoEXT = {\n";
14298	s << "\tsType = " << value.sType << '\n';
14299	s << "\tpNext = " << value.pNext << '\n';
14300	s << "\tctbCount = " << value.ctbCount << '\n';
14301	s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14302	s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
14303	s << '}';
14304	return s;
14305}
14306
14307std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
14308{
14309	s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
14310	s << "\tsType = " << value.sType << '\n';
14311	s << "\tpNext = " << value.pNext << '\n';
14312	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
14313	s << "\tidrPeriod = " << value.idrPeriod << '\n';
14314	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
14315	s << "\trateControlStructure = " << value.rateControlStructure << '\n';
14316	s << "\tsubLayerCount = " << value.subLayerCount << '\n';
14317	s << '}';
14318	return s;
14319}
14320
14321std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
14322{
14323	s << "VkVideoEncodeH265QpEXT = {\n";
14324	s << "\tqpI = " << value.qpI << '\n';
14325	s << "\tqpP = " << value.qpP << '\n';
14326	s << "\tqpB = " << value.qpB << '\n';
14327	s << '}';
14328	return s;
14329}
14330
14331std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
14332{
14333	s << "VkVideoEncodeH265FrameSizeEXT = {\n";
14334	s << "\tframeISize = " << value.frameISize << '\n';
14335	s << "\tframePSize = " << value.framePSize << '\n';
14336	s << "\tframeBSize = " << value.frameBSize << '\n';
14337	s << '}';
14338	return s;
14339}
14340
14341std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
14342{
14343	s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
14344	s << "\tsType = " << value.sType << '\n';
14345	s << "\tpNext = " << value.pNext << '\n';
14346	s << "\ttemporalId = " << value.temporalId << '\n';
14347	s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
14348	s << "\tinitialRcQp = " << value.initialRcQp << '\n';
14349	s << "\tuseMinQp = " << value.useMinQp << '\n';
14350	s << "\tminQp = " << value.minQp << '\n';
14351	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
14352	s << "\tmaxQp = " << value.maxQp << '\n';
14353	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
14354	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
14355	s << '}';
14356	return s;
14357}
14358
14359std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileInfoEXT& value)
14360{
14361	s << "VkVideoEncodeH265ProfileInfoEXT = {\n";
14362	s << "\tsType = " << value.sType << '\n';
14363	s << "\tpNext = " << value.pNext << '\n';
14364	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14365	s << '}';
14366	return s;
14367}
14368
14369std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
14370{
14371	s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
14372	s << "\tsType = " << value.sType << '\n';
14373	s << "\tpNext = " << value.pNext << '\n';
14374	s << "\tslotIndex = " << value.slotIndex << '\n';
14375	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14376	s << '}';
14377	return s;
14378}
14379
14380std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsInfoEXT& value)
14381{
14382	s << "VkVideoEncodeH265ReferenceListsInfoEXT = {\n";
14383	s << "\tsType = " << value.sType << '\n';
14384	s << "\tpNext = " << value.pNext << '\n';
14385	s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
14386	s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
14387	s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
14388	s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
14389	s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
14390	s << '}';
14391	return s;
14392}
14393
14394std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
14395{
14396	s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
14397	s << "\tsType = " << value.sType << '\n';
14398	s << "\tpNext = " << value.pNext << '\n';
14399	s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
14400	s << '}';
14401	return s;
14402}
14403
14404std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
14405{
14406	s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
14407	s << "\tsType = " << value.sType << '\n';
14408	s << "\tpNext = " << value.pNext << '\n';
14409	s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
14410	s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
14411	s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
14412	s << '}';
14413	return s;
14414}
14415
14416std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
14417{
14418	s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
14419	s << "\tsType = " << value.sType << '\n';
14420	s << "\tpNext = " << value.pNext << '\n';
14421	s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
14422	s << '}';
14423	return s;
14424}
14425
14426std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
14427{
14428	s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
14429	s << "\tsType = " << value.sType << '\n';
14430	s << "\tpNext = " << value.pNext << '\n';
14431	s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
14432	s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
14433	s << '}';
14434	return s;
14435}
14436
14437std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
14438{
14439	s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
14440	s << "\tsType = " << value.sType << '\n';
14441	s << "\tpNext = " << value.pNext << '\n';
14442	s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
14443	s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
14444	s << '}';
14445	return s;
14446}
14447
14448std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
14449{
14450	s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
14451	s << "\tsType = " << value.sType << '\n';
14452	s << "\tpNext = " << value.pNext << '\n';
14453	s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
14454	s << '}';
14455	return s;
14456}
14457
14458std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
14459{
14460	s << "VkCuModuleCreateInfoNVX = {\n";
14461	s << "\tsType = " << value.sType << '\n';
14462	s << "\tpNext = " << value.pNext << '\n';
14463	s << "\tdataSize = " << value.dataSize << '\n';
14464	s << "\tpData = " << value.pData << '\n';
14465	s << '}';
14466	return s;
14467}
14468
14469std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
14470{
14471	s << "VkCuFunctionCreateInfoNVX = {\n";
14472	s << "\tsType = " << value.sType << '\n';
14473	s << "\tpNext = " << value.pNext << '\n';
14474	s << "\tmodule = " << value.module << '\n';
14475	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
14476	s << '}';
14477	return s;
14478}
14479
14480std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
14481{
14482	s << "VkCuLaunchInfoNVX = {\n";
14483	s << "\tsType = " << value.sType << '\n';
14484	s << "\tpNext = " << value.pNext << '\n';
14485	s << "\tfunction = " << value.function << '\n';
14486	s << "\tgridDimX = " << value.gridDimX << '\n';
14487	s << "\tgridDimY = " << value.gridDimY << '\n';
14488	s << "\tgridDimZ = " << value.gridDimZ << '\n';
14489	s << "\tblockDimX = " << value.blockDimX << '\n';
14490	s << "\tblockDimY = " << value.blockDimY << '\n';
14491	s << "\tblockDimZ = " << value.blockDimZ << '\n';
14492	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
14493	s << "\tparamCount = " << value.paramCount << '\n';
14494	s << "\tpParams = " << value.pParams << '\n';
14495	s << "\textraCount = " << value.extraCount << '\n';
14496	s << "\tpExtras = " << value.pExtras << '\n';
14497	s << '}';
14498	return s;
14499}
14500
14501std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferFeaturesEXT& value)
14502{
14503	s << "VkPhysicalDeviceDescriptorBufferFeaturesEXT = {\n";
14504	s << "\tsType = " << value.sType << '\n';
14505	s << "\tpNext = " << value.pNext << '\n';
14506	s << "\tdescriptorBuffer = " << value.descriptorBuffer << '\n';
14507	s << "\tdescriptorBufferCaptureReplay = " << value.descriptorBufferCaptureReplay << '\n';
14508	s << "\tdescriptorBufferImageLayoutIgnored = " << value.descriptorBufferImageLayoutIgnored << '\n';
14509	s << "\tdescriptorBufferPushDescriptors = " << value.descriptorBufferPushDescriptors << '\n';
14510	s << '}';
14511	return s;
14512}
14513
14514std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferPropertiesEXT& value)
14515{
14516	s << "VkPhysicalDeviceDescriptorBufferPropertiesEXT = {\n";
14517	s << "\tsType = " << value.sType << '\n';
14518	s << "\tpNext = " << value.pNext << '\n';
14519	s << "\tcombinedImageSamplerDescriptorSingleArray = " << value.combinedImageSamplerDescriptorSingleArray << '\n';
14520	s << "\tbufferlessPushDescriptors = " << value.bufferlessPushDescriptors << '\n';
14521	s << "\tallowSamplerImageViewPostSubmitCreation = " << value.allowSamplerImageViewPostSubmitCreation << '\n';
14522	s << "\tdescriptorBufferOffsetAlignment = " << value.descriptorBufferOffsetAlignment << '\n';
14523	s << "\tmaxDescriptorBufferBindings = " << value.maxDescriptorBufferBindings << '\n';
14524	s << "\tmaxResourceDescriptorBufferBindings = " << value.maxResourceDescriptorBufferBindings << '\n';
14525	s << "\tmaxSamplerDescriptorBufferBindings = " << value.maxSamplerDescriptorBufferBindings << '\n';
14526	s << "\tmaxEmbeddedImmutableSamplerBindings = " << value.maxEmbeddedImmutableSamplerBindings << '\n';
14527	s << "\tmaxEmbeddedImmutableSamplers = " << value.maxEmbeddedImmutableSamplers << '\n';
14528	s << "\tbufferCaptureReplayDescriptorDataSize = " << value.bufferCaptureReplayDescriptorDataSize << '\n';
14529	s << "\timageCaptureReplayDescriptorDataSize = " << value.imageCaptureReplayDescriptorDataSize << '\n';
14530	s << "\timageViewCaptureReplayDescriptorDataSize = " << value.imageViewCaptureReplayDescriptorDataSize << '\n';
14531	s << "\tsamplerCaptureReplayDescriptorDataSize = " << value.samplerCaptureReplayDescriptorDataSize << '\n';
14532	s << "\taccelerationStructureCaptureReplayDescriptorDataSize = " << value.accelerationStructureCaptureReplayDescriptorDataSize << '\n';
14533	s << "\tsamplerDescriptorSize = " << value.samplerDescriptorSize << '\n';
14534	s << "\tcombinedImageSamplerDescriptorSize = " << value.combinedImageSamplerDescriptorSize << '\n';
14535	s << "\tsampledImageDescriptorSize = " << value.sampledImageDescriptorSize << '\n';
14536	s << "\tstorageImageDescriptorSize = " << value.storageImageDescriptorSize << '\n';
14537	s << "\tuniformTexelBufferDescriptorSize = " << value.uniformTexelBufferDescriptorSize << '\n';
14538	s << "\trobustUniformTexelBufferDescriptorSize = " << value.robustUniformTexelBufferDescriptorSize << '\n';
14539	s << "\tstorageTexelBufferDescriptorSize = " << value.storageTexelBufferDescriptorSize << '\n';
14540	s << "\trobustStorageTexelBufferDescriptorSize = " << value.robustStorageTexelBufferDescriptorSize << '\n';
14541	s << "\tuniformBufferDescriptorSize = " << value.uniformBufferDescriptorSize << '\n';
14542	s << "\trobustUniformBufferDescriptorSize = " << value.robustUniformBufferDescriptorSize << '\n';
14543	s << "\tstorageBufferDescriptorSize = " << value.storageBufferDescriptorSize << '\n';
14544	s << "\trobustStorageBufferDescriptorSize = " << value.robustStorageBufferDescriptorSize << '\n';
14545	s << "\tinputAttachmentDescriptorSize = " << value.inputAttachmentDescriptorSize << '\n';
14546	s << "\taccelerationStructureDescriptorSize = " << value.accelerationStructureDescriptorSize << '\n';
14547	s << "\tmaxSamplerDescriptorBufferRange = " << value.maxSamplerDescriptorBufferRange << '\n';
14548	s << "\tmaxResourceDescriptorBufferRange = " << value.maxResourceDescriptorBufferRange << '\n';
14549	s << "\tsamplerDescriptorBufferAddressSpaceSize = " << value.samplerDescriptorBufferAddressSpaceSize << '\n';
14550	s << "\tresourceDescriptorBufferAddressSpaceSize = " << value.resourceDescriptorBufferAddressSpaceSize << '\n';
14551	s << "\tdescriptorBufferAddressSpaceSize = " << value.descriptorBufferAddressSpaceSize << '\n';
14552	s << '}';
14553	return s;
14554}
14555
14556std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT& value)
14557{
14558	s << "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = {\n";
14559	s << "\tsType = " << value.sType << '\n';
14560	s << "\tpNext = " << value.pNext << '\n';
14561	s << "\tcombinedImageSamplerDensityMapDescriptorSize = " << value.combinedImageSamplerDensityMapDescriptorSize << '\n';
14562	s << '}';
14563	return s;
14564}
14565
14566std::ostream& operator<< (std::ostream& s, const VkDescriptorAddressInfoEXT& value)
14567{
14568	s << "VkDescriptorAddressInfoEXT = {\n";
14569	s << "\tsType = " << value.sType << '\n';
14570	s << "\tpNext = " << value.pNext << '\n';
14571	s << "\taddress = " << value.address << '\n';
14572	s << "\trange = " << value.range << '\n';
14573	s << "\tformat = " << value.format << '\n';
14574	s << '}';
14575	return s;
14576}
14577
14578std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingInfoEXT& value)
14579{
14580	s << "VkDescriptorBufferBindingInfoEXT = {\n";
14581	s << "\tsType = " << value.sType << '\n';
14582	s << "\tpNext = " << value.pNext << '\n';
14583	s << "\taddress = " << value.address << '\n';
14584	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
14585	s << '}';
14586	return s;
14587}
14588
14589std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT& value)
14590{
14591	s << "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT = {\n";
14592	s << "\tsType = " << value.sType << '\n';
14593	s << "\tpNext = " << value.pNext << '\n';
14594	s << "\tbuffer = " << value.buffer << '\n';
14595	s << '}';
14596	return s;
14597}
14598
14599std::ostream& operator<< (std::ostream& s, const VkDescriptorDataEXT& value)
14600{
14601	s << "VkDescriptorDataEXT = {\n";
14602	s << "\tpSampler = " << value.pSampler << '\n';
14603	s << "\tpCombinedImageSampler = " << value.pCombinedImageSampler << '\n';
14604	s << "\tpInputAttachmentImage = " << value.pInputAttachmentImage << '\n';
14605	s << "\tpSampledImage = " << value.pSampledImage << '\n';
14606	s << "\tpStorageImage = " << value.pStorageImage << '\n';
14607	s << "\tpUniformTexelBuffer = " << value.pUniformTexelBuffer << '\n';
14608	s << "\tpStorageTexelBuffer = " << value.pStorageTexelBuffer << '\n';
14609	s << "\tpUniformBuffer = " << value.pUniformBuffer << '\n';
14610	s << "\tpStorageBuffer = " << value.pStorageBuffer << '\n';
14611	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
14612	s << '}';
14613	return s;
14614}
14615
14616std::ostream& operator<< (std::ostream& s, const VkDescriptorGetInfoEXT& value)
14617{
14618	s << "VkDescriptorGetInfoEXT = {\n";
14619	s << "\tsType = " << value.sType << '\n';
14620	s << "\tpNext = " << value.pNext << '\n';
14621	s << "\ttype = " << value.type << '\n';
14622	s << "\tdata = " << value.data << '\n';
14623	s << '}';
14624	return s;
14625}
14626
14627std::ostream& operator<< (std::ostream& s, const VkBufferCaptureDescriptorDataInfoEXT& value)
14628{
14629	s << "VkBufferCaptureDescriptorDataInfoEXT = {\n";
14630	s << "\tsType = " << value.sType << '\n';
14631	s << "\tpNext = " << value.pNext << '\n';
14632	s << "\tbuffer = " << value.buffer << '\n';
14633	s << '}';
14634	return s;
14635}
14636
14637std::ostream& operator<< (std::ostream& s, const VkImageCaptureDescriptorDataInfoEXT& value)
14638{
14639	s << "VkImageCaptureDescriptorDataInfoEXT = {\n";
14640	s << "\tsType = " << value.sType << '\n';
14641	s << "\tpNext = " << value.pNext << '\n';
14642	s << "\timage = " << value.image << '\n';
14643	s << '}';
14644	return s;
14645}
14646
14647std::ostream& operator<< (std::ostream& s, const VkImageViewCaptureDescriptorDataInfoEXT& value)
14648{
14649	s << "VkImageViewCaptureDescriptorDataInfoEXT = {\n";
14650	s << "\tsType = " << value.sType << '\n';
14651	s << "\tpNext = " << value.pNext << '\n';
14652	s << "\timageView = " << value.imageView << '\n';
14653	s << '}';
14654	return s;
14655}
14656
14657std::ostream& operator<< (std::ostream& s, const VkSamplerCaptureDescriptorDataInfoEXT& value)
14658{
14659	s << "VkSamplerCaptureDescriptorDataInfoEXT = {\n";
14660	s << "\tsType = " << value.sType << '\n';
14661	s << "\tpNext = " << value.pNext << '\n';
14662	s << "\tsampler = " << value.sampler << '\n';
14663	s << '}';
14664	return s;
14665}
14666
14667std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCaptureDescriptorDataInfoEXT& value)
14668{
14669	s << "VkAccelerationStructureCaptureDescriptorDataInfoEXT = {\n";
14670	s << "\tsType = " << value.sType << '\n';
14671	s << "\tpNext = " << value.pNext << '\n';
14672	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
14673	s << "\taccelerationStructureNV = " << value.accelerationStructureNV << '\n';
14674	s << '}';
14675	return s;
14676}
14677
14678std::ostream& operator<< (std::ostream& s, const VkOpaqueCaptureDescriptorDataCreateInfoEXT& value)
14679{
14680	s << "VkOpaqueCaptureDescriptorDataCreateInfoEXT = {\n";
14681	s << "\tsType = " << value.sType << '\n';
14682	s << "\tpNext = " << value.pNext << '\n';
14683	s << "\topaqueCaptureDescriptorData = " << value.opaqueCaptureDescriptorData << '\n';
14684	s << '}';
14685	return s;
14686}
14687
14688std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
14689{
14690	s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
14691	s << "\tsType = " << value.sType << '\n';
14692	s << "\tpNext = " << value.pNext << '\n';
14693	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
14694	s << '}';
14695	return s;
14696}
14697
14698std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
14699{
14700	s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
14701	s << "\tsType = " << value.sType << '\n';
14702	s << "\tpNext = " << value.pNext << '\n';
14703	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
14704	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
14705	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
14706	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
14707	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
14708	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
14709	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
14710	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
14711	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
14712	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
14713	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
14714	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
14715	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
14716	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
14717	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
14718	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
14719	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
14720	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
14721	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
14722	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
14723	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
14724	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
14725	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
14726	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
14727	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
14728	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
14729	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
14730	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
14731	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
14732	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
14733	s << '}';
14734	return s;
14735}
14736
14737std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
14738{
14739	s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
14740	s << "\tsType = " << value.sType << '\n';
14741	s << "\tpNext = " << value.pNext << '\n';
14742	s << "\thasPrimary = " << value.hasPrimary << '\n';
14743	s << "\thasRender = " << value.hasRender << '\n';
14744	s << "\tprimaryMajor = " << value.primaryMajor << '\n';
14745	s << "\tprimaryMinor = " << value.primaryMinor << '\n';
14746	s << "\trenderMajor = " << value.renderMajor << '\n';
14747	s << "\trenderMinor = " << value.renderMinor << '\n';
14748	s << '}';
14749	return s;
14750}
14751
14752std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
14753{
14754	s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
14755	s << "\tsType = " << value.sType << '\n';
14756	s << "\tpNext = " << value.pNext << '\n';
14757	s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
14758	s << '}';
14759	return s;
14760}
14761
14762std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
14763{
14764	s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
14765	s << "\tsType = " << value.sType << '\n';
14766	s << "\tpNext = " << value.pNext << '\n';
14767	s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
14768	s << '}';
14769	return s;
14770}
14771
14772std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
14773{
14774	s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
14775	s << "\tsType = " << value.sType << '\n';
14776	s << "\tpNext = " << value.pNext << '\n';
14777	s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
14778	s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
14779	s << '}';
14780	return s;
14781}
14782
14783std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
14784{
14785	s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
14786	s << "\tsType = " << value.sType << '\n';
14787	s << "\tpNext = " << value.pNext << '\n';
14788	s << "\tvertexData = " << value.vertexData << '\n';
14789	s << '}';
14790	return s;
14791}
14792
14793std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
14794{
14795	s << "VkAccelerationStructureMotionInfoNV = {\n";
14796	s << "\tsType = " << value.sType << '\n';
14797	s << "\tpNext = " << value.pNext << '\n';
14798	s << "\tmaxInstances = " << value.maxInstances << '\n';
14799	s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
14800	s << '}';
14801	return s;
14802}
14803
14804std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
14805{
14806	s << "VkSRTDataNV = {\n";
14807	s << "\tsx = " << value.sx << '\n';
14808	s << "\ta = " << value.a << '\n';
14809	s << "\tb = " << value.b << '\n';
14810	s << "\tpvx = " << value.pvx << '\n';
14811	s << "\tsy = " << value.sy << '\n';
14812	s << "\tc = " << value.c << '\n';
14813	s << "\tpvy = " << value.pvy << '\n';
14814	s << "\tsz = " << value.sz << '\n';
14815	s << "\tpvz = " << value.pvz << '\n';
14816	s << "\tqx = " << value.qx << '\n';
14817	s << "\tqy = " << value.qy << '\n';
14818	s << "\tqz = " << value.qz << '\n';
14819	s << "\tqw = " << value.qw << '\n';
14820	s << "\ttx = " << value.tx << '\n';
14821	s << "\tty = " << value.ty << '\n';
14822	s << "\ttz = " << value.tz << '\n';
14823	s << '}';
14824	return s;
14825}
14826
14827std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
14828{
14829	s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
14830	s << "\ttransformT0 = " << value.transformT0 << '\n';
14831	s << "\ttransformT1 = " << value.transformT1 << '\n';
14832	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
14833	s << "\tmask = " << value.mask << '\n';
14834	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
14835	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
14836	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
14837	s << '}';
14838	return s;
14839}
14840
14841std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
14842{
14843	s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
14844	s << "\ttransformT0 = " << value.transformT0 << '\n';
14845	s << "\ttransformT1 = " << value.transformT1 << '\n';
14846	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
14847	s << "\tmask = " << value.mask << '\n';
14848	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
14849	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
14850	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
14851	s << '}';
14852	return s;
14853}
14854
14855std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
14856{
14857	s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
14858	s << "\tstaticInstance = " << value.staticInstance << '\n';
14859	s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
14860	s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
14861	s << '}';
14862	return s;
14863}
14864
14865std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
14866{
14867	s << "VkAccelerationStructureMotionInstanceNV = {\n";
14868	s << "\ttype = " << value.type << '\n';
14869	s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
14870	s << "\tdata = " << value.data << '\n';
14871	s << '}';
14872	return s;
14873}
14874
14875std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
14876{
14877	s << "VkMemoryGetRemoteAddressInfoNV = {\n";
14878	s << "\tsType = " << value.sType << '\n';
14879	s << "\tpNext = " << value.pNext << '\n';
14880	s << "\tmemory = " << value.memory << '\n';
14881	s << "\thandleType = " << value.handleType << '\n';
14882	s << '}';
14883	return s;
14884}
14885
14886std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
14887{
14888	s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
14889	s << "\tsType = " << value.sType << '\n';
14890	s << "\tpNext = " << value.pNext << '\n';
14891	s << "\tcollection = " << value.collection << '\n';
14892	s << "\tindex = " << value.index << '\n';
14893	s << '}';
14894	return s;
14895}
14896
14897std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
14898{
14899	s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
14900	s << "\tsType = " << value.sType << '\n';
14901	s << "\tpNext = " << value.pNext << '\n';
14902	s << "\tcollection = " << value.collection << '\n';
14903	s << "\tindex = " << value.index << '\n';
14904	s << '}';
14905	return s;
14906}
14907
14908std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
14909{
14910	s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
14911	s << "\tsType = " << value.sType << '\n';
14912	s << "\tpNext = " << value.pNext << '\n';
14913	s << "\tcollection = " << value.collection << '\n';
14914	s << "\tindex = " << value.index << '\n';
14915	s << '}';
14916	return s;
14917}
14918
14919std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
14920{
14921	s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
14922	s << "\tsType = " << value.sType << '\n';
14923	s << "\tpNext = " << value.pNext << '\n';
14924	s << "\tcollectionToken = " << value.collectionToken << '\n';
14925	s << '}';
14926	return s;
14927}
14928
14929std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
14930{
14931	s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
14932	s << "\tsType = " << value.sType << '\n';
14933	s << "\tpNext = " << value.pNext << '\n';
14934	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14935	s << "\tbufferCount = " << value.bufferCount << '\n';
14936	s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
14937	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14938	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
14939	s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
14940	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14941	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14942	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14943	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14944	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14945	s << '}';
14946	return s;
14947}
14948
14949std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
14950{
14951	s << "VkBufferConstraintsInfoFUCHSIA = {\n";
14952	s << "\tsType = " << value.sType << '\n';
14953	s << "\tpNext = " << value.pNext << '\n';
14954	s << "\tcreateInfo = " << value.createInfo << '\n';
14955	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14956	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14957	s << '}';
14958	return s;
14959}
14960
14961std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
14962{
14963	s << "VkSysmemColorSpaceFUCHSIA = {\n";
14964	s << "\tsType = " << value.sType << '\n';
14965	s << "\tpNext = " << value.pNext << '\n';
14966	s << "\tcolorSpace = " << value.colorSpace << '\n';
14967	s << '}';
14968	return s;
14969}
14970
14971std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
14972{
14973	s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
14974	s << "\tsType = " << value.sType << '\n';
14975	s << "\tpNext = " << value.pNext << '\n';
14976	s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
14977	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14978	s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
14979	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14980	s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
14981	s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
14982	s << '}';
14983	return s;
14984}
14985
14986std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
14987{
14988	s << "VkImageConstraintsInfoFUCHSIA = {\n";
14989	s << "\tsType = " << value.sType << '\n';
14990	s << "\tpNext = " << value.pNext << '\n';
14991	s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
14992	s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
14993	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14994	s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
14995	s << '}';
14996	return s;
14997}
14998
14999std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
15000{
15001	s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
15002	s << "\tsType = " << value.sType << '\n';
15003	s << "\tpNext = " << value.pNext << '\n';
15004	s << "\tminBufferCount = " << value.minBufferCount << '\n';
15005	s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
15006	s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
15007	s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
15008	s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
15009	s << '}';
15010	return s;
15011}
15012
15013std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
15014{
15015	s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
15016	s << "\tsType = " << value.sType << '\n';
15017	s << "\tpNext = " << value.pNext << '\n';
15018	s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
15019	s << '}';
15020	return s;
15021}
15022
15023std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
15024{
15025	s << "VkFormatProperties3 = {\n";
15026	s << "\tsType = " << value.sType << '\n';
15027	s << "\tpNext = " << value.pNext << '\n';
15028	s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
15029	s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
15030	s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
15031	s << '}';
15032	return s;
15033}
15034
15035std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
15036{
15037	s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
15038	s << "\tsType = " << value.sType << '\n';
15039	s << "\tpNext = " << value.pNext << '\n';
15040	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
15041	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
15042	s << '}';
15043	return s;
15044}
15045
15046std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
15047{
15048	s << "VkDrmFormatModifierProperties2EXT = {\n";
15049	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
15050	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
15051	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
15052	s << '}';
15053	return s;
15054}
15055
15056std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
15057{
15058	s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
15059	s << "\tsType = " << value.sType << '\n';
15060	s << "\tpNext = " << value.pNext << '\n';
15061	s << "\tformat = " << value.format << '\n';
15062	s << "\texternalFormat = " << value.externalFormat << '\n';
15063	s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
15064	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
15065	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
15066	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
15067	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
15068	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
15069	s << '}';
15070	return s;
15071}
15072
15073std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
15074{
15075	s << "VkPipelineRenderingCreateInfo = {\n";
15076	s << "\tsType = " << value.sType << '\n';
15077	s << "\tpNext = " << value.pNext << '\n';
15078	s << "\tviewMask = " << value.viewMask << '\n';
15079	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
15080	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
15081	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
15082	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
15083	s << '}';
15084	return s;
15085}
15086
15087std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
15088{
15089	s << "VkRenderingInfo = {\n";
15090	s << "\tsType = " << value.sType << '\n';
15091	s << "\tpNext = " << value.pNext << '\n';
15092	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
15093	s << "\trenderArea = " << value.renderArea << '\n';
15094	s << "\tlayerCount = " << value.layerCount << '\n';
15095	s << "\tviewMask = " << value.viewMask << '\n';
15096	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
15097	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
15098	s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
15099	s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
15100	s << '}';
15101	return s;
15102}
15103
15104std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
15105{
15106	s << "VkRenderingAttachmentInfo = {\n";
15107	s << "\tsType = " << value.sType << '\n';
15108	s << "\tpNext = " << value.pNext << '\n';
15109	s << "\timageView = " << value.imageView << '\n';
15110	s << "\timageLayout = " << value.imageLayout << '\n';
15111	s << "\tresolveMode = " << value.resolveMode << '\n';
15112	s << "\tresolveImageView = " << value.resolveImageView << '\n';
15113	s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
15114	s << "\tloadOp = " << value.loadOp << '\n';
15115	s << "\tstoreOp = " << value.storeOp << '\n';
15116	s << "\tclearValue = " << value.clearValue << '\n';
15117	s << '}';
15118	return s;
15119}
15120
15121std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
15122{
15123	s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
15124	s << "\tsType = " << value.sType << '\n';
15125	s << "\tpNext = " << value.pNext << '\n';
15126	s << "\timageView = " << value.imageView << '\n';
15127	s << "\timageLayout = " << value.imageLayout << '\n';
15128	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
15129	s << '}';
15130	return s;
15131}
15132
15133std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
15134{
15135	s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
15136	s << "\tsType = " << value.sType << '\n';
15137	s << "\tpNext = " << value.pNext << '\n';
15138	s << "\timageView = " << value.imageView << '\n';
15139	s << "\timageLayout = " << value.imageLayout << '\n';
15140	s << '}';
15141	return s;
15142}
15143
15144std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
15145{
15146	s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
15147	s << "\tsType = " << value.sType << '\n';
15148	s << "\tpNext = " << value.pNext << '\n';
15149	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
15150	s << '}';
15151	return s;
15152}
15153
15154std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
15155{
15156	s << "VkCommandBufferInheritanceRenderingInfo = {\n";
15157	s << "\tsType = " << value.sType << '\n';
15158	s << "\tpNext = " << value.pNext << '\n';
15159	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
15160	s << "\tviewMask = " << value.viewMask << '\n';
15161	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
15162	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
15163	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
15164	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
15165	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
15166	s << '}';
15167	return s;
15168}
15169
15170std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
15171{
15172	s << "VkAttachmentSampleCountInfoAMD = {\n";
15173	s << "\tsType = " << value.sType << '\n';
15174	s << "\tpNext = " << value.pNext << '\n';
15175	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
15176	s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
15177	s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
15178	s << '}';
15179	return s;
15180}
15181
15182std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
15183{
15184	s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
15185	s << "\tsType = " << value.sType << '\n';
15186	s << "\tpNext = " << value.pNext << '\n';
15187	s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
15188	s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
15189	s << '}';
15190	return s;
15191}
15192
15193std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
15194{
15195	s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
15196	s << "\tsType = " << value.sType << '\n';
15197	s << "\tpNext = " << value.pNext << '\n';
15198	s << "\tminLod = " << value.minLod << '\n';
15199	s << '}';
15200	return s;
15201}
15202
15203std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
15204{
15205	s << "VkImageViewMinLodCreateInfoEXT = {\n";
15206	s << "\tsType = " << value.sType << '\n';
15207	s << "\tpNext = " << value.pNext << '\n';
15208	s << "\tminLod = " << value.minLod << '\n';
15209	s << '}';
15210	return s;
15211}
15212
15213std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT& value)
15214{
15215	s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = {\n";
15216	s << "\tsType = " << value.sType << '\n';
15217	s << "\tpNext = " << value.pNext << '\n';
15218	s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
15219	s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
15220	s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
15221	s << '}';
15222	return s;
15223}
15224
15225std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
15226{
15227	s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
15228	s << "\tsType = " << value.sType << '\n';
15229	s << "\tpNext = " << value.pNext << '\n';
15230	s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
15231	s << '}';
15232	return s;
15233}
15234
15235std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
15236{
15237	s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
15238	s << "\tsType = " << value.sType << '\n';
15239	s << "\tpNext = " << value.pNext << '\n';
15240	s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
15241	s << '}';
15242	return s;
15243}
15244
15245std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
15246{
15247	s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
15248	s << "\tsType = " << value.sType << '\n';
15249	s << "\tpNext = " << value.pNext << '\n';
15250	s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
15251	s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
15252	s << '}';
15253	return s;
15254}
15255
15256std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
15257{
15258	s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
15259	s << "\tsType = " << value.sType << '\n';
15260	s << "\tpNext = " << value.pNext << '\n';
15261	s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
15262	s << '}';
15263	return s;
15264}
15265
15266std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
15267{
15268	s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
15269	s << "\tsType = " << value.sType << '\n';
15270	s << "\tpNext = " << value.pNext << '\n';
15271	s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
15272	s << '}';
15273	return s;
15274}
15275
15276std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
15277{
15278	s << "VkDescriptorSetBindingReferenceVALVE = {\n";
15279	s << "\tsType = " << value.sType << '\n';
15280	s << "\tpNext = " << value.pNext << '\n';
15281	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
15282	s << "\tbinding = " << value.binding << '\n';
15283	s << '}';
15284	return s;
15285}
15286
15287std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
15288{
15289	s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
15290	s << "\tsType = " << value.sType << '\n';
15291	s << "\tpNext = " << value.pNext << '\n';
15292	s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
15293	s << "\tdescriptorSize = " << value.descriptorSize << '\n';
15294	s << '}';
15295	return s;
15296}
15297
15298std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
15299{
15300	s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
15301	s << "\tsType = " << value.sType << '\n';
15302	s << "\tpNext = " << value.pNext << '\n';
15303	s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
15304	s << '}';
15305	return s;
15306}
15307
15308std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
15309{
15310	s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
15311	s << "\tsType = " << value.sType << '\n';
15312	s << "\tpNext = " << value.pNext << '\n';
15313	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';
15314	s << '}';
15315	return s;
15316}
15317
15318std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
15319{
15320	s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
15321	s << "\tsType = " << value.sType << '\n';
15322	s << "\tpNext = " << value.pNext << '\n';
15323	s << "\tidentifierSize = " << value.identifierSize << '\n';
15324	s << "\tpIdentifier = " << value.pIdentifier << '\n';
15325	s << '}';
15326	return s;
15327}
15328
15329std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
15330{
15331	s << "VkShaderModuleIdentifierEXT = {\n";
15332	s << "\tsType = " << value.sType << '\n';
15333	s << "\tpNext = " << value.pNext << '\n';
15334	s << "\tidentifierSize = " << value.identifierSize << '\n';
15335	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';
15336	s << '}';
15337	return s;
15338}
15339
15340std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
15341{
15342	s << "VkImageCompressionControlEXT = {\n";
15343	s << "\tsType = " << value.sType << '\n';
15344	s << "\tpNext = " << value.pNext << '\n';
15345	s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
15346	s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
15347	s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
15348	s << '}';
15349	return s;
15350}
15351
15352std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
15353{
15354	s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
15355	s << "\tsType = " << value.sType << '\n';
15356	s << "\tpNext = " << value.pNext << '\n';
15357	s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
15358	s << '}';
15359	return s;
15360}
15361
15362std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
15363{
15364	s << "VkImageCompressionPropertiesEXT = {\n";
15365	s << "\tsType = " << value.sType << '\n';
15366	s << "\tpNext = " << value.pNext << '\n';
15367	s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
15368	s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
15369	s << '}';
15370	return s;
15371}
15372
15373std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
15374{
15375	s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
15376	s << "\tsType = " << value.sType << '\n';
15377	s << "\tpNext = " << value.pNext << '\n';
15378	s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
15379	s << '}';
15380	return s;
15381}
15382
15383std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
15384{
15385	s << "VkImageSubresource2EXT = {\n";
15386	s << "\tsType = " << value.sType << '\n';
15387	s << "\tpNext = " << value.pNext << '\n';
15388	s << "\timageSubresource = " << value.imageSubresource << '\n';
15389	s << '}';
15390	return s;
15391}
15392
15393std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
15394{
15395	s << "VkSubresourceLayout2EXT = {\n";
15396	s << "\tsType = " << value.sType << '\n';
15397	s << "\tpNext = " << value.pNext << '\n';
15398	s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
15399	s << '}';
15400	return s;
15401}
15402
15403std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
15404{
15405	s << "VkRenderPassCreationControlEXT = {\n";
15406	s << "\tsType = " << value.sType << '\n';
15407	s << "\tpNext = " << value.pNext << '\n';
15408	s << "\tdisallowMerging = " << value.disallowMerging << '\n';
15409	s << '}';
15410	return s;
15411}
15412
15413std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
15414{
15415	s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
15416	s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
15417	s << '}';
15418	return s;
15419}
15420
15421std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
15422{
15423	s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
15424	s << "\tsType = " << value.sType << '\n';
15425	s << "\tpNext = " << value.pNext << '\n';
15426	s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
15427	s << '}';
15428	return s;
15429}
15430
15431std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
15432{
15433	s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
15434	s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
15435	s << "\tdescription = " << (const char*)value.description << '\n';
15436	s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
15437	s << '}';
15438	return s;
15439}
15440
15441std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
15442{
15443	s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
15444	s << "\tsType = " << value.sType << '\n';
15445	s << "\tpNext = " << value.pNext << '\n';
15446	s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
15447	s << '}';
15448	return s;
15449}
15450
15451std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
15452{
15453	s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
15454	s << "\tsType = " << value.sType << '\n';
15455	s << "\tpNext = " << value.pNext << '\n';
15456	s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
15457	s << '}';
15458	return s;
15459}
15460
15461std::ostream& operator<< (std::ostream& s, const VkMicromapBuildInfoEXT& value)
15462{
15463	s << "VkMicromapBuildInfoEXT = {\n";
15464	s << "\tsType = " << value.sType << '\n';
15465	s << "\tpNext = " << value.pNext << '\n';
15466	s << "\ttype = " << value.type << '\n';
15467	s << "\tflags = " << getBuildMicromapFlagsEXTStr(value.flags) << '\n';
15468	s << "\tmode = " << value.mode << '\n';
15469	s << "\tdstMicromap = " << value.dstMicromap << '\n';
15470	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
15471	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
15472	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
15473	s << "\tdata = " << value.data << '\n';
15474	s << "\tscratchData = " << value.scratchData << '\n';
15475	s << "\ttriangleArray = " << value.triangleArray << '\n';
15476	s << "\ttriangleArrayStride = " << value.triangleArrayStride << '\n';
15477	s << '}';
15478	return s;
15479}
15480
15481std::ostream& operator<< (std::ostream& s, const VkMicromapCreateInfoEXT& value)
15482{
15483	s << "VkMicromapCreateInfoEXT = {\n";
15484	s << "\tsType = " << value.sType << '\n';
15485	s << "\tpNext = " << value.pNext << '\n';
15486	s << "\tcreateFlags = " << getMicromapCreateFlagsEXTStr(value.createFlags) << '\n';
15487	s << "\tbuffer = " << value.buffer << '\n';
15488	s << "\toffset = " << value.offset << '\n';
15489	s << "\tsize = " << value.size << '\n';
15490	s << "\ttype = " << value.type << '\n';
15491	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
15492	s << '}';
15493	return s;
15494}
15495
15496std::ostream& operator<< (std::ostream& s, const VkMicromapVersionInfoEXT& value)
15497{
15498	s << "VkMicromapVersionInfoEXT = {\n";
15499	s << "\tsType = " << value.sType << '\n';
15500	s << "\tpNext = " << value.pNext << '\n';
15501	s << "\tpVersionData = " << value.pVersionData << '\n';
15502	s << '}';
15503	return s;
15504}
15505
15506std::ostream& operator<< (std::ostream& s, const VkCopyMicromapInfoEXT& value)
15507{
15508	s << "VkCopyMicromapInfoEXT = {\n";
15509	s << "\tsType = " << value.sType << '\n';
15510	s << "\tpNext = " << value.pNext << '\n';
15511	s << "\tsrc = " << value.src << '\n';
15512	s << "\tdst = " << value.dst << '\n';
15513	s << "\tmode = " << value.mode << '\n';
15514	s << '}';
15515	return s;
15516}
15517
15518std::ostream& operator<< (std::ostream& s, const VkCopyMicromapToMemoryInfoEXT& value)
15519{
15520	s << "VkCopyMicromapToMemoryInfoEXT = {\n";
15521	s << "\tsType = " << value.sType << '\n';
15522	s << "\tpNext = " << value.pNext << '\n';
15523	s << "\tsrc = " << value.src << '\n';
15524	s << "\tdst = " << value.dst << '\n';
15525	s << "\tmode = " << value.mode << '\n';
15526	s << '}';
15527	return s;
15528}
15529
15530std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToMicromapInfoEXT& value)
15531{
15532	s << "VkCopyMemoryToMicromapInfoEXT = {\n";
15533	s << "\tsType = " << value.sType << '\n';
15534	s << "\tpNext = " << value.pNext << '\n';
15535	s << "\tsrc = " << value.src << '\n';
15536	s << "\tdst = " << value.dst << '\n';
15537	s << "\tmode = " << value.mode << '\n';
15538	s << '}';
15539	return s;
15540}
15541
15542std::ostream& operator<< (std::ostream& s, const VkMicromapBuildSizesInfoEXT& value)
15543{
15544	s << "VkMicromapBuildSizesInfoEXT = {\n";
15545	s << "\tsType = " << value.sType << '\n';
15546	s << "\tpNext = " << value.pNext << '\n';
15547	s << "\tmicromapSize = " << value.micromapSize << '\n';
15548	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
15549	s << "\tdiscardable = " << value.discardable << '\n';
15550	s << '}';
15551	return s;
15552}
15553
15554std::ostream& operator<< (std::ostream& s, const VkMicromapUsageEXT& value)
15555{
15556	s << "VkMicromapUsageEXT = {\n";
15557	s << "\tcount = " << value.count << '\n';
15558	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
15559	s << "\tformat = " << value.format << '\n';
15560	s << '}';
15561	return s;
15562}
15563
15564std::ostream& operator<< (std::ostream& s, const VkMicromapTriangleEXT& value)
15565{
15566	s << "VkMicromapTriangleEXT = {\n";
15567	s << "\tdataOffset = " << value.dataOffset << '\n';
15568	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
15569	s << "\tformat = " << value.format << '\n';
15570	s << '}';
15571	return s;
15572}
15573
15574std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapFeaturesEXT& value)
15575{
15576	s << "VkPhysicalDeviceOpacityMicromapFeaturesEXT = {\n";
15577	s << "\tsType = " << value.sType << '\n';
15578	s << "\tpNext = " << value.pNext << '\n';
15579	s << "\tmicromap = " << value.micromap << '\n';
15580	s << "\tmicromapCaptureReplay = " << value.micromapCaptureReplay << '\n';
15581	s << "\tmicromapHostCommands = " << value.micromapHostCommands << '\n';
15582	s << '}';
15583	return s;
15584}
15585
15586std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapPropertiesEXT& value)
15587{
15588	s << "VkPhysicalDeviceOpacityMicromapPropertiesEXT = {\n";
15589	s << "\tsType = " << value.sType << '\n';
15590	s << "\tpNext = " << value.pNext << '\n';
15591	s << "\tmaxOpacity2StateSubdivisionLevel = " << value.maxOpacity2StateSubdivisionLevel << '\n';
15592	s << "\tmaxOpacity4StateSubdivisionLevel = " << value.maxOpacity4StateSubdivisionLevel << '\n';
15593	s << '}';
15594	return s;
15595}
15596
15597std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesOpacityMicromapEXT& value)
15598{
15599	s << "VkAccelerationStructureTrianglesOpacityMicromapEXT = {\n";
15600	s << "\tsType = " << value.sType << '\n';
15601	s << "\tpNext = " << value.pNext << '\n';
15602	s << "\tindexType = " << value.indexType << '\n';
15603	s << "\tindexBuffer = " << value.indexBuffer << '\n';
15604	s << "\tindexStride = " << value.indexStride << '\n';
15605	s << "\tbaseTriangle = " << value.baseTriangle << '\n';
15606	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
15607	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
15608	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
15609	s << "\tmicromap = " << value.micromap << '\n';
15610	s << '}';
15611	return s;
15612}
15613
15614std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
15615{
15616	s << "VkPipelinePropertiesIdentifierEXT = {\n";
15617	s << "\tsType = " << value.sType << '\n';
15618	s << "\tpNext = " << value.pNext << '\n';
15619	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';
15620	s << '}';
15621	return s;
15622}
15623
15624std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
15625{
15626	s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
15627	s << "\tsType = " << value.sType << '\n';
15628	s << "\tpNext = " << value.pNext << '\n';
15629	s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
15630	s << '}';
15631	return s;
15632}
15633
15634std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
15635{
15636	s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
15637	s << "\tsType = " << value.sType << '\n';
15638	s << "\tpNext = " << value.pNext << '\n';
15639	s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
15640	s << '}';
15641	return s;
15642}
15643
15644std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
15645{
15646	s << "VkExportMetalObjectCreateInfoEXT = {\n";
15647	s << "\tsType = " << value.sType << '\n';
15648	s << "\tpNext = " << value.pNext << '\n';
15649	s << "\texportObjectType = " << value.exportObjectType << '\n';
15650	s << '}';
15651	return s;
15652}
15653
15654std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
15655{
15656	s << "VkExportMetalObjectsInfoEXT = {\n";
15657	s << "\tsType = " << value.sType << '\n';
15658	s << "\tpNext = " << value.pNext << '\n';
15659	s << '}';
15660	return s;
15661}
15662
15663std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
15664{
15665	s << "VkExportMetalDeviceInfoEXT = {\n";
15666	s << "\tsType = " << value.sType << '\n';
15667	s << "\tpNext = " << value.pNext << '\n';
15668	s << "\tmtlDevice = " << value.mtlDevice << '\n';
15669	s << '}';
15670	return s;
15671}
15672
15673std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
15674{
15675	s << "VkExportMetalCommandQueueInfoEXT = {\n";
15676	s << "\tsType = " << value.sType << '\n';
15677	s << "\tpNext = " << value.pNext << '\n';
15678	s << "\tqueue = " << value.queue << '\n';
15679	s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
15680	s << '}';
15681	return s;
15682}
15683
15684std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
15685{
15686	s << "VkExportMetalBufferInfoEXT = {\n";
15687	s << "\tsType = " << value.sType << '\n';
15688	s << "\tpNext = " << value.pNext << '\n';
15689	s << "\tmemory = " << value.memory << '\n';
15690	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
15691	s << '}';
15692	return s;
15693}
15694
15695std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
15696{
15697	s << "VkImportMetalBufferInfoEXT = {\n";
15698	s << "\tsType = " << value.sType << '\n';
15699	s << "\tpNext = " << value.pNext << '\n';
15700	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
15701	s << '}';
15702	return s;
15703}
15704
15705std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
15706{
15707	s << "VkExportMetalTextureInfoEXT = {\n";
15708	s << "\tsType = " << value.sType << '\n';
15709	s << "\tpNext = " << value.pNext << '\n';
15710	s << "\timage = " << value.image << '\n';
15711	s << "\timageView = " << value.imageView << '\n';
15712	s << "\tbufferView = " << value.bufferView << '\n';
15713	s << "\tplane = " << value.plane << '\n';
15714	s << "\tmtlTexture = " << value.mtlTexture << '\n';
15715	s << '}';
15716	return s;
15717}
15718
15719std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
15720{
15721	s << "VkImportMetalTextureInfoEXT = {\n";
15722	s << "\tsType = " << value.sType << '\n';
15723	s << "\tpNext = " << value.pNext << '\n';
15724	s << "\tplane = " << value.plane << '\n';
15725	s << "\tmtlTexture = " << value.mtlTexture << '\n';
15726	s << '}';
15727	return s;
15728}
15729
15730std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
15731{
15732	s << "VkExportMetalIOSurfaceInfoEXT = {\n";
15733	s << "\tsType = " << value.sType << '\n';
15734	s << "\tpNext = " << value.pNext << '\n';
15735	s << "\timage = " << value.image << '\n';
15736	s << "\tioSurface = " << value.ioSurface << '\n';
15737	s << '}';
15738	return s;
15739}
15740
15741std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
15742{
15743	s << "VkImportMetalIOSurfaceInfoEXT = {\n";
15744	s << "\tsType = " << value.sType << '\n';
15745	s << "\tpNext = " << value.pNext << '\n';
15746	s << "\tioSurface = " << value.ioSurface << '\n';
15747	s << '}';
15748	return s;
15749}
15750
15751std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
15752{
15753	s << "VkExportMetalSharedEventInfoEXT = {\n";
15754	s << "\tsType = " << value.sType << '\n';
15755	s << "\tpNext = " << value.pNext << '\n';
15756	s << "\tsemaphore = " << value.semaphore << '\n';
15757	s << "\tevent = " << value.event << '\n';
15758	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
15759	s << '}';
15760	return s;
15761}
15762
15763std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
15764{
15765	s << "VkImportMetalSharedEventInfoEXT = {\n";
15766	s << "\tsType = " << value.sType << '\n';
15767	s << "\tpNext = " << value.pNext << '\n';
15768	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
15769	s << '}';
15770	return s;
15771}
15772
15773std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
15774{
15775	s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
15776	s << "\tsType = " << value.sType << '\n';
15777	s << "\tpNext = " << value.pNext << '\n';
15778	s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
15779	s << '}';
15780	return s;
15781}
15782
15783std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
15784{
15785	s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
15786	s << "\tsType = " << value.sType << '\n';
15787	s << "\tpNext = " << value.pNext << '\n';
15788	s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
15789	s << '}';
15790	return s;
15791}
15792
15793std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
15794{
15795	s << "VkPipelineRobustnessCreateInfoEXT = {\n";
15796	s << "\tsType = " << value.sType << '\n';
15797	s << "\tpNext = " << value.pNext << '\n';
15798	s << "\tstorageBuffers = " << value.storageBuffers << '\n';
15799	s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
15800	s << "\tvertexInputs = " << value.vertexInputs << '\n';
15801	s << "\timages = " << value.images << '\n';
15802	s << '}';
15803	return s;
15804}
15805
15806std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
15807{
15808	s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
15809	s << "\tsType = " << value.sType << '\n';
15810	s << "\tpNext = " << value.pNext << '\n';
15811	s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
15812	s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
15813	s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
15814	s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
15815	s << '}';
15816	return s;
15817}
15818
15819std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
15820{
15821	s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
15822	s << "\tsType = " << value.sType << '\n';
15823	s << "\tpNext = " << value.pNext << '\n';
15824	s << "\tfilterCenter = " << value.filterCenter << '\n';
15825	s << "\tfilterSize = " << value.filterSize << '\n';
15826	s << "\tnumPhases = " << value.numPhases << '\n';
15827	s << '}';
15828	return s;
15829}
15830
15831std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
15832{
15833	s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
15834	s << "\tsType = " << value.sType << '\n';
15835	s << "\tpNext = " << value.pNext << '\n';
15836	s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
15837	s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
15838	s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
15839	s << '}';
15840	return s;
15841}
15842
15843std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
15844{
15845	s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
15846	s << "\tsType = " << value.sType << '\n';
15847	s << "\tpNext = " << value.pNext << '\n';
15848	s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
15849	s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
15850	s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
15851	s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
15852	s << '}';
15853	return s;
15854}
15855
15856std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
15857{
15858	s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
15859	s << "\tsType = " << value.sType << '\n';
15860	s << "\tpNext = " << value.pNext << '\n';
15861	s << "\ttileProperties = " << value.tileProperties << '\n';
15862	s << '}';
15863	return s;
15864}
15865
15866std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
15867{
15868	s << "VkTilePropertiesQCOM = {\n";
15869	s << "\tsType = " << value.sType << '\n';
15870	s << "\tpNext = " << value.pNext << '\n';
15871	s << "\ttileSize = " << value.tileSize << '\n';
15872	s << "\tapronSize = " << value.apronSize << '\n';
15873	s << "\torigin = " << value.origin << '\n';
15874	s << '}';
15875	return s;
15876}
15877
15878std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAmigoProfilingFeaturesSEC& value)
15879{
15880	s << "VkPhysicalDeviceAmigoProfilingFeaturesSEC = {\n";
15881	s << "\tsType = " << value.sType << '\n';
15882	s << "\tpNext = " << value.pNext << '\n';
15883	s << "\tamigoProfiling = " << value.amigoProfiling << '\n';
15884	s << '}';
15885	return s;
15886}
15887
15888std::ostream& operator<< (std::ostream& s, const VkAmigoProfilingSubmitInfoSEC& value)
15889{
15890	s << "VkAmigoProfilingSubmitInfoSEC = {\n";
15891	s << "\tsType = " << value.sType << '\n';
15892	s << "\tpNext = " << value.pNext << '\n';
15893	s << "\tfirstDrawTimestamp = " << value.firstDrawTimestamp << '\n';
15894	s << "\tswapBufferTimestamp = " << value.swapBufferTimestamp << '\n';
15895	s << '}';
15896	return s;
15897}
15898
15899std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT& value)
15900{
15901	s << "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = {\n";
15902	s << "\tsType = " << value.sType << '\n';
15903	s << "\tpNext = " << value.pNext << '\n';
15904	s << "\tattachmentFeedbackLoopLayout = " << value.attachmentFeedbackLoopLayout << '\n';
15905	s << '}';
15906	return s;
15907}
15908
15909std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT& value)
15910{
15911	s << "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = {\n";
15912	s << "\tsType = " << value.sType << '\n';
15913	s << "\tpNext = " << value.pNext << '\n';
15914	s << "\tdepthClampZeroOne = " << value.depthClampZeroOne << '\n';
15915	s << '}';
15916	return s;
15917}
15918
15919std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAddressBindingReportFeaturesEXT& value)
15920{
15921	s << "VkPhysicalDeviceAddressBindingReportFeaturesEXT = {\n";
15922	s << "\tsType = " << value.sType << '\n';
15923	s << "\tpNext = " << value.pNext << '\n';
15924	s << "\treportAddressBinding = " << value.reportAddressBinding << '\n';
15925	s << '}';
15926	return s;
15927}
15928
15929std::ostream& operator<< (std::ostream& s, const VkDeviceAddressBindingCallbackDataEXT& value)
15930{
15931	s << "VkDeviceAddressBindingCallbackDataEXT = {\n";
15932	s << "\tsType = " << value.sType << '\n';
15933	s << "\tpNext = " << value.pNext << '\n';
15934	s << "\tflags = " << getDeviceAddressBindingFlagsEXTStr(value.flags) << '\n';
15935	s << "\tbaseAddress = " << value.baseAddress << '\n';
15936	s << "\tsize = " << value.size << '\n';
15937	s << "\tbindingType = " << value.bindingType << '\n';
15938	s << '}';
15939	return s;
15940}
15941
15942std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowFeaturesNV& value)
15943{
15944	s << "VkPhysicalDeviceOpticalFlowFeaturesNV = {\n";
15945	s << "\tsType = " << value.sType << '\n';
15946	s << "\tpNext = " << value.pNext << '\n';
15947	s << "\topticalFlow = " << value.opticalFlow << '\n';
15948	s << '}';
15949	return s;
15950}
15951
15952std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowPropertiesNV& value)
15953{
15954	s << "VkPhysicalDeviceOpticalFlowPropertiesNV = {\n";
15955	s << "\tsType = " << value.sType << '\n';
15956	s << "\tpNext = " << value.pNext << '\n';
15957	s << "\tsupportedOutputGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedOutputGridSizes) << '\n';
15958	s << "\tsupportedHintGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedHintGridSizes) << '\n';
15959	s << "\thintSupported = " << value.hintSupported << '\n';
15960	s << "\tcostSupported = " << value.costSupported << '\n';
15961	s << "\tbidirectionalFlowSupported = " << value.bidirectionalFlowSupported << '\n';
15962	s << "\tglobalFlowSupported = " << value.globalFlowSupported << '\n';
15963	s << "\tminWidth = " << value.minWidth << '\n';
15964	s << "\tminHeight = " << value.minHeight << '\n';
15965	s << "\tmaxWidth = " << value.maxWidth << '\n';
15966	s << "\tmaxHeight = " << value.maxHeight << '\n';
15967	s << "\tmaxNumRegionsOfInterest = " << value.maxNumRegionsOfInterest << '\n';
15968	s << '}';
15969	return s;
15970}
15971
15972std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatInfoNV& value)
15973{
15974	s << "VkOpticalFlowImageFormatInfoNV = {\n";
15975	s << "\tsType = " << value.sType << '\n';
15976	s << "\tpNext = " << value.pNext << '\n';
15977	s << "\tusage = " << getOpticalFlowUsageFlagsNVStr(value.usage) << '\n';
15978	s << '}';
15979	return s;
15980}
15981
15982std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatPropertiesNV& value)
15983{
15984	s << "VkOpticalFlowImageFormatPropertiesNV = {\n";
15985	s << "\tsType = " << value.sType << '\n';
15986	s << "\tpNext = " << value.pNext << '\n';
15987	s << "\tformat = " << value.format << '\n';
15988	s << '}';
15989	return s;
15990}
15991
15992std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreateInfoNV& value)
15993{
15994	s << "VkOpticalFlowSessionCreateInfoNV = {\n";
15995	s << "\tsType = " << value.sType << '\n';
15996	s << "\tpNext = " << value.pNext << '\n';
15997	s << "\twidth = " << value.width << '\n';
15998	s << "\theight = " << value.height << '\n';
15999	s << "\timageFormat = " << value.imageFormat << '\n';
16000	s << "\tflowVectorFormat = " << value.flowVectorFormat << '\n';
16001	s << "\tcostFormat = " << value.costFormat << '\n';
16002	s << "\toutputGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.outputGridSize) << '\n';
16003	s << "\thintGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.hintGridSize) << '\n';
16004	s << "\tperformanceLevel = " << value.performanceLevel << '\n';
16005	s << "\tflags = " << getOpticalFlowSessionCreateFlagsNVStr(value.flags) << '\n';
16006	s << '}';
16007	return s;
16008}
16009
16010std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreatePrivateDataInfoNV& value)
16011{
16012	s << "VkOpticalFlowSessionCreatePrivateDataInfoNV = {\n";
16013	s << "\tsType = " << value.sType << '\n';
16014	s << "\tpNext = " << value.pNext << '\n';
16015	s << "\tid = " << value.id << '\n';
16016	s << "\tsize = " << value.size << '\n';
16017	s << "\tpPrivateData = " << value.pPrivateData << '\n';
16018	s << '}';
16019	return s;
16020}
16021
16022std::ostream& operator<< (std::ostream& s, const VkOpticalFlowExecuteInfoNV& value)
16023{
16024	s << "VkOpticalFlowExecuteInfoNV = {\n";
16025	s << "\tsType = " << value.sType << '\n';
16026	s << "\tpNext = " << value.pNext << '\n';
16027	s << "\tflags = " << getOpticalFlowExecuteFlagsNVStr(value.flags) << '\n';
16028	s << "\tregionCount = " << value.regionCount << '\n';
16029	s << "\tpRegions = " << value.pRegions << '\n';
16030	s << '}';
16031	return s;
16032}
16033
16034std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFaultFeaturesEXT& value)
16035{
16036	s << "VkPhysicalDeviceFaultFeaturesEXT = {\n";
16037	s << "\tsType = " << value.sType << '\n';
16038	s << "\tpNext = " << value.pNext << '\n';
16039	s << "\tdeviceFault = " << value.deviceFault << '\n';
16040	s << "\tdeviceFaultVendorBinary = " << value.deviceFaultVendorBinary << '\n';
16041	s << '}';
16042	return s;
16043}
16044
16045std::ostream& operator<< (std::ostream& s, const VkDeviceFaultAddressInfoEXT& value)
16046{
16047	s << "VkDeviceFaultAddressInfoEXT = {\n";
16048	s << "\taddressType = " << value.addressType << '\n';
16049	s << "\treportedAddress = " << value.reportedAddress << '\n';
16050	s << "\taddressPrecision = " << value.addressPrecision << '\n';
16051	s << '}';
16052	return s;
16053}
16054
16055std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorInfoEXT& value)
16056{
16057	s << "VkDeviceFaultVendorInfoEXT = {\n";
16058	s << "\tdescription = " << (const char*)value.description << '\n';
16059	s << "\tvendorFaultCode = " << value.vendorFaultCode << '\n';
16060	s << "\tvendorFaultData = " << value.vendorFaultData << '\n';
16061	s << '}';
16062	return s;
16063}
16064
16065std::ostream& operator<< (std::ostream& s, const VkDeviceFaultCountsEXT& value)
16066{
16067	s << "VkDeviceFaultCountsEXT = {\n";
16068	s << "\tsType = " << value.sType << '\n';
16069	s << "\tpNext = " << value.pNext << '\n';
16070	s << "\taddressInfoCount = " << value.addressInfoCount << '\n';
16071	s << "\tvendorInfoCount = " << value.vendorInfoCount << '\n';
16072	s << "\tvendorBinarySize = " << value.vendorBinarySize << '\n';
16073	s << '}';
16074	return s;
16075}
16076
16077std::ostream& operator<< (std::ostream& s, const VkDeviceFaultInfoEXT& value)
16078{
16079	s << "VkDeviceFaultInfoEXT = {\n";
16080	s << "\tsType = " << value.sType << '\n';
16081	s << "\tpNext = " << value.pNext << '\n';
16082	s << "\tdescription = " << (const char*)value.description << '\n';
16083	s << "\tpAddressInfos = " << value.pAddressInfos << '\n';
16084	s << "\tpVendorInfos = " << value.pVendorInfos << '\n';
16085	s << "\tpVendorBinaryData = " << value.pVendorBinaryData << '\n';
16086	s << '}';
16087	return s;
16088}
16089
16090std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorBinaryHeaderVersionOneEXT& value)
16091{
16092	s << "VkDeviceFaultVendorBinaryHeaderVersionOneEXT = {\n";
16093	s << "\theaderSize = " << value.headerSize << '\n';
16094	s << "\theaderVersion = " << value.headerVersion << '\n';
16095	s << "\tvendorID = " << value.vendorID << '\n';
16096	s << "\tdeviceID = " << value.deviceID << '\n';
16097	s << "\tdriverVersion = " << value.driverVersion << '\n';
16098	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';
16099	s << "\tapplicationNameOffset = " << value.applicationNameOffset << '\n';
16100	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
16101	s << "\tengineNameOffset = " << value.engineNameOffset << '\n';
16102	s << '}';
16103	return s;
16104}
16105
16106std::ostream& operator<< (std::ostream& s, const VkDecompressMemoryRegionNV& value)
16107{
16108	s << "VkDecompressMemoryRegionNV = {\n";
16109	s << "\tsrcAddress = " << value.srcAddress << '\n';
16110	s << "\tdstAddress = " << value.dstAddress << '\n';
16111	s << "\tcompressedSize = " << value.compressedSize << '\n';
16112	s << "\tdecompressedSize = " << value.decompressedSize << '\n';
16113	s << "\tdecompressionMethod = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethod) << '\n';
16114	s << '}';
16115	return s;
16116}
16117
16118std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM& value)
16119{
16120	s << "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = {\n";
16121	s << "\tsType = " << value.sType << '\n';
16122	s << "\tpNext = " << value.pNext << '\n';
16123	s << "\tshaderCoreMask = " << value.shaderCoreMask << '\n';
16124	s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
16125	s << "\tshaderWarpsPerCore = " << value.shaderWarpsPerCore << '\n';
16126	s << '}';
16127	return s;
16128}
16129
16130std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM& value)
16131{
16132	s << "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = {\n";
16133	s << "\tsType = " << value.sType << '\n';
16134	s << "\tpNext = " << value.pNext << '\n';
16135	s << "\tshaderCoreBuiltins = " << value.shaderCoreBuiltins << '\n';
16136	s << '}';
16137	return s;
16138}
16139
16140std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeEXT& value)
16141{
16142	s << "VkSurfacePresentModeEXT = {\n";
16143	s << "\tsType = " << value.sType << '\n';
16144	s << "\tpNext = " << value.pNext << '\n';
16145	s << "\tpresentMode = " << value.presentMode << '\n';
16146	s << '}';
16147	return s;
16148}
16149
16150std::ostream& operator<< (std::ostream& s, const VkSurfacePresentScalingCapabilitiesEXT& value)
16151{
16152	s << "VkSurfacePresentScalingCapabilitiesEXT = {\n";
16153	s << "\tsType = " << value.sType << '\n';
16154	s << "\tpNext = " << value.pNext << '\n';
16155	s << "\tsupportedPresentScaling = " << getPresentScalingFlagsEXTStr(value.supportedPresentScaling) << '\n';
16156	s << "\tsupportedPresentGravityX = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityX) << '\n';
16157	s << "\tsupportedPresentGravityY = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityY) << '\n';
16158	s << "\tminScaledImageExtent = " << value.minScaledImageExtent << '\n';
16159	s << "\tmaxScaledImageExtent = " << value.maxScaledImageExtent << '\n';
16160	s << '}';
16161	return s;
16162}
16163
16164std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeCompatibilityEXT& value)
16165{
16166	s << "VkSurfacePresentModeCompatibilityEXT = {\n";
16167	s << "\tsType = " << value.sType << '\n';
16168	s << "\tpNext = " << value.pNext << '\n';
16169	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
16170	s << "\tpPresentModes = " << value.pPresentModes << '\n';
16171	s << '}';
16172	return s;
16173}
16174
16175std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT& value)
16176{
16177	s << "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT = {\n";
16178	s << "\tsType = " << value.sType << '\n';
16179	s << "\tpNext = " << value.pNext << '\n';
16180	s << "\tswapchainMaintenance1 = " << value.swapchainMaintenance1 << '\n';
16181	s << '}';
16182	return s;
16183}
16184
16185std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentFenceInfoEXT& value)
16186{
16187	s << "VkSwapchainPresentFenceInfoEXT = {\n";
16188	s << "\tsType = " << value.sType << '\n';
16189	s << "\tpNext = " << value.pNext << '\n';
16190	s << "\tswapchainCount = " << value.swapchainCount << '\n';
16191	s << "\tpFences = " << value.pFences << '\n';
16192	s << '}';
16193	return s;
16194}
16195
16196std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModesCreateInfoEXT& value)
16197{
16198	s << "VkSwapchainPresentModesCreateInfoEXT = {\n";
16199	s << "\tsType = " << value.sType << '\n';
16200	s << "\tpNext = " << value.pNext << '\n';
16201	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
16202	s << "\tpPresentModes = " << value.pPresentModes << '\n';
16203	s << '}';
16204	return s;
16205}
16206
16207std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModeInfoEXT& value)
16208{
16209	s << "VkSwapchainPresentModeInfoEXT = {\n";
16210	s << "\tsType = " << value.sType << '\n';
16211	s << "\tpNext = " << value.pNext << '\n';
16212	s << "\tswapchainCount = " << value.swapchainCount << '\n';
16213	s << "\tpPresentModes = " << value.pPresentModes << '\n';
16214	s << '}';
16215	return s;
16216}
16217
16218std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentScalingCreateInfoEXT& value)
16219{
16220	s << "VkSwapchainPresentScalingCreateInfoEXT = {\n";
16221	s << "\tsType = " << value.sType << '\n';
16222	s << "\tpNext = " << value.pNext << '\n';
16223	s << "\tscalingBehavior = " << getPresentScalingFlagsEXTStr(value.scalingBehavior) << '\n';
16224	s << "\tpresentGravityX = " << getPresentGravityFlagsEXTStr(value.presentGravityX) << '\n';
16225	s << "\tpresentGravityY = " << getPresentGravityFlagsEXTStr(value.presentGravityY) << '\n';
16226	s << '}';
16227	return s;
16228}
16229
16230std::ostream& operator<< (std::ostream& s, const VkReleaseSwapchainImagesInfoEXT& value)
16231{
16232	s << "VkReleaseSwapchainImagesInfoEXT = {\n";
16233	s << "\tsType = " << value.sType << '\n';
16234	s << "\tpNext = " << value.pNext << '\n';
16235	s << "\tswapchain = " << value.swapchain << '\n';
16236	s << "\timageIndexCount = " << value.imageIndexCount << '\n';
16237	s << "\tpImageIndices = " << value.pImageIndices << '\n';
16238	s << '}';
16239	return s;
16240}
16241
16242std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV& value)
16243{
16244	s << "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV = {\n";
16245	s << "\tsType = " << value.sType << '\n';
16246	s << "\tpNext = " << value.pNext << '\n';
16247	s << "\trayTracingInvocationReorder = " << value.rayTracingInvocationReorder << '\n';
16248	s << '}';
16249	return s;
16250}
16251
16252std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV& value)
16253{
16254	s << "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV = {\n";
16255	s << "\tsType = " << value.sType << '\n';
16256	s << "\tpNext = " << value.pNext << '\n';
16257	s << "\trayTracingInvocationReorderReorderingHint = " << value.rayTracingInvocationReorderReorderingHint << '\n';
16258	s << '}';
16259	return s;
16260}
16261
16262std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingInfoLUNARG& value)
16263{
16264	s << "VkDirectDriverLoadingInfoLUNARG = {\n";
16265	s << "\tsType = " << value.sType << '\n';
16266	s << "\tpNext = " << value.pNext << '\n';
16267	s << "\tflags = " << getDirectDriverLoadingFlagsLUNARGStr(value.flags) << '\n';
16268	s << "\tpfnGetInstanceProcAddr = " << value.pfnGetInstanceProcAddr << '\n';
16269	s << '}';
16270	return s;
16271}
16272
16273std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingListLUNARG& value)
16274{
16275	s << "VkDirectDriverLoadingListLUNARG = {\n";
16276	s << "\tsType = " << value.sType << '\n';
16277	s << "\tpNext = " << value.pNext << '\n';
16278	s << "\tmode = " << value.mode << '\n';
16279	s << "\tdriverCount = " << value.driverCount << '\n';
16280	s << "\tpDrivers = " << value.pDrivers << '\n';
16281	s << '}';
16282	return s;
16283}
16284
16285std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM& value)
16286{
16287	s << "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = {\n";
16288	s << "\tsType = " << value.sType << '\n';
16289	s << "\tpNext = " << value.pNext << '\n';
16290	s << "\tmultiviewPerViewViewports = " << value.multiviewPerViewViewports << '\n';
16291	s << '}';
16292	return s;
16293}
16294
16295std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
16296{
16297	s << "StdVideoH264SpsVuiFlags = {\n";
16298	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
16299	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
16300	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
16301	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
16302	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
16303	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
16304	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
16305	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
16306	s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
16307	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
16308	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
16309	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
16310	s << '}';
16311	return s;
16312}
16313
16314std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
16315{
16316	s << "StdVideoH264HrdParameters = {\n";
16317	s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
16318	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
16319	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
16320	s << "\treserved1 = " << value.reserved1 << '\n';
16321	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';
16322	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';
16323	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';
16324	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
16325	s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
16326	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
16327	s << "\ttime_offset_length = " << value.time_offset_length << '\n';
16328	s << '}';
16329	return s;
16330}
16331
16332std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
16333{
16334	s << "StdVideoH264SequenceParameterSetVui = {\n";
16335	s << "\tflags = " << value.flags << '\n';
16336	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
16337	s << "\tsar_width = " << value.sar_width << '\n';
16338	s << "\tsar_height = " << value.sar_height << '\n';
16339	s << "\tvideo_format = " << value.video_format << '\n';
16340	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
16341	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
16342	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
16343	s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
16344	s << "\ttime_scale = " << value.time_scale << '\n';
16345	s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
16346	s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
16347	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
16348	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
16349	s << "\treserved1 = " << value.reserved1 << '\n';
16350	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
16351	s << '}';
16352	return s;
16353}
16354
16355std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
16356{
16357	s << "StdVideoH264SpsFlags = {\n";
16358	s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
16359	s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
16360	s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
16361	s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
16362	s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
16363	s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
16364	s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
16365	s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
16366	s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
16367	s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
16368	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
16369	s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
16370	s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
16371	s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
16372	s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
16373	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
16374	s << '}';
16375	return s;
16376}
16377
16378std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
16379{
16380	s << "StdVideoH264ScalingLists = {\n";
16381	s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
16382	s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
16383	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
16384	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
16385	s << '}';
16386	return s;
16387}
16388
16389std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
16390{
16391	s << "StdVideoH264SequenceParameterSet = {\n";
16392	s << "\tflags = " << value.flags << '\n';
16393	s << "\tprofile_idc = " << value.profile_idc << '\n';
16394	s << "\tlevel_idc = " << value.level_idc << '\n';
16395	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
16396	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
16397	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
16398	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
16399	s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
16400	s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
16401	s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
16402	s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
16403	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
16404	s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
16405	s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
16406	s << "\treserved1 = " << value.reserved1 << '\n';
16407	s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
16408	s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
16409	s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
16410	s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
16411	s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
16412	s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
16413	s << "\treserved2 = " << value.reserved2 << '\n';
16414	s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
16415	s << "\tpScalingLists = " << value.pScalingLists << '\n';
16416	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
16417	s << '}';
16418	return s;
16419}
16420
16421std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
16422{
16423	s << "StdVideoH264PpsFlags = {\n";
16424	s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
16425	s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
16426	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
16427	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
16428	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
16429	s << "\tbottom_field_pic_order_in_frame_present_flag = " << value.bottom_field_pic_order_in_frame_present_flag << '\n';
16430	s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
16431	s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
16432	s << '}';
16433	return s;
16434}
16435
16436std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
16437{
16438	s << "StdVideoH264PictureParameterSet = {\n";
16439	s << "\tflags = " << value.flags << '\n';
16440	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
16441	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
16442	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
16443	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
16444	s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
16445	s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
16446	s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
16447	s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
16448	s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
16449	s << "\tpScalingLists = " << value.pScalingLists << '\n';
16450	s << '}';
16451	return s;
16452}
16453
16454std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
16455{
16456	s << "StdVideoDecodeH264PictureInfoFlags = {\n";
16457	s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
16458	s << "\tis_intra = " << value.is_intra << '\n';
16459	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
16460	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
16461	s << "\tis_reference = " << value.is_reference << '\n';
16462	s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
16463	s << '}';
16464	return s;
16465}
16466
16467std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
16468{
16469	s << "StdVideoDecodeH264PictureInfo = {\n";
16470	s << "\tflags = " << value.flags << '\n';
16471	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
16472	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
16473	s << "\treserved1 = " << value.reserved1 << '\n';
16474	s << "\treserved2 = " << value.reserved2 << '\n';
16475	s << "\tframe_num = " << value.frame_num << '\n';
16476	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
16477	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
16478	s << '}';
16479	return s;
16480}
16481
16482std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
16483{
16484	s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
16485	s << "\ttop_field_flag = " << value.top_field_flag << '\n';
16486	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
16487	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
16488	s << "\tis_non_existing = " << value.is_non_existing << '\n';
16489	s << '}';
16490	return s;
16491}
16492
16493std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
16494{
16495	s << "StdVideoDecodeH264ReferenceInfo = {\n";
16496	s << "\tflags = " << value.flags << '\n';
16497	s << "\tFrameNum = " << value.FrameNum << '\n';
16498	s << "\treserved = " << value.reserved << '\n';
16499	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
16500	s << '}';
16501	return s;
16502}
16503
16504std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
16505{
16506	s << "StdVideoEncodeH264WeightTableFlags = {\n";
16507	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
16508	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
16509	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
16510	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
16511	s << '}';
16512	return s;
16513}
16514
16515std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
16516{
16517	s << "StdVideoEncodeH264WeightTable = {\n";
16518	s << "\tflags = " << value.flags << '\n';
16519	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
16520	s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
16521	s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
16522	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
16523	s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
16524	s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
16525	s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
16526	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
16527	s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
16528	s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
16529	s << '}';
16530	return s;
16531}
16532
16533std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
16534{
16535	s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
16536	s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
16537	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
16538	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
16539	s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
16540	s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
16541	s << '}';
16542	return s;
16543}
16544
16545std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
16546{
16547	s << "StdVideoEncodeH264PictureInfoFlags = {\n";
16548	s << "\tidr_flag = " << value.idr_flag << '\n';
16549	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
16550	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
16551	s << '}';
16552	return s;
16553}
16554
16555std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
16556{
16557	s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
16558	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
16559	s << '}';
16560	return s;
16561}
16562
16563std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
16564{
16565	s << "StdVideoEncodeH264RefMgmtFlags = {\n";
16566	s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
16567	s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
16568	s << '}';
16569	return s;
16570}
16571
16572std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
16573{
16574	s << "StdVideoEncodeH264RefListModEntry = {\n";
16575	s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
16576	s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
16577	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
16578	s << '}';
16579	return s;
16580}
16581
16582std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
16583{
16584	s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
16585	s << "\toperation = " << value.operation << '\n';
16586	s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
16587	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
16588	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
16589	s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
16590	s << '}';
16591	return s;
16592}
16593
16594std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
16595{
16596	s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
16597	s << "\tflags = " << value.flags << '\n';
16598	s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
16599	s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
16600	s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
16601	s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
16602	s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
16603	s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
16604	s << '}';
16605	return s;
16606}
16607
16608std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
16609{
16610	s << "StdVideoEncodeH264PictureInfo = {\n";
16611	s << "\tflags = " << value.flags << '\n';
16612	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
16613	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
16614	s << "\tpictureType = " << value.pictureType << '\n';
16615	s << "\tframe_num = " << value.frame_num << '\n';
16616	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
16617	s << '}';
16618	return s;
16619}
16620
16621std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
16622{
16623	s << "StdVideoEncodeH264ReferenceInfo = {\n";
16624	s << "\tflags = " << value.flags << '\n';
16625	s << "\tFrameNum = " << value.FrameNum << '\n';
16626	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
16627	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
16628	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
16629	s << '}';
16630	return s;
16631}
16632
16633std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
16634{
16635	s << "StdVideoEncodeH264SliceHeader = {\n";
16636	s << "\tflags = " << value.flags << '\n';
16637	s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
16638	s << "\tslice_type = " << value.slice_type << '\n';
16639	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
16640	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
16641	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
16642	s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
16643	s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
16644	s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
16645	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
16646	s << "\tpWeightTable = " << value.pWeightTable << '\n';
16647	s << '}';
16648	return s;
16649}
16650
16651std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevelFlags& value)
16652{
16653	s << "StdVideoH265ProfileTierLevelFlags = {\n";
16654	s << "\tgeneral_tier_flag = " << value.general_tier_flag << '\n';
16655	s << "\tgeneral_progressive_source_flag = " << value.general_progressive_source_flag << '\n';
16656	s << "\tgeneral_interlaced_source_flag = " << value.general_interlaced_source_flag << '\n';
16657	s << "\tgeneral_non_packed_constraint_flag = " << value.general_non_packed_constraint_flag << '\n';
16658	s << "\tgeneral_frame_only_constraint_flag = " << value.general_frame_only_constraint_flag << '\n';
16659	s << '}';
16660	return s;
16661}
16662
16663std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevel& value)
16664{
16665	s << "StdVideoH265ProfileTierLevel = {\n";
16666	s << "\tflags = " << value.flags << '\n';
16667	s << "\tgeneral_profile_idc = " << value.general_profile_idc << '\n';
16668	s << "\tgeneral_level_idc = " << value.general_level_idc << '\n';
16669	s << '}';
16670	return s;
16671}
16672
16673std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
16674{
16675	s << "StdVideoH265DecPicBufMgr = {\n";
16676	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';
16677	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';
16678	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';
16679	s << '}';
16680	return s;
16681}
16682
16683std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
16684{
16685	s << "StdVideoH265SubLayerHrdParameters = {\n";
16686	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';
16687	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';
16688	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';
16689	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';
16690	s << "\tcbr_flag = " << value.cbr_flag << '\n';
16691	s << '}';
16692	return s;
16693}
16694
16695std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
16696{
16697	s << "StdVideoH265HrdFlags = {\n";
16698	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
16699	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
16700	s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
16701	s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
16702	s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
16703	s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
16704	s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
16705	s << '}';
16706	return s;
16707}
16708
16709std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
16710{
16711	s << "StdVideoH265HrdParameters = {\n";
16712	s << "\tflags = " << value.flags << '\n';
16713	s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
16714	s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
16715	s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
16716	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
16717	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
16718	s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
16719	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
16720	s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
16721	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
16722	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';
16723	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';
16724	s << "\treserved = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.reserved), DE_ARRAY_END(value.reserved)) << '\n';
16725	s << "\tpSubLayerHrdParametersNal = " << value.pSubLayerHrdParametersNal << '\n';
16726	s << "\tpSubLayerHrdParametersVcl = " << value.pSubLayerHrdParametersVcl << '\n';
16727	s << '}';
16728	return s;
16729}
16730
16731std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
16732{
16733	s << "StdVideoH265VpsFlags = {\n";
16734	s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
16735	s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
16736	s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
16737	s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
16738	s << '}';
16739	return s;
16740}
16741
16742std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
16743{
16744	s << "StdVideoH265VideoParameterSet = {\n";
16745	s << "\tflags = " << value.flags << '\n';
16746	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
16747	s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
16748	s << "\treserved1 = " << value.reserved1 << '\n';
16749	s << "\treserved2 = " << value.reserved2 << '\n';
16750	s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
16751	s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
16752	s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
16753	s << "\treserved3 = " << value.reserved3 << '\n';
16754	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
16755	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
16756	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
16757	s << '}';
16758	return s;
16759}
16760
16761std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
16762{
16763	s << "StdVideoH265ScalingLists = {\n";
16764	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
16765	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
16766	s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
16767	s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
16768	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';
16769	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';
16770	s << '}';
16771	return s;
16772}
16773
16774std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSetFlags& value)
16775{
16776	s << "StdVideoH265ShortTermRefPicSetFlags = {\n";
16777	s << "\tinter_ref_pic_set_prediction_flag = " << value.inter_ref_pic_set_prediction_flag << '\n';
16778	s << "\tdelta_rps_sign = " << value.delta_rps_sign << '\n';
16779	s << '}';
16780	return s;
16781}
16782
16783std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSet& value)
16784{
16785	s << "StdVideoH265ShortTermRefPicSet = {\n";
16786	s << "\tflags = " << value.flags << '\n';
16787	s << "\tdelta_idx_minus1 = " << value.delta_idx_minus1 << '\n';
16788	s << "\tuse_delta_flag = " << value.use_delta_flag << '\n';
16789	s << "\tabs_delta_rps_minus1 = " << value.abs_delta_rps_minus1 << '\n';
16790	s << "\tused_by_curr_pic_flag = " << value.used_by_curr_pic_flag << '\n';
16791	s << "\tused_by_curr_pic_s0_flag = " << value.used_by_curr_pic_s0_flag << '\n';
16792	s << "\tused_by_curr_pic_s1_flag = " << value.used_by_curr_pic_s1_flag << '\n';
16793	s << "\treserved1 = " << value.reserved1 << '\n';
16794	s << "\treserved2 = " << value.reserved2 << '\n';
16795	s << "\treserved3 = " << value.reserved3 << '\n';
16796	s << "\tnum_negative_pics = " << value.num_negative_pics << '\n';
16797	s << "\tnum_positive_pics = " << value.num_positive_pics << '\n';
16798	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';
16799	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';
16800	s << '}';
16801	return s;
16802}
16803
16804std::ostream& operator<< (std::ostream& s, const StdVideoH265LongTermRefPicsSps& value)
16805{
16806	s << "StdVideoH265LongTermRefPicsSps = {\n";
16807	s << "\tused_by_curr_pic_lt_sps_flag = " << value.used_by_curr_pic_lt_sps_flag << '\n';
16808	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';
16809	s << '}';
16810	return s;
16811}
16812
16813std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
16814{
16815	s << "StdVideoH265SpsVuiFlags = {\n";
16816	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
16817	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
16818	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
16819	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
16820	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
16821	s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
16822	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
16823	s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
16824	s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
16825	s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
16826	s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
16827	s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
16828	s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
16829	s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
16830	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
16831	s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
16832	s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
16833	s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
16834	s << '}';
16835	return s;
16836}
16837
16838std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
16839{
16840	s << "StdVideoH265SequenceParameterSetVui = {\n";
16841	s << "\tflags = " << value.flags << '\n';
16842	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
16843	s << "\tsar_width = " << value.sar_width << '\n';
16844	s << "\tsar_height = " << value.sar_height << '\n';
16845	s << "\tvideo_format = " << value.video_format << '\n';
16846	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
16847	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
16848	s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
16849	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
16850	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
16851	s << "\treserved1 = " << value.reserved1 << '\n';
16852	s << "\treserved2 = " << value.reserved2 << '\n';
16853	s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
16854	s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
16855	s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
16856	s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
16857	s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
16858	s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
16859	s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
16860	s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
16861	s << "\treserved3 = " << value.reserved3 << '\n';
16862	s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
16863	s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
16864	s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
16865	s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
16866	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
16867	s << '}';
16868	return s;
16869}
16870
16871std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
16872{
16873	s << "StdVideoH265PredictorPaletteEntries = {\n";
16874	s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
16875	s << '}';
16876	return s;
16877}
16878
16879std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
16880{
16881	s << "StdVideoH265SpsFlags = {\n";
16882	s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
16883	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
16884	s << "\tconformance_window_flag = " << value.conformance_window_flag << '\n';
16885	s << "\tsps_sub_layer_ordering_info_present_flag = " << value.sps_sub_layer_ordering_info_present_flag << '\n';
16886	s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
16887	s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
16888	s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
16889	s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
16890	s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
16891	s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
16892	s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
16893	s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
16894	s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
16895	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
16896	s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
16897	s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
16898	s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
16899	s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
16900	s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
16901	s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
16902	s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
16903	s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
16904	s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
16905	s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
16906	s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
16907	s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
16908	s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
16909	s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
16910	s << "\tsps_palette_predictor_initializers_present_flag = " << value.sps_palette_predictor_initializers_present_flag << '\n';
16911	s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
16912	s << '}';
16913	return s;
16914}
16915
16916std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
16917{
16918	s << "StdVideoH265SequenceParameterSet = {\n";
16919	s << "\tflags = " << value.flags << '\n';
16920	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
16921	s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
16922	s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
16923	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
16924	s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
16925	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
16926	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
16927	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
16928	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
16929	s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
16930	s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
16931	s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
16932	s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
16933	s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
16934	s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
16935	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
16936	s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
16937	s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
16938	s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
16939	s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
16940	s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
16941	s << "\treserved1 = " << value.reserved1 << '\n';
16942	s << "\treserved2 = " << value.reserved2 << '\n';
16943	s << "\tpalette_max_size = " << value.palette_max_size << '\n';
16944	s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
16945	s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
16946	s << "\tsps_num_palette_predictor_initializers_minus1 = " << value.sps_num_palette_predictor_initializers_minus1 << '\n';
16947	s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
16948	s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
16949	s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
16950	s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
16951	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
16952	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
16953	s << "\tpScalingLists = " << value.pScalingLists << '\n';
16954	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
16955	s << "\tpLongTermRefPicsSps = " << value.pLongTermRefPicsSps << '\n';
16956	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
16957	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
16958	s << '}';
16959	return s;
16960}
16961
16962std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
16963{
16964	s << "StdVideoH265PpsFlags = {\n";
16965	s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
16966	s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
16967	s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
16968	s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
16969	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
16970	s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
16971	s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
16972	s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
16973	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
16974	s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
16975	s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
16976	s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
16977	s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
16978	s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
16979	s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
16980	s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
16981	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
16982	s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
16983	s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
16984	s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
16985	s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
16986	s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
16987	s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
16988	s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
16989	s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
16990	s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
16991	s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
16992	s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
16993	s << "\tpps_palette_predictor_initializers_present_flag = " << value.pps_palette_predictor_initializers_present_flag << '\n';
16994	s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
16995	s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
16996	s << '}';
16997	return s;
16998}
16999
17000std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
17001{
17002	s << "StdVideoH265PictureParameterSet = {\n";
17003	s << "\tflags = " << value.flags << '\n';
17004	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
17005	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
17006	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
17007	s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
17008	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
17009	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
17010	s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
17011	s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
17012	s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
17013	s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
17014	s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
17015	s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
17016	s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
17017	s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
17018	s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
17019	s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
17020	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';
17021	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';
17022	s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
17023	s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
17024	s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
17025	s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
17026	s << "\tpps_act_cr_qp_offset_plus3 = " << value.pps_act_cr_qp_offset_plus3 << '\n';
17027	s << "\tpps_num_palette_predictor_initializers = " << value.pps_num_palette_predictor_initializers << '\n';
17028	s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
17029	s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
17030	s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
17031	s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
17032	s << "\treserved1 = " << value.reserved1 << '\n';
17033	s << "\treserved2 = " << value.reserved2 << '\n';
17034	s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
17035	s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
17036	s << "\treserved3 = " << value.reserved3 << '\n';
17037	s << "\tpScalingLists = " << value.pScalingLists << '\n';
17038	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
17039	s << '}';
17040	return s;
17041}
17042
17043std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
17044{
17045	s << "StdVideoDecodeH265PictureInfoFlags = {\n";
17046	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
17047	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
17048	s << "\tIsReference = " << value.IsReference << '\n';
17049	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
17050	s << '}';
17051	return s;
17052}
17053
17054std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
17055{
17056	s << "StdVideoDecodeH265PictureInfo = {\n";
17057	s << "\tflags = " << value.flags << '\n';
17058	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
17059	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
17060	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
17061	s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
17062	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
17063	s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
17064	s << "\treserved = " << value.reserved << '\n';
17065	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';
17066	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';
17067	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';
17068	s << '}';
17069	return s;
17070}
17071
17072std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
17073{
17074	s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
17075	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
17076	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
17077	s << '}';
17078	return s;
17079}
17080
17081std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
17082{
17083	s << "StdVideoDecodeH265ReferenceInfo = {\n";
17084	s << "\tflags = " << value.flags << '\n';
17085	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
17086	s << '}';
17087	return s;
17088}
17089
17090std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
17091{
17092	s << "StdVideoEncodeH265WeightTableFlags = {\n";
17093	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
17094	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
17095	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
17096	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
17097	s << '}';
17098	return s;
17099}
17100
17101std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
17102{
17103	s << "StdVideoEncodeH265WeightTable = {\n";
17104	s << "\tflags = " << value.flags << '\n';
17105	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
17106	s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
17107	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';
17108	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
17109	s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
17110	s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
17111	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';
17112	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
17113	s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
17114	s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
17115	s << '}';
17116	return s;
17117}
17118
17119std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentLongTermRefPics& value)
17120{
17121	s << "StdVideoEncodeH265SliceSegmentLongTermRefPics = {\n";
17122	s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
17123	s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
17124	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';
17125	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';
17126	s << "\tused_by_curr_pic_lt_flag = " << value.used_by_curr_pic_lt_flag << '\n';
17127	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';
17128	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';
17129	s << '}';
17130	return s;
17131}
17132
17133std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
17134{
17135	s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
17136	s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
17137	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
17138	s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
17139	s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
17140	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
17141	s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
17142	s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
17143	s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
17144	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
17145	s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
17146	s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
17147	s << "\tcu_chroma_qp_offset_enabled_flag = " << value.cu_chroma_qp_offset_enabled_flag << '\n';
17148	s << "\tdeblocking_filter_override_flag = " << value.deblocking_filter_override_flag << '\n';
17149	s << "\tslice_deblocking_filter_disabled_flag = " << value.slice_deblocking_filter_disabled_flag << '\n';
17150	s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
17151	s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
17152	s << '}';
17153	return s;
17154}
17155
17156std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
17157{
17158	s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
17159	s << "\tflags = " << value.flags << '\n';
17160	s << "\tslice_type = " << value.slice_type << '\n';
17161	s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
17162	s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
17163	s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
17164	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
17165	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
17166	s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
17167	s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
17168	s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
17169	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
17170	s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
17171	s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
17172	s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
17173	s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
17174	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
17175	s << "\tpLongTermRefPics = " << value.pLongTermRefPics << '\n';
17176	s << "\tpWeightTable = " << value.pWeightTable << '\n';
17177	s << '}';
17178	return s;
17179}
17180
17181std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
17182{
17183	s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
17184	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
17185	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
17186	s << '}';
17187	return s;
17188}
17189
17190std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
17191{
17192	s << "StdVideoEncodeH265ReferenceModifications = {\n";
17193	s << "\tflags = " << value.flags << '\n';
17194	s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
17195	s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
17196	s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
17197	s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
17198	s << '}';
17199	return s;
17200}
17201
17202std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
17203{
17204	s << "StdVideoEncodeH265PictureInfoFlags = {\n";
17205	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
17206	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
17207	s << "\tlong_term_flag = " << value.long_term_flag << '\n';
17208	s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
17209	s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
17210	s << '}';
17211	return s;
17212}
17213
17214std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
17215{
17216	s << "StdVideoEncodeH265PictureInfo = {\n";
17217	s << "\tflags = " << value.flags << '\n';
17218	s << "\tPictureType = " << value.PictureType << '\n';
17219	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
17220	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
17221	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
17222	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
17223	s << "\tTemporalId = " << value.TemporalId << '\n';
17224	s << '}';
17225	return s;
17226}
17227
17228std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
17229{
17230	s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
17231	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
17232	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
17233	s << '}';
17234	return s;
17235}
17236
17237std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
17238{
17239	s << "StdVideoEncodeH265ReferenceInfo = {\n";
17240	s << "\tflags = " << value.flags << '\n';
17241	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
17242	s << "\tTemporalId = " << value.TemporalId << '\n';
17243	s << '}';
17244	return s;
17245}
17246