• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 * This file was generated by /scripts/gen_framework.py
4 */
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<VkPipelineBinaryKHR>				(void) { return "VkPipelineBinaryKHR";				}
32template<> const char*	getTypeName<VkIndirectCommandsLayoutNV>			(void) { return "VkIndirectCommandsLayoutNV";		}
33template<> const char*	getTypeName<VkIndirectCommandsLayoutEXT>		(void) { return "VkIndirectCommandsLayoutEXT";		}
34template<> const char*	getTypeName<VkIndirectExecutionSetEXT>			(void) { return "VkIndirectExecutionSetEXT";		}
35template<> const char*	getTypeName<VkDescriptorUpdateTemplate>			(void) { return "VkDescriptorUpdateTemplate";		}
36template<> const char*	getTypeName<VkSamplerYcbcrConversion>			(void) { return "VkSamplerYcbcrConversion";			}
37template<> const char*	getTypeName<VkValidationCacheEXT>				(void) { return "VkValidationCacheEXT";				}
38template<> const char*	getTypeName<VkAccelerationStructureKHR>			(void) { return "VkAccelerationStructureKHR";		}
39template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
40template<> const char*	getTypeName<VkPerformanceConfigurationINTEL>	(void) { return "VkPerformanceConfigurationINTEL";	}
41template<> const char*	getTypeName<VkBufferCollectionFUCHSIA>			(void) { return "VkBufferCollectionFUCHSIA";		}
42template<> const char*	getTypeName<VkDeferredOperationKHR>				(void) { return "VkDeferredOperationKHR";			}
43template<> const char*	getTypeName<VkPrivateDataSlot>					(void) { return "VkPrivateDataSlot";				}
44template<> const char*	getTypeName<VkCuModuleNVX>						(void) { return "VkCuModuleNVX";					}
45template<> const char*	getTypeName<VkCuFunctionNVX>					(void) { return "VkCuFunctionNVX";					}
46template<> const char*	getTypeName<VkOpticalFlowSessionNV>				(void) { return "VkOpticalFlowSessionNV";			}
47template<> const char*	getTypeName<VkMicromapEXT>						(void) { return "VkMicromapEXT";					}
48template<> const char*	getTypeName<VkShaderEXT>						(void) { return "VkShaderEXT";						}
49template<> const char*	getTypeName<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
50template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
51template<> const char*	getTypeName<VkSurfaceKHR>						(void) { return "VkSurfaceKHR";						}
52template<> const char*	getTypeName<VkSwapchainKHR>						(void) { return "VkSwapchainKHR";					}
53template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
54template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
55template<> const char*	getTypeName<VkVideoSessionKHR>					(void) { return "VkVideoSessionKHR";				}
56template<> const char*	getTypeName<VkVideoSessionParametersKHR>		(void) { return "VkVideoSessionParametersKHR";		}
57template<> const char*	getTypeName<VkCudaModuleNV>						(void) { return "VkCudaModuleNV";					}
58template<> const char*	getTypeName<VkCudaFunctionNV>					(void) { return "VkCudaFunctionNV";					}
59
60namespace pt
61{
62std::ostream& operator<< (std::ostream& s, XlibDisplayPtr				v) { return s << tcu::toHex(v.internal); }
63std::ostream& operator<< (std::ostream& s, XlibWindow					v) { return s << tcu::toHex(v.internal); }
64std::ostream& operator<< (std::ostream& s, XlibVisualID					v) { return s << tcu::toHex(v.internal); }
65std::ostream& operator<< (std::ostream& s, XcbConnectionPtr				v) { return s << tcu::toHex(v.internal); }
66std::ostream& operator<< (std::ostream& s, XcbWindow					v) { return s << tcu::toHex(v.internal); }
67std::ostream& operator<< (std::ostream& s, XcbVisualid					v) { return s << tcu::toHex(v.internal); }
68std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr			v) { return s << tcu::toHex(v.internal); }
69std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr			v) { return s << tcu::toHex(v.internal); }
70std::ostream& operator<< (std::ostream& s, MirConnectionPtr				v) { return s << tcu::toHex(v.internal); }
71std::ostream& operator<< (std::ostream& s, MirSurfacePtr				v) { return s << tcu::toHex(v.internal); }
72std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr		v) { return s << tcu::toHex(v.internal); }
73std::ostream& operator<< (std::ostream& s, Win32InstanceHandle			v) { return s << tcu::toHex(v.internal); }
74std::ostream& operator<< (std::ostream& s, Win32WindowHandle			v) { return s << tcu::toHex(v.internal); }
75std::ostream& operator<< (std::ostream& s, Win32Handle					v) { return s << tcu::toHex(v.internal); }
76std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr	v) { return s << tcu::toHex(v.internal); }
77std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr		v) { return s << tcu::toHex(v.internal); }
78std::ostream& operator<< (std::ostream& s, Win32MonitorHandle			v) { return s << tcu::toHex(v.internal); }
79std::ostream& operator<< (std::ostream& s, Win32LPCWSTR					v) { return s << tcu::toHex(v.internal); }
80std::ostream& operator<< (std::ostream& s, RROutput						v) { return s << tcu::toHex(v.internal); }
81std::ostream& operator<< (std::ostream& s, zx_handle_t					v) { return s << tcu::toHex(v.internal); }
82std::ostream& operator<< (std::ostream& s, GgpFrameToken				v) { return s << tcu::toHex(v.internal); }
83std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor			v) { return s << tcu::toHex(v.internal); }
84std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
85std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr			v) { return s << tcu::toHex(v.internal); }
86std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr			v) { return s << tcu::toHex(v.internal); }
87std::ostream& operator<< (std::ostream& s, MTLDevice_id					v) { return s << tcu::toHex(v.internal); }
88std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id			v) { return s << tcu::toHex(v.internal); }
89std::ostream& operator<< (std::ostream& s, MTLBuffer_id					v) { return s << tcu::toHex(v.internal); }
90std::ostream& operator<< (std::ostream& s, MTLTexture_id				v) { return s << tcu::toHex(v.internal); }
91std::ostream& operator<< (std::ostream& s, IOSurfaceRef					v) { return s << tcu::toHex(v.internal); }
92std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id			v) { return s << tcu::toHex(v.internal); }
93std::ostream& operator<< (std::ostream& s, NvSciBufObj					v) { return s << tcu::toHex(v.internal); }
94std::ostream& operator<< (std::ostream& s, NvSciSyncObj					v) { return s << tcu::toHex(v.internal); }
95std::ostream& operator<< (std::ostream& s, NvSciSyncFence				v) { return s << tcu::toHex(v.internal); }
96std::ostream& operator<< (std::ostream& s, NvSciBufAttrList				v) { return s << tcu::toHex(v.internal); }
97std::ostream& operator<< (std::ostream& s, NvSciSyncAttrList			v) { return s << tcu::toHex(v.internal); }
98}
99
100const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
101{
102	switch (value)
103	{
104		case VK_ATTACHMENT_LOAD_OP_LOAD:		return "VK_ATTACHMENT_LOAD_OP_LOAD";
105		case VK_ATTACHMENT_LOAD_OP_CLEAR:		return "VK_ATTACHMENT_LOAD_OP_CLEAR";
106		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:	return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
107		case VK_ATTACHMENT_LOAD_OP_NONE:		return "VK_ATTACHMENT_LOAD_OP_NONE";
108		default:								return nullptr;
109	}
110}
111
112const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
113{
114	switch (value)
115	{
116		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
117		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
118		case VK_ATTACHMENT_STORE_OP_NONE:		return "VK_ATTACHMENT_STORE_OP_NONE";
119		default:								return nullptr;
120	}
121}
122
123const char* getBlendFactorName (VkBlendFactor value)
124{
125	switch (value)
126	{
127		case VK_BLEND_FACTOR_ZERO:						return "VK_BLEND_FACTOR_ZERO";
128		case VK_BLEND_FACTOR_ONE:						return "VK_BLEND_FACTOR_ONE";
129		case VK_BLEND_FACTOR_SRC_COLOR:					return "VK_BLEND_FACTOR_SRC_COLOR";
130		case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
131		case VK_BLEND_FACTOR_DST_COLOR:					return "VK_BLEND_FACTOR_DST_COLOR";
132		case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
133		case VK_BLEND_FACTOR_SRC_ALPHA:					return "VK_BLEND_FACTOR_SRC_ALPHA";
134		case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
135		case VK_BLEND_FACTOR_DST_ALPHA:					return "VK_BLEND_FACTOR_DST_ALPHA";
136		case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
137		case VK_BLEND_FACTOR_CONSTANT_COLOR:			return "VK_BLEND_FACTOR_CONSTANT_COLOR";
138		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
139		case VK_BLEND_FACTOR_CONSTANT_ALPHA:			return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
140		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
141		case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:		return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
142		case VK_BLEND_FACTOR_SRC1_COLOR:				return "VK_BLEND_FACTOR_SRC1_COLOR";
143		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
144		case VK_BLEND_FACTOR_SRC1_ALPHA:				return "VK_BLEND_FACTOR_SRC1_ALPHA";
145		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
146		default:										return nullptr;
147	}
148}
149
150const char* getBlendOpName (VkBlendOp value)
151{
152	switch (value)
153	{
154		case VK_BLEND_OP_ADD:						return "VK_BLEND_OP_ADD";
155		case VK_BLEND_OP_SUBTRACT:					return "VK_BLEND_OP_SUBTRACT";
156		case VK_BLEND_OP_REVERSE_SUBTRACT:			return "VK_BLEND_OP_REVERSE_SUBTRACT";
157		case VK_BLEND_OP_MIN:						return "VK_BLEND_OP_MIN";
158		case VK_BLEND_OP_MAX:						return "VK_BLEND_OP_MAX";
159		case VK_BLEND_OP_ZERO_EXT:					return "VK_BLEND_OP_ZERO_EXT";
160		case VK_BLEND_OP_SRC_EXT:					return "VK_BLEND_OP_SRC_EXT";
161		case VK_BLEND_OP_DST_EXT:					return "VK_BLEND_OP_DST_EXT";
162		case VK_BLEND_OP_SRC_OVER_EXT:				return "VK_BLEND_OP_SRC_OVER_EXT";
163		case VK_BLEND_OP_DST_OVER_EXT:				return "VK_BLEND_OP_DST_OVER_EXT";
164		case VK_BLEND_OP_SRC_IN_EXT:				return "VK_BLEND_OP_SRC_IN_EXT";
165		case VK_BLEND_OP_DST_IN_EXT:				return "VK_BLEND_OP_DST_IN_EXT";
166		case VK_BLEND_OP_SRC_OUT_EXT:				return "VK_BLEND_OP_SRC_OUT_EXT";
167		case VK_BLEND_OP_DST_OUT_EXT:				return "VK_BLEND_OP_DST_OUT_EXT";
168		case VK_BLEND_OP_SRC_ATOP_EXT:				return "VK_BLEND_OP_SRC_ATOP_EXT";
169		case VK_BLEND_OP_DST_ATOP_EXT:				return "VK_BLEND_OP_DST_ATOP_EXT";
170		case VK_BLEND_OP_XOR_EXT:					return "VK_BLEND_OP_XOR_EXT";
171		case VK_BLEND_OP_MULTIPLY_EXT:				return "VK_BLEND_OP_MULTIPLY_EXT";
172		case VK_BLEND_OP_SCREEN_EXT:				return "VK_BLEND_OP_SCREEN_EXT";
173		case VK_BLEND_OP_OVERLAY_EXT:				return "VK_BLEND_OP_OVERLAY_EXT";
174		case VK_BLEND_OP_DARKEN_EXT:				return "VK_BLEND_OP_DARKEN_EXT";
175		case VK_BLEND_OP_LIGHTEN_EXT:				return "VK_BLEND_OP_LIGHTEN_EXT";
176		case VK_BLEND_OP_COLORDODGE_EXT:			return "VK_BLEND_OP_COLORDODGE_EXT";
177		case VK_BLEND_OP_COLORBURN_EXT:				return "VK_BLEND_OP_COLORBURN_EXT";
178		case VK_BLEND_OP_HARDLIGHT_EXT:				return "VK_BLEND_OP_HARDLIGHT_EXT";
179		case VK_BLEND_OP_SOFTLIGHT_EXT:				return "VK_BLEND_OP_SOFTLIGHT_EXT";
180		case VK_BLEND_OP_DIFFERENCE_EXT:			return "VK_BLEND_OP_DIFFERENCE_EXT";
181		case VK_BLEND_OP_EXCLUSION_EXT:				return "VK_BLEND_OP_EXCLUSION_EXT";
182		case VK_BLEND_OP_INVERT_EXT:				return "VK_BLEND_OP_INVERT_EXT";
183		case VK_BLEND_OP_INVERT_RGB_EXT:			return "VK_BLEND_OP_INVERT_RGB_EXT";
184		case VK_BLEND_OP_LINEARDODGE_EXT:			return "VK_BLEND_OP_LINEARDODGE_EXT";
185		case VK_BLEND_OP_LINEARBURN_EXT:			return "VK_BLEND_OP_LINEARBURN_EXT";
186		case VK_BLEND_OP_VIVIDLIGHT_EXT:			return "VK_BLEND_OP_VIVIDLIGHT_EXT";
187		case VK_BLEND_OP_LINEARLIGHT_EXT:			return "VK_BLEND_OP_LINEARLIGHT_EXT";
188		case VK_BLEND_OP_PINLIGHT_EXT:				return "VK_BLEND_OP_PINLIGHT_EXT";
189		case VK_BLEND_OP_HARDMIX_EXT:				return "VK_BLEND_OP_HARDMIX_EXT";
190		case VK_BLEND_OP_HSL_HUE_EXT:				return "VK_BLEND_OP_HSL_HUE_EXT";
191		case VK_BLEND_OP_HSL_SATURATION_EXT:		return "VK_BLEND_OP_HSL_SATURATION_EXT";
192		case VK_BLEND_OP_HSL_COLOR_EXT:				return "VK_BLEND_OP_HSL_COLOR_EXT";
193		case VK_BLEND_OP_HSL_LUMINOSITY_EXT:		return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
194		case VK_BLEND_OP_PLUS_EXT:					return "VK_BLEND_OP_PLUS_EXT";
195		case VK_BLEND_OP_PLUS_CLAMPED_EXT:			return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
196		case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:	return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
197		case VK_BLEND_OP_PLUS_DARKER_EXT:			return "VK_BLEND_OP_PLUS_DARKER_EXT";
198		case VK_BLEND_OP_MINUS_EXT:					return "VK_BLEND_OP_MINUS_EXT";
199		case VK_BLEND_OP_MINUS_CLAMPED_EXT:			return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
200		case VK_BLEND_OP_CONTRAST_EXT:				return "VK_BLEND_OP_CONTRAST_EXT";
201		case VK_BLEND_OP_INVERT_OVG_EXT:			return "VK_BLEND_OP_INVERT_OVG_EXT";
202		case VK_BLEND_OP_RED_EXT:					return "VK_BLEND_OP_RED_EXT";
203		case VK_BLEND_OP_GREEN_EXT:					return "VK_BLEND_OP_GREEN_EXT";
204		case VK_BLEND_OP_BLUE_EXT:					return "VK_BLEND_OP_BLUE_EXT";
205		default:									return nullptr;
206	}
207}
208
209const char* getBorderColorName (VkBorderColor value)
210{
211	switch (value)
212	{
213		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
214		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
215		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
216		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
217		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
218		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
219		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
220		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
221		default:										return nullptr;
222	}
223}
224
225tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
226{
227	static const tcu::Format::BitDesc s_desc[] =
228	{
229		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,	"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
230	};
231	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
232}
233
234tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
235{
236	static const tcu::Format::BitDesc s_desc[] =
237	{
238		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
239	};
240	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
241}
242
243tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
244{
245	static const tcu::Format::BitDesc s_desc[] =
246	{
247		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,							"VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
248		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,	"VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
249		tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,				"VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
250		tcu::Format::BitDesc(VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
251		tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,					"VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
252	};
253	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
254}
255
256const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
257{
258	switch (value)
259	{
260		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:	return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
261		default:									return nullptr;
262	}
263}
264
265tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
266{
267	static const tcu::Format::BitDesc s_desc[] =
268	{
269		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_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> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
275{
276	static const tcu::Format::BitDesc s_desc[] =
277	{
278		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,	"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
279		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,		"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
280	};
281	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
282}
283
284tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
285{
286	static const tcu::Format::BitDesc s_desc[] =
287	{
288		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,					"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT"),
289		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
290		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT"),
291		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
292		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,	"VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT"),
293		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV,						"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV"),
294		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV"),
295	};
296	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
297}
298
299tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
300{
301	static const tcu::Format::BitDesc s_desc[] =
302	{
303		tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,	"VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
304	};
305	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
306}
307
308tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
309{
310	static const tcu::Format::BitDesc s_desc[] =
311	{
312		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,	"VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
313	};
314	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
315}
316
317tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
318{
319	static const tcu::Format::BitDesc s_desc[] =
320	{
321		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,						"VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
322		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,						"VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
323		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,						"VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
324		tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,							"VK_BUFFER_CREATE_PROTECTED_BIT"),
325		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
326		tcu::Format::BitDesc(VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
327		tcu::Format::BitDesc(VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,		"VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"),
328	};
329	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
330}
331
332tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
333{
334	static const tcu::Format::BitDesc s_desc[] =
335	{
336		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
337		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
338		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
339		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
340		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,									"VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
341		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,									"VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
342		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
343		tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
344		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,									"VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
345		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
346		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
347		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
348		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
349		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
350		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
351		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
352		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
353		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
354		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"),
355		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,				"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
356		tcu::Format::BitDesc(VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"),
357		tcu::Format::BitDesc(VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,					"VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"),
358		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,				"VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
359		tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,								"VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"),
360		tcu::Format::BitDesc(VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,						"VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"),
361		tcu::Format::BitDesc(VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,			"VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"),
362	};
363	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
364}
365
366tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
367{
368	static const tcu::Format::BitDesc s_desc[] =
369	{
370		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,	"VK_COLOR_COMPONENT_R_BIT"),
371		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,	"VK_COLOR_COMPONENT_G_BIT"),
372		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,	"VK_COLOR_COMPONENT_B_BIT"),
373		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,	"VK_COLOR_COMPONENT_A_BIT"),
374	};
375	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
376}
377
378const char* getComponentSwizzleName (VkComponentSwizzle value)
379{
380	switch (value)
381	{
382		case VK_COMPONENT_SWIZZLE_IDENTITY:	return "VK_COMPONENT_SWIZZLE_IDENTITY";
383		case VK_COMPONENT_SWIZZLE_ZERO:		return "VK_COMPONENT_SWIZZLE_ZERO";
384		case VK_COMPONENT_SWIZZLE_ONE:		return "VK_COMPONENT_SWIZZLE_ONE";
385		case VK_COMPONENT_SWIZZLE_R:		return "VK_COMPONENT_SWIZZLE_R";
386		case VK_COMPONENT_SWIZZLE_G:		return "VK_COMPONENT_SWIZZLE_G";
387		case VK_COMPONENT_SWIZZLE_B:		return "VK_COMPONENT_SWIZZLE_B";
388		case VK_COMPONENT_SWIZZLE_A:		return "VK_COMPONENT_SWIZZLE_A";
389		default:							return nullptr;
390	}
391}
392
393tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
394{
395	static const tcu::Format::BitDesc s_desc[] =
396	{
397		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,				"VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
398		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,	"VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
399		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,				"VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
400	};
401	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
402}
403
404tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
405{
406	static const tcu::Format::BitDesc s_desc[] =
407	{
408		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
409	};
410	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
411}
412
413tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
414{
415	static const tcu::Format::BitDesc s_desc[] =
416	{
417		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
418	};
419	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
420}
421
422const char* getCommandBufferLevelName (VkCommandBufferLevel value)
423{
424	switch (value)
425	{
426		case VK_COMMAND_BUFFER_LEVEL_PRIMARY:	return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
427		case VK_COMMAND_BUFFER_LEVEL_SECONDARY:	return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
428		default:								return nullptr;
429	}
430}
431
432tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
433{
434	static const tcu::Format::BitDesc s_desc[] =
435	{
436		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		"VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
437		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,	"VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
438		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,		"VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
439	};
440	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
441}
442
443const char* getCompareOpName (VkCompareOp value)
444{
445	switch (value)
446	{
447		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
448		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
449		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
450		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
451		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
452		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
453		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
454		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
455		default:								return nullptr;
456	}
457}
458
459tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
460{
461	static const tcu::Format::BitDesc s_desc[] =
462	{
463		tcu::Format::BitDesc(VK_CULL_MODE_NONE,				"VK_CULL_MODE_NONE"),
464		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,		"VK_CULL_MODE_FRONT_BIT"),
465		tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,			"VK_CULL_MODE_BACK_BIT"),
466		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,	"VK_CULL_MODE_FRONT_AND_BACK"),
467	};
468	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
469}
470
471const char* getDescriptorTypeName (VkDescriptorType value)
472{
473	switch (value)
474	{
475		case VK_DESCRIPTOR_TYPE_SAMPLER:					return "VK_DESCRIPTOR_TYPE_SAMPLER";
476		case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:		return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
477		case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:				return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
478		case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:				return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
479		case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
480		case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
481		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:				return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
482		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:				return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
483		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
484		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
485		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
486		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:		return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
487		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
488		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
489		case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:				return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT";
490		case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:	return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
491		case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:		return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
492		default:											return nullptr;
493	}
494}
495
496const char* getDynamicStateName (VkDynamicState value)
497{
498	switch (value)
499	{
500		case VK_DYNAMIC_STATE_VIEWPORT:									return "VK_DYNAMIC_STATE_VIEWPORT";
501		case VK_DYNAMIC_STATE_SCISSOR:									return "VK_DYNAMIC_STATE_SCISSOR";
502		case VK_DYNAMIC_STATE_LINE_WIDTH:								return "VK_DYNAMIC_STATE_LINE_WIDTH";
503		case VK_DYNAMIC_STATE_DEPTH_BIAS:								return "VK_DYNAMIC_STATE_DEPTH_BIAS";
504		case VK_DYNAMIC_STATE_BLEND_CONSTANTS:							return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
505		case VK_DYNAMIC_STATE_DEPTH_BOUNDS:								return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
506		case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
507		case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:						return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
508		case VK_DYNAMIC_STATE_STENCIL_REFERENCE:						return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
509		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:					return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
510		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:					return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
511		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT";
512		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT";
513		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:						return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
514		case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
515		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:			return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
516		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:				return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV";
517		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:						return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
518		case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:				return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
519		case VK_DYNAMIC_STATE_LINE_STIPPLE:								return "VK_DYNAMIC_STATE_LINE_STIPPLE";
520		case VK_DYNAMIC_STATE_CULL_MODE:								return "VK_DYNAMIC_STATE_CULL_MODE";
521		case VK_DYNAMIC_STATE_FRONT_FACE:								return "VK_DYNAMIC_STATE_FRONT_FACE";
522		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:						return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
523		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:						return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
524		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:						return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
525		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:				return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
526		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
527		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
528		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:							return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
529		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:					return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
530		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:						return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
531		case VK_DYNAMIC_STATE_STENCIL_OP:								return "VK_DYNAMIC_STATE_STENCIL_OP";
532		case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:		return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
533		case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:							return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
534		case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:					return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
535		case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:				return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
536		case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:						return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
537		case VK_DYNAMIC_STATE_LOGIC_OP_EXT:								return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
538		case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:					return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
539		case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
540		case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:			return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT";
541		case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT";
542		case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:							return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT";
543		case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:				return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT";
544		case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:							return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT";
545		case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
546		case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
547		case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:						return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT";
548		case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT";
549		case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT";
550		case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:						return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT";
551		case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:					return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT";
552		case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:		return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT";
553		case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:	return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT";
554		case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT";
555		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:				return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT";
556		case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:					return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT";
557		case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:				return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT";
558		case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:				return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT";
559		case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:					return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT";
560		case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:		return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT";
561		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:				return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV";
562		case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:						return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV";
563		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV";
564		case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:			return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV";
565		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV";
566		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:		return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV";
567		case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV";
568		case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:				return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV";
569		case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:	return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV";
570		case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:				return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV";
571		case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:		return "VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT";
572		case VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:					return "VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT";
573		default:														return nullptr;
574	}
575}
576
577tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
578{
579	static const tcu::Format::BitDesc s_desc[] =
580	{
581		tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,	"VK_FENCE_CREATE_SIGNALED_BIT"),
582	};
583	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
584}
585
586const char* getPolygonModeName (VkPolygonMode value)
587{
588	switch (value)
589	{
590		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
591		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
592		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
593		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
594		default:								return nullptr;
595	}
596}
597
598const char* getFormatName (VkFormat value)
599{
600	switch (value)
601	{
602		case VK_FORMAT_UNDEFINED:									return "VK_FORMAT_UNDEFINED";
603		case VK_FORMAT_R4G4_UNORM_PACK8:							return "VK_FORMAT_R4G4_UNORM_PACK8";
604		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:						return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
605		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:						return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
606		case VK_FORMAT_R5G6B5_UNORM_PACK16:							return "VK_FORMAT_R5G6B5_UNORM_PACK16";
607		case VK_FORMAT_B5G6R5_UNORM_PACK16:							return "VK_FORMAT_B5G6R5_UNORM_PACK16";
608		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:						return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
609		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:						return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
610		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:						return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
611		case VK_FORMAT_R8_UNORM:									return "VK_FORMAT_R8_UNORM";
612		case VK_FORMAT_R8_SNORM:									return "VK_FORMAT_R8_SNORM";
613		case VK_FORMAT_R8_USCALED:									return "VK_FORMAT_R8_USCALED";
614		case VK_FORMAT_R8_SSCALED:									return "VK_FORMAT_R8_SSCALED";
615		case VK_FORMAT_R8_UINT:										return "VK_FORMAT_R8_UINT";
616		case VK_FORMAT_R8_SINT:										return "VK_FORMAT_R8_SINT";
617		case VK_FORMAT_R8_SRGB:										return "VK_FORMAT_R8_SRGB";
618		case VK_FORMAT_R8G8_UNORM:									return "VK_FORMAT_R8G8_UNORM";
619		case VK_FORMAT_R8G8_SNORM:									return "VK_FORMAT_R8G8_SNORM";
620		case VK_FORMAT_R8G8_USCALED:								return "VK_FORMAT_R8G8_USCALED";
621		case VK_FORMAT_R8G8_SSCALED:								return "VK_FORMAT_R8G8_SSCALED";
622		case VK_FORMAT_R8G8_UINT:									return "VK_FORMAT_R8G8_UINT";
623		case VK_FORMAT_R8G8_SINT:									return "VK_FORMAT_R8G8_SINT";
624		case VK_FORMAT_R8G8_SRGB:									return "VK_FORMAT_R8G8_SRGB";
625		case VK_FORMAT_R8G8B8_UNORM:								return "VK_FORMAT_R8G8B8_UNORM";
626		case VK_FORMAT_R8G8B8_SNORM:								return "VK_FORMAT_R8G8B8_SNORM";
627		case VK_FORMAT_R8G8B8_USCALED:								return "VK_FORMAT_R8G8B8_USCALED";
628		case VK_FORMAT_R8G8B8_SSCALED:								return "VK_FORMAT_R8G8B8_SSCALED";
629		case VK_FORMAT_R8G8B8_UINT:									return "VK_FORMAT_R8G8B8_UINT";
630		case VK_FORMAT_R8G8B8_SINT:									return "VK_FORMAT_R8G8B8_SINT";
631		case VK_FORMAT_R8G8B8_SRGB:									return "VK_FORMAT_R8G8B8_SRGB";
632		case VK_FORMAT_B8G8R8_UNORM:								return "VK_FORMAT_B8G8R8_UNORM";
633		case VK_FORMAT_B8G8R8_SNORM:								return "VK_FORMAT_B8G8R8_SNORM";
634		case VK_FORMAT_B8G8R8_USCALED:								return "VK_FORMAT_B8G8R8_USCALED";
635		case VK_FORMAT_B8G8R8_SSCALED:								return "VK_FORMAT_B8G8R8_SSCALED";
636		case VK_FORMAT_B8G8R8_UINT:									return "VK_FORMAT_B8G8R8_UINT";
637		case VK_FORMAT_B8G8R8_SINT:									return "VK_FORMAT_B8G8R8_SINT";
638		case VK_FORMAT_B8G8R8_SRGB:									return "VK_FORMAT_B8G8R8_SRGB";
639		case VK_FORMAT_R8G8B8A8_UNORM:								return "VK_FORMAT_R8G8B8A8_UNORM";
640		case VK_FORMAT_R8G8B8A8_SNORM:								return "VK_FORMAT_R8G8B8A8_SNORM";
641		case VK_FORMAT_R8G8B8A8_USCALED:							return "VK_FORMAT_R8G8B8A8_USCALED";
642		case VK_FORMAT_R8G8B8A8_SSCALED:							return "VK_FORMAT_R8G8B8A8_SSCALED";
643		case VK_FORMAT_R8G8B8A8_UINT:								return "VK_FORMAT_R8G8B8A8_UINT";
644		case VK_FORMAT_R8G8B8A8_SINT:								return "VK_FORMAT_R8G8B8A8_SINT";
645		case VK_FORMAT_R8G8B8A8_SRGB:								return "VK_FORMAT_R8G8B8A8_SRGB";
646		case VK_FORMAT_B8G8R8A8_UNORM:								return "VK_FORMAT_B8G8R8A8_UNORM";
647		case VK_FORMAT_B8G8R8A8_SNORM:								return "VK_FORMAT_B8G8R8A8_SNORM";
648		case VK_FORMAT_B8G8R8A8_USCALED:							return "VK_FORMAT_B8G8R8A8_USCALED";
649		case VK_FORMAT_B8G8R8A8_SSCALED:							return "VK_FORMAT_B8G8R8A8_SSCALED";
650		case VK_FORMAT_B8G8R8A8_UINT:								return "VK_FORMAT_B8G8R8A8_UINT";
651		case VK_FORMAT_B8G8R8A8_SINT:								return "VK_FORMAT_B8G8R8A8_SINT";
652		case VK_FORMAT_B8G8R8A8_SRGB:								return "VK_FORMAT_B8G8R8A8_SRGB";
653		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
654		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:						return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
655		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
656		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:						return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
657		case VK_FORMAT_A8B8G8R8_UINT_PACK32:						return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
658		case VK_FORMAT_A8B8G8R8_SINT_PACK32:						return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
659		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:						return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
660		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
661		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:					return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
662		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
663		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:					return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
664		case VK_FORMAT_A2R10G10B10_UINT_PACK32:						return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
665		case VK_FORMAT_A2R10G10B10_SINT_PACK32:						return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
666		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
667		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:					return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
668		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
669		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:					return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
670		case VK_FORMAT_A2B10G10R10_UINT_PACK32:						return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
671		case VK_FORMAT_A2B10G10R10_SINT_PACK32:						return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
672		case VK_FORMAT_R16_UNORM:									return "VK_FORMAT_R16_UNORM";
673		case VK_FORMAT_R16_SNORM:									return "VK_FORMAT_R16_SNORM";
674		case VK_FORMAT_R16_USCALED:									return "VK_FORMAT_R16_USCALED";
675		case VK_FORMAT_R16_SSCALED:									return "VK_FORMAT_R16_SSCALED";
676		case VK_FORMAT_R16_UINT:									return "VK_FORMAT_R16_UINT";
677		case VK_FORMAT_R16_SINT:									return "VK_FORMAT_R16_SINT";
678		case VK_FORMAT_R16_SFLOAT:									return "VK_FORMAT_R16_SFLOAT";
679		case VK_FORMAT_R16G16_UNORM:								return "VK_FORMAT_R16G16_UNORM";
680		case VK_FORMAT_R16G16_SNORM:								return "VK_FORMAT_R16G16_SNORM";
681		case VK_FORMAT_R16G16_USCALED:								return "VK_FORMAT_R16G16_USCALED";
682		case VK_FORMAT_R16G16_SSCALED:								return "VK_FORMAT_R16G16_SSCALED";
683		case VK_FORMAT_R16G16_UINT:									return "VK_FORMAT_R16G16_UINT";
684		case VK_FORMAT_R16G16_SINT:									return "VK_FORMAT_R16G16_SINT";
685		case VK_FORMAT_R16G16_SFLOAT:								return "VK_FORMAT_R16G16_SFLOAT";
686		case VK_FORMAT_R16G16B16_UNORM:								return "VK_FORMAT_R16G16B16_UNORM";
687		case VK_FORMAT_R16G16B16_SNORM:								return "VK_FORMAT_R16G16B16_SNORM";
688		case VK_FORMAT_R16G16B16_USCALED:							return "VK_FORMAT_R16G16B16_USCALED";
689		case VK_FORMAT_R16G16B16_SSCALED:							return "VK_FORMAT_R16G16B16_SSCALED";
690		case VK_FORMAT_R16G16B16_UINT:								return "VK_FORMAT_R16G16B16_UINT";
691		case VK_FORMAT_R16G16B16_SINT:								return "VK_FORMAT_R16G16B16_SINT";
692		case VK_FORMAT_R16G16B16_SFLOAT:							return "VK_FORMAT_R16G16B16_SFLOAT";
693		case VK_FORMAT_R16G16B16A16_UNORM:							return "VK_FORMAT_R16G16B16A16_UNORM";
694		case VK_FORMAT_R16G16B16A16_SNORM:							return "VK_FORMAT_R16G16B16A16_SNORM";
695		case VK_FORMAT_R16G16B16A16_USCALED:						return "VK_FORMAT_R16G16B16A16_USCALED";
696		case VK_FORMAT_R16G16B16A16_SSCALED:						return "VK_FORMAT_R16G16B16A16_SSCALED";
697		case VK_FORMAT_R16G16B16A16_UINT:							return "VK_FORMAT_R16G16B16A16_UINT";
698		case VK_FORMAT_R16G16B16A16_SINT:							return "VK_FORMAT_R16G16B16A16_SINT";
699		case VK_FORMAT_R16G16B16A16_SFLOAT:							return "VK_FORMAT_R16G16B16A16_SFLOAT";
700		case VK_FORMAT_R32_UINT:									return "VK_FORMAT_R32_UINT";
701		case VK_FORMAT_R32_SINT:									return "VK_FORMAT_R32_SINT";
702		case VK_FORMAT_R32_SFLOAT:									return "VK_FORMAT_R32_SFLOAT";
703		case VK_FORMAT_R32G32_UINT:									return "VK_FORMAT_R32G32_UINT";
704		case VK_FORMAT_R32G32_SINT:									return "VK_FORMAT_R32G32_SINT";
705		case VK_FORMAT_R32G32_SFLOAT:								return "VK_FORMAT_R32G32_SFLOAT";
706		case VK_FORMAT_R32G32B32_UINT:								return "VK_FORMAT_R32G32B32_UINT";
707		case VK_FORMAT_R32G32B32_SINT:								return "VK_FORMAT_R32G32B32_SINT";
708		case VK_FORMAT_R32G32B32_SFLOAT:							return "VK_FORMAT_R32G32B32_SFLOAT";
709		case VK_FORMAT_R32G32B32A32_UINT:							return "VK_FORMAT_R32G32B32A32_UINT";
710		case VK_FORMAT_R32G32B32A32_SINT:							return "VK_FORMAT_R32G32B32A32_SINT";
711		case VK_FORMAT_R32G32B32A32_SFLOAT:							return "VK_FORMAT_R32G32B32A32_SFLOAT";
712		case VK_FORMAT_R64_UINT:									return "VK_FORMAT_R64_UINT";
713		case VK_FORMAT_R64_SINT:									return "VK_FORMAT_R64_SINT";
714		case VK_FORMAT_R64_SFLOAT:									return "VK_FORMAT_R64_SFLOAT";
715		case VK_FORMAT_R64G64_UINT:									return "VK_FORMAT_R64G64_UINT";
716		case VK_FORMAT_R64G64_SINT:									return "VK_FORMAT_R64G64_SINT";
717		case VK_FORMAT_R64G64_SFLOAT:								return "VK_FORMAT_R64G64_SFLOAT";
718		case VK_FORMAT_R64G64B64_UINT:								return "VK_FORMAT_R64G64B64_UINT";
719		case VK_FORMAT_R64G64B64_SINT:								return "VK_FORMAT_R64G64B64_SINT";
720		case VK_FORMAT_R64G64B64_SFLOAT:							return "VK_FORMAT_R64G64B64_SFLOAT";
721		case VK_FORMAT_R64G64B64A64_UINT:							return "VK_FORMAT_R64G64B64A64_UINT";
722		case VK_FORMAT_R64G64B64A64_SINT:							return "VK_FORMAT_R64G64B64A64_SINT";
723		case VK_FORMAT_R64G64B64A64_SFLOAT:							return "VK_FORMAT_R64G64B64A64_SFLOAT";
724		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:						return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
725		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:						return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
726		case VK_FORMAT_D16_UNORM:									return "VK_FORMAT_D16_UNORM";
727		case VK_FORMAT_X8_D24_UNORM_PACK32:							return "VK_FORMAT_X8_D24_UNORM_PACK32";
728		case VK_FORMAT_D32_SFLOAT:									return "VK_FORMAT_D32_SFLOAT";
729		case VK_FORMAT_S8_UINT:										return "VK_FORMAT_S8_UINT";
730		case VK_FORMAT_D16_UNORM_S8_UINT:							return "VK_FORMAT_D16_UNORM_S8_UINT";
731		case VK_FORMAT_D24_UNORM_S8_UINT:							return "VK_FORMAT_D24_UNORM_S8_UINT";
732		case VK_FORMAT_D32_SFLOAT_S8_UINT:							return "VK_FORMAT_D32_SFLOAT_S8_UINT";
733		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:							return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
734		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
735		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:						return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
736		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:							return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
737		case VK_FORMAT_BC2_UNORM_BLOCK:								return "VK_FORMAT_BC2_UNORM_BLOCK";
738		case VK_FORMAT_BC2_SRGB_BLOCK:								return "VK_FORMAT_BC2_SRGB_BLOCK";
739		case VK_FORMAT_BC3_UNORM_BLOCK:								return "VK_FORMAT_BC3_UNORM_BLOCK";
740		case VK_FORMAT_BC3_SRGB_BLOCK:								return "VK_FORMAT_BC3_SRGB_BLOCK";
741		case VK_FORMAT_BC4_UNORM_BLOCK:								return "VK_FORMAT_BC4_UNORM_BLOCK";
742		case VK_FORMAT_BC4_SNORM_BLOCK:								return "VK_FORMAT_BC4_SNORM_BLOCK";
743		case VK_FORMAT_BC5_UNORM_BLOCK:								return "VK_FORMAT_BC5_UNORM_BLOCK";
744		case VK_FORMAT_BC5_SNORM_BLOCK:								return "VK_FORMAT_BC5_SNORM_BLOCK";
745		case VK_FORMAT_BC6H_UFLOAT_BLOCK:							return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
746		case VK_FORMAT_BC6H_SFLOAT_BLOCK:							return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
747		case VK_FORMAT_BC7_UNORM_BLOCK:								return "VK_FORMAT_BC7_UNORM_BLOCK";
748		case VK_FORMAT_BC7_SRGB_BLOCK:								return "VK_FORMAT_BC7_SRGB_BLOCK";
749		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
750		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
751		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
752		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
753		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
754		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:					return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
755		case VK_FORMAT_EAC_R11_UNORM_BLOCK:							return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
756		case VK_FORMAT_EAC_R11_SNORM_BLOCK:							return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
757		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
758		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:						return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
759		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
760		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
761		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
762		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
763		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
764		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
765		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
766		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
767		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
768		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
769		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
770		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
771		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
772		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
773		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
774		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:							return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
775		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
776		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
777		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
778		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
779		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
780		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
781		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
782		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
783		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
784		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
785		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:						return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
786		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:						return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
787		case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
788		case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
789		case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
790		case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
791		case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
792		case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
793		case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
794		case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:					return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
795		case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
796		case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
797		case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
798		case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
799		case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
800		case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
801		case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
802		case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
803		case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
804		case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
805		case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
806		case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
807		case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
808		case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:						return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
809		case VK_FORMAT_G8B8G8R8_422_UNORM:							return "VK_FORMAT_G8B8G8R8_422_UNORM";
810		case VK_FORMAT_B8G8R8G8_422_UNORM:							return "VK_FORMAT_B8G8R8G8_422_UNORM";
811		case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
812		case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
813		case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
814		case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
815		case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:					return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
816		case VK_FORMAT_R10X6_UNORM_PACK16:							return "VK_FORMAT_R10X6_UNORM_PACK16";
817		case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:					return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
818		case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:			return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
819		case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:		return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
820		case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:		return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
821		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
822		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
823		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
824		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
825		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
826		case VK_FORMAT_R12X4_UNORM_PACK16:							return "VK_FORMAT_R12X4_UNORM_PACK16";
827		case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:					return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
828		case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:			return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
829		case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:		return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
830		case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:		return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
831		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
832		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
833		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
834		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
835		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
836		case VK_FORMAT_G16B16G16R16_422_UNORM:						return "VK_FORMAT_G16B16G16R16_422_UNORM";
837		case VK_FORMAT_B16G16R16G16_422_UNORM:						return "VK_FORMAT_B16G16R16G16_422_UNORM";
838		case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
839		case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
840		case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
841		case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
842		case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:				return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
843		case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:					return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
844		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
845		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
846		case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:					return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
847		case VK_FORMAT_A4R4G4B4_UNORM_PACK16:						return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
848		case VK_FORMAT_A4B4G4R4_UNORM_PACK16:						return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
849		case VK_FORMAT_R16G16_SFIXED5_NV:							return "VK_FORMAT_R16G16_SFIXED5_NV";
850		case VK_FORMAT_A1B5G5R5_UNORM_PACK16:						return "VK_FORMAT_A1B5G5R5_UNORM_PACK16";
851		case VK_FORMAT_A8_UNORM:									return "VK_FORMAT_A8_UNORM";
852		default:													return nullptr;
853	}
854}
855
856tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
857{
858	static const tcu::Format::BitDesc s_desc[] =
859	{
860		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,															"VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
861		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,															"VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
862		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,													"VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
863		tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
864		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,													"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
865		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
866		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,															"VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
867		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,														"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
868		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
869		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,												"VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
870		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,																"VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
871		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,																"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
872		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
873		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,											"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
874		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
875		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
876		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
877		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
878		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,							"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
879		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"),
880		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"),
881		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"),
882		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,																"VK_FORMAT_FEATURE_DISJOINT_BIT"),
883		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
884		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,												"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
885		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
886		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
887		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
888		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,													"VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
889		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,								"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
890		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,									"VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
891	};
892	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
893}
894
895const char* getFrontFaceName (VkFrontFace value)
896{
897	switch (value)
898	{
899		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
900		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
901		default:								return nullptr;
902	}
903}
904
905tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
906{
907	static const tcu::Format::BitDesc s_desc[] =
908	{
909		tcu::Format::BitDesc(VK_MEMORY_MAP_PLACED_BIT_EXT,	"VK_MEMORY_MAP_PLACED_BIT_EXT"),
910	};
911	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
912}
913
914tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
915{
916	static const tcu::Format::BitDesc s_desc[] =
917	{
918		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
919		tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,						"VK_IMAGE_ASPECT_NONE"),
920		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
921		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
922		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
923		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
924		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
925		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
926		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
927		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
928		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
929		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
930	};
931	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
932}
933
934tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
935{
936	static const tcu::Format::BitDesc s_desc[] =
937	{
938		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,							"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
939		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,							"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
940		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,							"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
941		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,							"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
942		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,							"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
943		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,						"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
944		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,				"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
945		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,				"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
946		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,							"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
947		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,									"VK_IMAGE_CREATE_DISJOINT_BIT"),
948		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,										"VK_IMAGE_CREATE_ALIAS_BIT"),
949		tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,									"VK_IMAGE_CREATE_PROTECTED_BIT"),
950		tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,		"VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
951		tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,							"VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
952		tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,							"VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
953		tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,			"VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
954		tcu::Format::BitDesc(VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,		"VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
955		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,					"VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
956		tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,	"VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
957		tcu::Format::BitDesc(VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR,				"VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR"),
958	};
959	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
960}
961
962const char* getImageLayoutName (VkImageLayout value)
963{
964	switch (value)
965	{
966		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
967		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
968		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
969		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
970		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
971		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
972		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
973		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
974		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
975		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
976		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
977		case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
978		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
979		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
980		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
981		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
982		case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:	return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
983		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
984		case VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ:							return "VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ";
985		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
986		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
987		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
988		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
989		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
990		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
991		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
992		case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:								return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
993		case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:							return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
994		case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:			return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
995		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR:				return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR";
996		default:															return nullptr;
997	}
998}
999
1000const char* getImageTilingName (VkImageTiling value)
1001{
1002	switch (value)
1003	{
1004		case VK_IMAGE_TILING_OPTIMAL:					return "VK_IMAGE_TILING_OPTIMAL";
1005		case VK_IMAGE_TILING_LINEAR:					return "VK_IMAGE_TILING_LINEAR";
1006		case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:	return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
1007		default:										return nullptr;
1008	}
1009}
1010
1011const char* getImageTypeName (VkImageType value)
1012{
1013	switch (value)
1014	{
1015		case VK_IMAGE_TYPE_1D:	return "VK_IMAGE_TYPE_1D";
1016		case VK_IMAGE_TYPE_2D:	return "VK_IMAGE_TYPE_2D";
1017		case VK_IMAGE_TYPE_3D:	return "VK_IMAGE_TYPE_3D";
1018		default:				return nullptr;
1019	}
1020}
1021
1022tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
1023{
1024	static const tcu::Format::BitDesc s_desc[] =
1025	{
1026		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,								"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
1027		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,								"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
1028		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,									"VK_IMAGE_USAGE_SAMPLED_BIT"),
1029		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,									"VK_IMAGE_USAGE_STORAGE_BIT"),
1030		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,							"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
1031		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,					"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
1032		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
1033		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,							"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
1034		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1035		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,					"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
1036		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
1037		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
1038		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
1039		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
1040		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
1041		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,						"VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
1042		tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,						"VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
1043		tcu::Format::BitDesc(VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,				"VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1044		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,							"VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
1045		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,					"VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
1046		tcu::Format::BitDesc(VK_IMAGE_USAGE_HOST_TRANSFER_BIT,								"VK_IMAGE_USAGE_HOST_TRANSFER_BIT"),
1047		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,	"VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR"),
1048		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,				"VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR"),
1049	};
1050	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1051}
1052
1053tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
1054{
1055	static const tcu::Format::BitDesc s_desc[] =
1056	{
1057		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
1058		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
1059		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
1060	};
1061	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1062}
1063
1064const char* getImageViewTypeName (VkImageViewType value)
1065{
1066	switch (value)
1067	{
1068		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
1069		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
1070		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
1071		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
1072		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1073		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1074		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1075		default:							return nullptr;
1076	}
1077}
1078
1079const char* getIndirectCommandsTokenTypeEXTName (VkIndirectCommandsTokenTypeEXT value)
1080{
1081	switch (value)
1082	{
1083		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT";
1084		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT";
1085		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT";
1086		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT";
1087		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT";
1088		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT";
1089		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT:						return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT";
1090		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT";
1091		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT";
1092		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT:					return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT";
1093		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT";
1094		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT";
1095		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT";
1096		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT";
1097		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT";
1098		default:															return nullptr;
1099	}
1100}
1101
1102const char* getSharingModeName (VkSharingMode value)
1103{
1104	switch (value)
1105	{
1106		case VK_SHARING_MODE_EXCLUSIVE:		return "VK_SHARING_MODE_EXCLUSIVE";
1107		case VK_SHARING_MODE_CONCURRENT:	return "VK_SHARING_MODE_CONCURRENT";
1108		default:							return nullptr;
1109	}
1110}
1111
1112const char* getIndexTypeName (VkIndexType value)
1113{
1114	switch (value)
1115	{
1116		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
1117		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
1118		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
1119		case VK_INDEX_TYPE_UINT8:		return "VK_INDEX_TYPE_UINT8";
1120		default:						return nullptr;
1121	}
1122}
1123
1124const char* getLogicOpName (VkLogicOp value)
1125{
1126	switch (value)
1127	{
1128		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
1129		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
1130		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
1131		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
1132		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
1133		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
1134		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
1135		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
1136		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
1137		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
1138		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
1139		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
1140		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
1141		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
1142		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
1143		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
1144		default:						return nullptr;
1145	}
1146}
1147
1148tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
1149{
1150	static const tcu::Format::BitDesc s_desc[] =
1151	{
1152		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,	"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
1153		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
1154	};
1155	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1156}
1157
1158tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
1159{
1160	static const tcu::Format::BitDesc s_desc[] =
1161	{
1162		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
1163		tcu::Format::BitDesc(VK_ACCESS_NONE,											"VK_ACCESS_NONE"),
1164		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,									"VK_ACCESS_INDEX_READ_BIT"),
1165		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
1166		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,								"VK_ACCESS_UNIFORM_READ_BIT"),
1167		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
1168		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,									"VK_ACCESS_SHADER_READ_BIT"),
1169		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,								"VK_ACCESS_SHADER_WRITE_BIT"),
1170		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
1171		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
1172		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
1173		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
1174		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,								"VK_ACCESS_TRANSFER_READ_BIT"),
1175		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,								"VK_ACCESS_TRANSFER_WRITE_BIT"),
1176		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,									"VK_ACCESS_HOST_READ_BIT"),
1177		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,									"VK_ACCESS_HOST_WRITE_BIT"),
1178		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,									"VK_ACCESS_MEMORY_READ_BIT"),
1179		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,								"VK_ACCESS_MEMORY_WRITE_BIT"),
1180		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
1181		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
1182		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
1183		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,				"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
1184		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
1185		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
1186		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
1187		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
1188		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
1189		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
1190		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
1191	};
1192	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1193}
1194
1195tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
1196{
1197	static const tcu::Format::BitDesc s_desc[] =
1198	{
1199		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,			"VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
1200		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,			"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
1201		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,			"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
1202		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,			"VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
1203		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,		"VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
1204		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,				"VK_MEMORY_PROPERTY_PROTECTED_BIT"),
1205		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
1206		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
1207		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,		"VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
1208	};
1209	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1210}
1211
1212const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1213{
1214	switch (value)
1215	{
1216		case VK_PHYSICAL_DEVICE_TYPE_OTHER:				return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1217		case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:	return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1218		case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1219		case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1220		case VK_PHYSICAL_DEVICE_TYPE_CPU:				return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1221		default:										return nullptr;
1222	}
1223}
1224
1225const char* getPipelineBindPointName (VkPipelineBindPoint value)
1226{
1227	switch (value)
1228	{
1229		case VK_PIPELINE_BIND_POINT_GRAPHICS:				return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1230		case VK_PIPELINE_BIND_POINT_COMPUTE:				return "VK_PIPELINE_BIND_POINT_COMPUTE";
1231		case VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX:	return "VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX";
1232		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:		return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1233		case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:	return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1234		default:											return nullptr;
1235	}
1236}
1237
1238tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
1239{
1240	static const tcu::Format::BitDesc s_desc[] =
1241	{
1242		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,								"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
1243		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,									"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
1244		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,											"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
1245		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,						"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
1246		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,										"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
1247		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,									"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
1248		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
1249		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,				"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
1250		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,					"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
1251		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,							"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
1252		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,							"VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
1253		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,										"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
1254		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
1255		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
1256		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"),
1257		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"),
1258		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"),
1259		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"),
1260		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,								"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
1261		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"),
1262		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,						"VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
1263		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1264		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,		"VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
1265		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,				"VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
1266		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,					"VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
1267		tcu::Format::BitDesc(VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,					"VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1268		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1269		tcu::Format::BitDesc(VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,								"VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT"),
1270		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,				"VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"),
1271		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT,								"VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT"),
1272		tcu::Format::BitDesc(VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,								"VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT"),
1273	};
1274	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1275}
1276
1277const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1278{
1279	switch (value)
1280	{
1281		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1282		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1283		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1284		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1285		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1286		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1287		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1288		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1289		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1290		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1291		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1292		default:													return nullptr;
1293	}
1294}
1295
1296tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
1297{
1298	static const tcu::Format::BitDesc s_desc[] =
1299	{
1300		tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,	"VK_QUERY_CONTROL_PRECISE_BIT"),
1301	};
1302	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1303}
1304
1305tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
1306{
1307	static const tcu::Format::BitDesc s_desc[] =
1308	{
1309		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
1310		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
1311		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,						"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
1312		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
1313		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
1314		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
1315		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
1316		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
1317		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,			"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
1318		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,	"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
1319		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
1320		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"),
1321		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,					"VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"),
1322		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI,		"VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI"),
1323	};
1324	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1325}
1326
1327tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
1328{
1329	static const tcu::Format::BitDesc s_desc[] =
1330	{
1331		tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,				"VK_QUERY_RESULT_64_BIT"),
1332		tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,				"VK_QUERY_RESULT_WAIT_BIT"),
1333		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,	"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
1334		tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,			"VK_QUERY_RESULT_PARTIAL_BIT"),
1335		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,	"VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
1336	};
1337	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1338}
1339
1340const char* getQueryTypeName (VkQueryType value)
1341{
1342	switch (value)
1343	{
1344		case VK_QUERY_TYPE_OCCLUSION:														return "VK_QUERY_TYPE_OCCLUSION";
1345		case VK_QUERY_TYPE_PIPELINE_STATISTICS:												return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1346		case VK_QUERY_TYPE_TIMESTAMP:														return "VK_QUERY_TYPE_TIMESTAMP";
1347		case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:											return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1348		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:									return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1349		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1350		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1351		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:					return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1352		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:						return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1353		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:											return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1354		case VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR:										return "VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR";
1355		case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:									return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
1356		case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:										return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1357		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1358		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:									return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1359		case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT:									return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT";
1360		case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT:										return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT";
1361		default:																			return nullptr;
1362	}
1363}
1364
1365tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
1366{
1367	static const tcu::Format::BitDesc s_desc[] =
1368	{
1369		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
1370		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
1371		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
1372		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
1373		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
1374		tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,	"VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
1375		tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,	"VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
1376		tcu::Format::BitDesc(VK_QUEUE_OPTICAL_FLOW_BIT_NV,	"VK_QUEUE_OPTICAL_FLOW_BIT_NV"),
1377	};
1378	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1379}
1380
1381const char* getSubpassContentsName (VkSubpassContents value)
1382{
1383	switch (value)
1384	{
1385		case VK_SUBPASS_CONTENTS_INLINE:									return "VK_SUBPASS_CONTENTS_INLINE";
1386		case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:					return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1387		case VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR:	return "VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR";
1388		default:															return nullptr;
1389	}
1390}
1391
1392const char* getResultName (VkResult value)
1393{
1394	switch (value)
1395	{
1396		case VK_ERROR_NOT_ENOUGH_SPACE_KHR:							return "VK_ERROR_NOT_ENOUGH_SPACE_KHR";
1397		case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:					return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
1398		case VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR:				return "VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR";
1399		case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:				return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1400		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1401		case VK_ERROR_NOT_PERMITTED:								return "VK_ERROR_NOT_PERMITTED";
1402		case VK_ERROR_FRAGMENTATION:								return "VK_ERROR_FRAGMENTATION";
1403		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1404		case VK_ERROR_INVALID_EXTERNAL_HANDLE:						return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
1405		case VK_ERROR_OUT_OF_POOL_MEMORY:							return "VK_ERROR_OUT_OF_POOL_MEMORY";
1406		case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:			return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1407		case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1408		case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1409		case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:	return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1410		case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:		return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1411		case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:				return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1412		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
1413		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
1414		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
1415		case VK_ERROR_OUT_OF_DATE_KHR:								return "VK_ERROR_OUT_OF_DATE_KHR";
1416		case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:						return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
1417		case VK_ERROR_SURFACE_LOST_KHR:								return "VK_ERROR_SURFACE_LOST_KHR";
1418		case VK_ERROR_UNKNOWN:										return "VK_ERROR_UNKNOWN";
1419		case VK_ERROR_FRAGMENTED_POOL:								return "VK_ERROR_FRAGMENTED_POOL";
1420		case VK_ERROR_FORMAT_NOT_SUPPORTED:							return "VK_ERROR_FORMAT_NOT_SUPPORTED";
1421		case VK_ERROR_TOO_MANY_OBJECTS:								return "VK_ERROR_TOO_MANY_OBJECTS";
1422		case VK_ERROR_INCOMPATIBLE_DRIVER:							return "VK_ERROR_INCOMPATIBLE_DRIVER";
1423		case VK_ERROR_FEATURE_NOT_PRESENT:							return "VK_ERROR_FEATURE_NOT_PRESENT";
1424		case VK_ERROR_EXTENSION_NOT_PRESENT:						return "VK_ERROR_EXTENSION_NOT_PRESENT";
1425		case VK_ERROR_LAYER_NOT_PRESENT:							return "VK_ERROR_LAYER_NOT_PRESENT";
1426		case VK_ERROR_MEMORY_MAP_FAILED:							return "VK_ERROR_MEMORY_MAP_FAILED";
1427		case VK_ERROR_DEVICE_LOST:									return "VK_ERROR_DEVICE_LOST";
1428		case VK_ERROR_INITIALIZATION_FAILED:						return "VK_ERROR_INITIALIZATION_FAILED";
1429		case VK_ERROR_OUT_OF_DEVICE_MEMORY:							return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
1430		case VK_ERROR_OUT_OF_HOST_MEMORY:							return "VK_ERROR_OUT_OF_HOST_MEMORY";
1431		case VK_SUCCESS:											return "VK_SUCCESS";
1432		case VK_NOT_READY:											return "VK_NOT_READY";
1433		case VK_TIMEOUT:											return "VK_TIMEOUT";
1434		case VK_EVENT_SET:											return "VK_EVENT_SET";
1435		case VK_EVENT_RESET:										return "VK_EVENT_RESET";
1436		case VK_INCOMPLETE:											return "VK_INCOMPLETE";
1437		case VK_SUBOPTIMAL_KHR:										return "VK_SUBOPTIMAL_KHR";
1438		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
1439		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
1440		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
1441		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
1442		case VK_PIPELINE_COMPILE_REQUIRED:							return "VK_PIPELINE_COMPILE_REQUIRED";
1443		case VK_INCOMPATIBLE_SHADER_BINARY_EXT:						return "VK_INCOMPATIBLE_SHADER_BINARY_EXT";
1444		case VK_PIPELINE_BINARY_MISSING_KHR:						return "VK_PIPELINE_BINARY_MISSING_KHR";
1445		default:													return nullptr;
1446	}
1447}
1448
1449tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
1450{
1451	static const tcu::Format::BitDesc s_desc[] =
1452	{
1453		tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,					"VK_SHADER_STAGE_VERTEX_BIT"),
1454		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,		"VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
1455		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,	"VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
1456		tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,					"VK_SHADER_STAGE_GEOMETRY_BIT"),
1457		tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,					"VK_SHADER_STAGE_FRAGMENT_BIT"),
1458		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
1459		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_EXT,					"VK_SHADER_STAGE_TASK_BIT_EXT"),
1460		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_EXT,					"VK_SHADER_STAGE_MESH_BIT_EXT"),
1461		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
1462		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
1463		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
1464		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
1465		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
1466		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
1467		tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,	"VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
1468		tcu::Format::BitDesc(VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI,	"VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI"),
1469		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
1470		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
1471	};
1472	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1473}
1474
1475tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
1476{
1477	static const tcu::Format::BitDesc s_desc[] =
1478	{
1479		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,	"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
1480	};
1481	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1482}
1483
1484tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
1485{
1486	static const tcu::Format::BitDesc s_desc[] =
1487	{
1488		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,			"VK_STENCIL_FACE_FRONT_BIT"),
1489		tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,			"VK_STENCIL_FACE_BACK_BIT"),
1490		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,	"VK_STENCIL_FACE_FRONT_AND_BACK"),
1491	};
1492	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1493}
1494
1495const char* getStencilOpName (VkStencilOp value)
1496{
1497	switch (value)
1498	{
1499		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
1500		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
1501		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
1502		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1503		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1504		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
1505		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1506		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1507		default:								return nullptr;
1508	}
1509}
1510
1511const char* getStructureTypeName (VkStructureType value)
1512{
1513	switch (value)
1514	{
1515		case VK_STRUCTURE_TYPE_APPLICATION_INFO:													return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
1516		case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
1517		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
1518		case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
1519		case VK_STRUCTURE_TYPE_SUBMIT_INFO:															return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
1520		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:												return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
1521		case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:													return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
1522		case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:													return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
1523		case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
1524		case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
1525		case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:													return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
1526		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:												return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
1527		case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
1528		case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
1529		case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:													return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
1530		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:												return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
1531		case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
1532		case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
1533		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
1534		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
1535		case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
1536		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
1537		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
1538		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
1539		case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
1540		case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
1541		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
1542		case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
1543		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
1544		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
1545		case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:											return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
1546		case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:													return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
1547		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
1548		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
1549		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
1550		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:												return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
1551		case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:													return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
1552		case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
1553		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
1554		case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
1555		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
1556		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
1557		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
1558		case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:												return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
1559		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
1560		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
1561		case VK_STRUCTURE_TYPE_MEMORY_BARRIER:														return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
1562		case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
1563		case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
1564		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
1565		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
1566		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
1567		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
1568		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
1569		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
1570		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES";
1571		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES";
1572		case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
1573		case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
1574		case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
1575		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
1576		case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
1577		case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
1578		case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
1579		case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
1580		case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
1581		case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
1582		case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
1583		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
1584		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
1585		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
1586		case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
1587		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
1588		case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
1589		case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
1590		case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
1591		case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:									return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
1592		case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
1593		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
1594		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
1595		case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
1596		case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
1597		case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
1598		case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
1599		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
1600		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
1601		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
1602		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
1603		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
1604		case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
1605		case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
1606		case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
1607		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
1608		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
1609		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
1610		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
1611		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
1612		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
1613		case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
1614		case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:											return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
1615		case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:													return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
1616		case VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX:							return "VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX";
1617		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:											return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
1618		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
1619		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR";
1620		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
1621		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
1622		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR";
1623		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR";
1624		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR";
1625		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR";
1626		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR";
1627		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR";
1628		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR";
1629		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR";
1630		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR";
1631		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR";
1632		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
1633		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR";
1634		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
1635		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
1636		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR";
1637		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR";
1638		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR";
1639		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR";
1640		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR";
1641		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR";
1642		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR";
1643		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR";
1644		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR";
1645		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR";
1646		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
1647		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR";
1648		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR";
1649		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR";
1650		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
1651		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
1652		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR";
1653		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
1654		case VK_STRUCTURE_TYPE_RENDERING_INFO:														return "VK_STRUCTURE_TYPE_RENDERING_INFO";
1655		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:											return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
1656		case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
1657		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
1658		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:							return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
1659		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1660		case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
1661		case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:									return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
1662		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:								return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
1663		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:							return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
1664		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
1665		case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
1666		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
1667		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
1668		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
1669		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:										return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
1670		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1671		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1672		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
1673		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:											return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
1674		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
1675		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
1676		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
1677		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
1678		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:											return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
1679		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
1680		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
1681		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
1682		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:											return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
1683		case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
1684		case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
1685		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
1686		case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
1687		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
1688		case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
1689		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:								return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
1690		case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
1691		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
1692		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
1693		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:								return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
1694		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:									return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
1695		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
1696		case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:											return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
1697		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
1698		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
1699		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
1700		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
1701		case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO";
1702		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES";
1703		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES";
1704		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
1705		case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
1706		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
1707		case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:									return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
1708		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
1709		case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
1710		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
1711		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
1712		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
1713		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
1714		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1715		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1716		case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
1717		case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
1718		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
1719		case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
1720		case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
1721		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:							return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
1722		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
1723		case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
1724		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
1725		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1726		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1727		case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:											return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
1728		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
1729		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
1730		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
1731		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES";
1732		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
1733		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
1734		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:								return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
1735		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
1736		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
1737		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:													return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
1738		case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
1739		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
1740		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
1741		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
1742		case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
1743		case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
1744		case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
1745		case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:											return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
1746		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
1747		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
1748		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
1749		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
1750		case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
1751		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
1752		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
1753		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
1754		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
1755		case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:													return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
1756		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
1757		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
1758		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:									return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
1759		case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:									return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
1760		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:											return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
1761		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:												return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
1762		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
1763		case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:												return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
1764		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:											return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
1765		case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
1766		case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:													return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
1767		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG";
1768		case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
1769		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
1770		case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:											return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
1771		case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
1772		case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1773		case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1774		case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
1775		case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
1776		case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:												return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
1777		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
1778		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
1779		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
1780		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
1781		case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:										return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
1782		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:												return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
1783		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:									return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
1784		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR:								return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR";
1785		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
1786		case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:						return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
1787		case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
1788		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:				return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
1789		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
1790		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:											return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
1791		case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:												return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
1792		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
1793		case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
1794		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
1795		case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
1796		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
1797		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
1798		case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:											return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
1799		case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:										return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
1800		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
1801		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
1802		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
1803		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:										return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
1804		case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:												return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
1805		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
1806		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
1807		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:								return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
1808		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:							return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
1809		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
1810		case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:							return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1811		case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:						return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1812		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:												return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
1813		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:					return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
1814		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
1815		case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
1816		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX";
1817		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX";
1818		case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX:							return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX";
1819		case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX:							return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX";
1820		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX:							return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX";
1821		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
1822		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
1823		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:							return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
1824		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:					return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
1825		case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:											return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
1826		case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
1827		case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
1828		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
1829		case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:											return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
1830		case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
1831		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
1832		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
1833		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:													return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
1834		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
1835		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:									return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
1836		case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
1837		case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:												return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
1838		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:									return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
1839		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
1840		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
1841		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
1842		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
1843		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
1844		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
1845		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
1846		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
1847		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
1848		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
1849		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:									return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
1850		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
1851		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
1852		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:								return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
1853		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
1854		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:						return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
1855		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
1856		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
1857		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
1858		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
1859		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
1860		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
1861		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
1862		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
1863		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
1864		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
1865		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:								return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
1866		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:										return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
1867		case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:										return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
1868		case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:								return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
1869		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
1870		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:					return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
1871		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
1872		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:												return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
1873		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:								return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
1874		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
1875		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
1876		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
1877		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
1878		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:							return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
1879		case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
1880		case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
1881		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
1882		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
1883		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
1884		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
1885		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:				return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
1886		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
1887		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
1888		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";
1889		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
1890		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
1891		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";
1892		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
1893		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
1894		case VK_STRUCTURE_TYPE_GEOMETRY_NV:															return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
1895		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
1896		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:													return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
1897		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:							return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
1898		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:						return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
1899		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
1900		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
1901		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
1902		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:										return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
1903		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
1904		case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
1905		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
1906		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
1907		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
1908		case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
1909		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO";
1910		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
1911		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
1912		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
1913		case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
1914		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
1915		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
1916		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
1917		case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:							return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
1918		case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR:										return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR";
1919		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
1920		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR";
1921		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
1922		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
1923		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR";
1924		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR";
1925		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR";
1926		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
1927		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
1928		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO:						return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO";
1929		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES";
1930		case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:												return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
1931		case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
1932		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
1933		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
1934		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
1935		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:							return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
1936		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR";
1937		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
1938		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
1939		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
1940		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
1941		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:			return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
1942		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
1943		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:													return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
1944		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
1945		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
1946		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
1947		case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
1948		case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:										return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
1949		case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:													return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
1950		case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
1951		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
1952		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
1953		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:								return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
1954		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
1955		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:								return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
1956		case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:										return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
1957		case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:						return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
1958		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
1959		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
1960		case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:							return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
1961		case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
1962		case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
1963		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
1964		case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
1965		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
1966		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
1967		case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
1968		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
1969		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
1970		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:			return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
1971		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
1972		case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:							return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1973		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:				return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
1974		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
1975		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
1976		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
1977		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
1978		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
1979		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES";
1980		case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO:									return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO";
1981		case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO:								return "VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO";
1982		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
1983		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR";
1984		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
1985		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
1986		case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
1987		case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
1988		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
1989		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
1990		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:									return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
1991		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:								return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
1992		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
1993		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:											return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
1994		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
1995		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
1996		case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
1997		case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:												return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
1998		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
1999		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
2000		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
2001		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
2002		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
2003		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
2004		case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:							return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
2005		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
2006		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
2007		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
2008		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
2009		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:		return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
2010		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
2011		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
2012		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
2013		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:						return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
2014		case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
2015		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
2016		case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:							return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
2017		case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:							return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
2018		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
2019		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES";
2020		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO:						return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO";
2021		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES";
2022		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
2023		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
2024		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES";
2025		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
2026		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
2027		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:													return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
2028		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
2029		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
2030		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
2031		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:						return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
2032		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES";
2033		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES";
2034		case VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY:												return "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY";
2035		case VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY:												return "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY";
2036		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO";
2037		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO:											return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO";
2038		case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO:									return "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO";
2039		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO";
2040		case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE:										return "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE";
2041		case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY:							return "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY";
2042		case VK_STRUCTURE_TYPE_MEMORY_MAP_INFO:														return "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO";
2043		case VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO:													return "VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO";
2044		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT";
2045		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT";
2046		case VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT:											return "VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT";
2047		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
2048		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT:											return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT";
2049		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT:							return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT";
2050		case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT:								return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT";
2051		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT";
2052		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT";
2053		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT";
2054		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT:										return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT";
2055		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT";
2056		case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT:									return "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT";
2057		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
2058		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
2059		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
2060		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
2061		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:									return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
2062		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
2063		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:											return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
2064		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:						return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
2065		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
2066		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
2067		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:					return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
2068		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
2069		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
2070		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
2071		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
2072		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:			return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
2073		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:								return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
2074		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT";
2075		case VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT:													return "VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT";
2076		case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT";
2077		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
2078		case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
2079		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
2080		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
2081		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
2082		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
2083		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
2084		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
2085		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
2086		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV";
2087		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:								return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV";
2088		case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV";
2089		case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:														return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
2090		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
2091		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
2092		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
2093		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
2094		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
2095		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
2096		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
2097		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
2098		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
2099		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
2100		case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR";
2101		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
2102		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR";
2103		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
2104		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR";
2105		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
2106		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
2107		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
2108		case VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV:											return "VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV";
2109		case VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV:										return "VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV";
2110		case VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV:													return "VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV";
2111		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV";
2112		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV";
2113		case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV:										return "VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV";
2114		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
2115		case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
2116		case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
2117		case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
2118		case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
2119		case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
2120		case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
2121		case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:										return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
2122		case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
2123		case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
2124		case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
2125		case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
2126		case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:													return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
2127		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
2128		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:												return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
2129		case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:														return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
2130		case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:														return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
2131		case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
2132		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
2133		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
2134		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
2135		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
2136		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT";
2137		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT";
2138		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT";
2139		case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT:											return "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT";
2140		case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT:												return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT";
2141		case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2142		case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:								return "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2143		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2144		case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:							return "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2145		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
2146		case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT";
2147		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT";
2148		case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT";
2149		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
2150		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
2151		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
2152		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";
2153		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
2154		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";
2155		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
2156		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
2157		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
2158		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";
2159		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
2160		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
2161		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
2162		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
2163		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
2164		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";
2165		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
2166		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
2167		case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:									return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
2168		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
2169		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
2170		case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
2171		case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
2172		case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
2173		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
2174		case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:													return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
2175		case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:												return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
2176		case VK_STRUCTURE_TYPE_BUFFER_COPY_2:														return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
2177		case VK_STRUCTURE_TYPE_IMAGE_COPY_2:														return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
2178		case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:														return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
2179		case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:													return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
2180		case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:														return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
2181		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
2182		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:										return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
2183		case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2:												return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2";
2184		case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2:													return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2";
2185		case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
2186		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
2187		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
2188		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT";
2189		case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT";
2190		case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:												return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT";
2191		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
2192		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
2193		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
2194		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
2195		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
2196		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
2197		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT";
2198		case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT";
2199		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
2200		case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:								return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
2201		case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:							return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
2202		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
2203		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT";
2204		case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT";
2205		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
2206		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
2207		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
2208		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:													return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
2209		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT";
2210		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
2211		case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
2212		case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2213		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
2214		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2215		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
2216		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
2217		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
2218		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:								return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
2219		case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
2220		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
2221		case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:										return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
2222		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:								return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
2223		case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:											return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
2224		case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
2225		case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:							return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
2226		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
2227		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
2228		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
2229		case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:									return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
2230		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
2231		case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:									return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
2232		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
2233		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT";
2234		case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT:													return "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT";
2235		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";
2236		case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:								return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
2237		case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:						return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
2238		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
2239		case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
2240		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
2241		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
2242		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
2243		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
2244		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES";
2245		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES:								return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES";
2246		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
2247		case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
2248		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
2249		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
2250		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";
2251		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT";
2252		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT";
2253		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:												return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT";
2254		case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT";
2255		case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:												return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT";
2256		case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT";
2257		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:									return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT";
2258		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT";
2259		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT";
2260		case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:											return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT";
2261		case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:										return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT";
2262		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT";
2263		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV";
2264		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV";
2265		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV";
2266		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI";
2267		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI";
2268		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI";
2269		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
2270		case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
2271		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
2272		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
2273		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
2274		case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
2275		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
2276		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM";
2277		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES";
2278		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM:					return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM";
2279		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM";
2280		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM";
2281		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT";
2282		case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT";
2283		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
2284		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
2285		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:						return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
2286		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT";
2287		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
2288		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM";
2289		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM";
2290		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM:									return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM";
2291		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM:											return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM";
2292		case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM:									return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM";
2293		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
2294		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
2295		case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:					return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
2296		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV";
2297		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV";
2298		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV";
2299		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV";
2300		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV";
2301		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV:							return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV";
2302		case VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV:							return "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV";
2303		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
2304		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR";
2305		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
2306		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
2307		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
2308		case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:							return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
2309		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT";
2310		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT";
2311		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT";
2312		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT";
2313		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT";
2314		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
2315		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:									return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
2316		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
2317		case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
2318		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG";
2319		case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG:									return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG";
2320		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
2321		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
2322		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
2323		case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:										return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
2324		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV";
2325		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV";
2326		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV";
2327		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV";
2328		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV";
2329		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:										return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV";
2330		case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:					return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV";
2331		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
2332		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES";
2333		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID";
2334		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID";
2335		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID:			return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID";
2336		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES";
2337		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES";
2338		case VK_STRUCTURE_TYPE_RENDERING_AREA_INFO:													return "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO";
2339		case VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO";
2340		case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO:									return "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO";
2341		case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO:									return "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO";
2342		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD";
2343		case VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD:													return "VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD";
2344		case VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD:										return "VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD";
2345		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR";
2346		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT";
2347		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT";
2348		case VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT:												return "VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT";
2349		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR";
2350		case VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR";
2351		case VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR:											return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR";
2352		case VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR:												return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR";
2353		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR";
2354		case VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR:								return "VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR";
2355		case VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR:										return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR";
2356		case VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR:											return "VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR";
2357		case VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR:					return "VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR";
2358		case VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR";
2359		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
2360		case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:												return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
2361		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
2362		case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:										return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
2363		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM";
2364		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV";
2365		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV";
2366		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV";
2367		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV";
2368		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT";
2369		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT";
2370		case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT:										return "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT";
2371		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM";
2372		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM";
2373		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT";
2374		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT";
2375		case VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV:											return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV";
2376		case VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV:												return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV";
2377		case VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV:											return "VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV";
2378		case VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV:											return "VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV";
2379		case VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV:										return "VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV";
2380		case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV:									return "VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV";
2381		case VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV:										return "VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV";
2382		case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV:									return "VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV";
2383		case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV:										return "VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV";
2384		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR";
2385		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
2386		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
2387		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM";
2388		case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:			return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM";
2389		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR";
2390		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR";
2391		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR";
2392		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR";
2393		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR";
2394		case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR";
2395		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR";
2396		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR";
2397		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR";
2398		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR";
2399		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR";
2400		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR";
2401		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR";
2402		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR";
2403		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR";
2404		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR";
2405		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR";
2406		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR";
2407		case VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR";
2408		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV";
2409		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM";
2410		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM";
2411		case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM:							return "VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM";
2412		case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM:								return "VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM";
2413		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM";
2414		case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM:									return "VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM";
2415		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM";
2416		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM:				return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM";
2417		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM";
2418		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT";
2419		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES";
2420		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES";
2421		case VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX:										return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX";
2422		case VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX:									return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX";
2423		case VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX:										return "VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX";
2424		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX:													return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX";
2425		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX";
2426		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT";
2427		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES";
2428		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES";
2429		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES";
2430		case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS:													return "VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS";
2431		case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO:											return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO";
2432		case VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO:													return "VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO";
2433		case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO:											return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO";
2434		case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO:								return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO";
2435		case VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT:								return "VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT";
2436		case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT:					return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT";
2437		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV";
2438		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV";
2439		case VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV:									return "VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV";
2440		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR";
2441		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR";
2442		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR";
2443		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR";
2444		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR";
2445		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR:	return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR";
2446		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR";
2447		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR";
2448		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR";
2449		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR";
2450		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV";
2451		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR";
2452		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV";
2453		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR";
2454		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR";
2455		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR";
2456		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR";
2457		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR";
2458		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV";
2459		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT";
2460		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV";
2461		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT";
2462		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT";
2463		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT:						return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT";
2464		case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT";
2465		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT:											return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT";
2466		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT";
2467		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT:									return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT";
2468		case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT:							return "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT";
2469		case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT:								return "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT";
2470		case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT:							return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT";
2471		case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT:								return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT";
2472		case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT:						return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT";
2473		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT:								return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT";
2474		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT:									return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT";
2475		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA";
2476		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA";
2477		case VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA:							return "VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA";
2478		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT";
2479		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT";
2480		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI";
2481		case VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI:									return "VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI";
2482		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV";
2483		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV";
2484		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV";
2485		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT";
2486		default:																					return nullptr;
2487	}
2488}
2489
2490const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
2491{
2492	switch (value)
2493	{
2494		case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:	return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
2495		case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:		return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
2496		case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:		return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
2497		case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:		return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
2498		case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:	return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
2499		default:									return nullptr;
2500	}
2501}
2502
2503const char* getInternalAllocationTypeName (VkInternalAllocationType value)
2504{
2505	switch (value)
2506	{
2507		case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:	return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
2508		default:										return nullptr;
2509	}
2510}
2511
2512const char* getSamplerAddressModeName (VkSamplerAddressMode value)
2513{
2514	switch (value)
2515	{
2516		case VK_SAMPLER_ADDRESS_MODE_REPEAT:				return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
2517		case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:		return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
2518		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:			return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
2519		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:		return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
2520		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:	return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
2521		default:											return nullptr;
2522	}
2523}
2524
2525const char* getFilterName (VkFilter value)
2526{
2527	switch (value)
2528	{
2529		case VK_FILTER_NEAREST:		return "VK_FILTER_NEAREST";
2530		case VK_FILTER_LINEAR:		return "VK_FILTER_LINEAR";
2531		case VK_FILTER_CUBIC_EXT:	return "VK_FILTER_CUBIC_EXT";
2532		default:					return nullptr;
2533	}
2534}
2535
2536const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
2537{
2538	switch (value)
2539	{
2540		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
2541		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
2542		default:								return nullptr;
2543	}
2544}
2545
2546const char* getVertexInputRateName (VkVertexInputRate value)
2547{
2548	switch (value)
2549	{
2550		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
2551		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
2552		default:							return nullptr;
2553	}
2554}
2555
2556tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2557{
2558	static const tcu::Format::BitDesc s_desc[] =
2559	{
2560		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,								"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2561		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,										"VK_PIPELINE_STAGE_NONE"),
2562		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2563		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2564		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2565		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,				"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2566		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2567		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,							"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2568		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,							"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2569		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2570		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,						"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2571		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2572		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,							"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2573		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,								"VK_PIPELINE_STAGE_TRANSFER_BIT"),
2574		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2575		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,									"VK_PIPELINE_STAGE_HOST_BIT"),
2576		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2577		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2578		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2579		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2580		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"),
2581		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,							"VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"),
2582		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2583		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2584		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2585		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,					"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2586		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2587	};
2588	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2589}
2590
2591tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2592{
2593	static const tcu::Format::BitDesc s_desc[] =
2594	{
2595		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,			"VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2596		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,		"VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2597		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,	"VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2598	};
2599	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2600}
2601
2602tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2603{
2604	static const tcu::Format::BitDesc s_desc[] =
2605	{
2606		tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,		"VK_SAMPLE_COUNT_1_BIT"),
2607		tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,		"VK_SAMPLE_COUNT_2_BIT"),
2608		tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,		"VK_SAMPLE_COUNT_4_BIT"),
2609		tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,		"VK_SAMPLE_COUNT_8_BIT"),
2610		tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,	"VK_SAMPLE_COUNT_16_BIT"),
2611		tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,	"VK_SAMPLE_COUNT_32_BIT"),
2612		tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,	"VK_SAMPLE_COUNT_64_BIT"),
2613	};
2614	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2615}
2616
2617tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
2618{
2619	static const tcu::Format::BitDesc s_desc[] =
2620	{
2621		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,	"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
2622	};
2623	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2624}
2625
2626tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
2627{
2628	static const tcu::Format::BitDesc s_desc[] =
2629	{
2630		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,				"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
2631		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,				"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
2632		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,					"VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT"),
2633		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV,	"VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV"),
2634		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV,	"VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV"),
2635	};
2636	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2637}
2638
2639tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
2640{
2641	static const tcu::Format::BitDesc s_desc[] =
2642	{
2643		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
2644		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
2645		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
2646		tcu::Format::BitDesc(VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,	"VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"),
2647	};
2648	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2649}
2650
2651const char* getObjectTypeName (VkObjectType value)
2652{
2653	switch (value)
2654	{
2655		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
2656		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
2657		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
2658		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
2659		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
2660		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
2661		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
2662		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
2663		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
2664		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
2665		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
2666		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
2667		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
2668		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
2669		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
2670		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
2671		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
2672		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
2673		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
2674		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
2675		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
2676		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
2677		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
2678		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
2679		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
2680		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
2681		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
2682		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
2683		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
2684		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
2685		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
2686		case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:					return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
2687		case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:		return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
2688		case VK_OBJECT_TYPE_CU_MODULE_NVX:						return "VK_OBJECT_TYPE_CU_MODULE_NVX";
2689		case VK_OBJECT_TYPE_CU_FUNCTION_NVX:					return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
2690		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
2691		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
2692		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
2693		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
2694		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
2695		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
2696		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
2697		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
2698		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
2699		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:					return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
2700		case VK_OBJECT_TYPE_CUDA_MODULE_NV:						return "VK_OBJECT_TYPE_CUDA_MODULE_NV";
2701		case VK_OBJECT_TYPE_CUDA_FUNCTION_NV:					return "VK_OBJECT_TYPE_CUDA_FUNCTION_NV";
2702		case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:			return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
2703		case VK_OBJECT_TYPE_MICROMAP_EXT:						return "VK_OBJECT_TYPE_MICROMAP_EXT";
2704		case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV:			return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV";
2705		case VK_OBJECT_TYPE_SHADER_EXT:							return "VK_OBJECT_TYPE_SHADER_EXT";
2706		case VK_OBJECT_TYPE_PIPELINE_BINARY_KHR:				return "VK_OBJECT_TYPE_PIPELINE_BINARY_KHR";
2707		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT";
2708		case VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT:			return "VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT";
2709		default:												return nullptr;
2710	}
2711}
2712
2713tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2714{
2715	static const tcu::Format::BitDesc s_desc[] =
2716	{
2717		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,	"VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
2718	};
2719	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2720}
2721
2722tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
2723{
2724	static const tcu::Format::BitDesc s_desc[] =
2725	{
2726		tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,	"VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
2727	};
2728	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2729}
2730
2731const char* getRayTracingInvocationReorderModeNVName (VkRayTracingInvocationReorderModeNV value)
2732{
2733	switch (value)
2734	{
2735		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV";
2736		case VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV:	return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV";
2737		default:												return nullptr;
2738	}
2739}
2740
2741tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
2742{
2743	static const tcu::Format::BitDesc s_desc[] =
2744	{
2745		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
2746		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
2747		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
2748	};
2749	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2750}
2751
2752const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2753{
2754	switch (value)
2755	{
2756		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2757		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2758		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2759		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2760		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2761		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2762		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2763		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2764		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
2765		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV";
2766		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV";
2767		default:													return nullptr;
2768	}
2769}
2770
2771tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
2772{
2773	static const tcu::Format::BitDesc s_desc[] =
2774	{
2775		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
2776	};
2777	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2778}
2779
2780const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
2781{
2782	switch (value)
2783	{
2784		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:		return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
2785		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS:	return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS";
2786		default:													return nullptr;
2787	}
2788}
2789
2790const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2791{
2792	switch (value)
2793	{
2794		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2795		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2796		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2797		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2798		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2799		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2800		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2801		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2802		default:											return nullptr;
2803	}
2804}
2805
2806const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2807{
2808	switch (value)
2809	{
2810		case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2811		case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2812		default:										return nullptr;
2813	}
2814}
2815
2816tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
2817{
2818	static const tcu::Format::BitDesc s_desc[] =
2819	{
2820		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,							"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
2821		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,						"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
2822		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
2823		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,								"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
2824		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"),
2825		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
2826		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,	"VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
2827		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,						"VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"),
2828	};
2829	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2830}
2831
2832const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
2833{
2834	switch (value)
2835	{
2836		case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:		return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
2837		case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:	return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
2838		default:												return nullptr;
2839	}
2840}
2841
2842const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2843{
2844	switch (value)
2845	{
2846		case VK_COVERAGE_MODULATION_MODE_NONE_NV:	return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2847		case VK_COVERAGE_MODULATION_MODE_RGB_NV:	return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2848		case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:	return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2849		case VK_COVERAGE_MODULATION_MODE_RGBA_NV:	return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2850		default:									return nullptr;
2851	}
2852}
2853
2854const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2855{
2856	switch (value)
2857	{
2858		case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:		return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2859		case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:	return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2860		default:										return nullptr;
2861	}
2862}
2863
2864const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2865{
2866	switch (value)
2867	{
2868		case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:	return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2869		default:											return nullptr;
2870	}
2871}
2872
2873const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2874{
2875	switch (value)
2876	{
2877		case VK_SHADER_INFO_TYPE_STATISTICS_AMD:	return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2878		case VK_SHADER_INFO_TYPE_BINARY_AMD:		return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2879		case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:	return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2880		default:									return nullptr;
2881	}
2882}
2883
2884const char* getQueueGlobalPriorityName (VkQueueGlobalPriority value)
2885{
2886	switch (value)
2887	{
2888		case VK_QUEUE_GLOBAL_PRIORITY_LOW:		return "VK_QUEUE_GLOBAL_PRIORITY_LOW";
2889		case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM:	return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM";
2890		case VK_QUEUE_GLOBAL_PRIORITY_HIGH:		return "VK_QUEUE_GLOBAL_PRIORITY_HIGH";
2891		case VK_QUEUE_GLOBAL_PRIORITY_REALTIME:	return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME";
2892		default:								return nullptr;
2893	}
2894}
2895
2896const char* getTimeDomainKHRName (VkTimeDomainKHR value)
2897{
2898	switch (value)
2899	{
2900		case VK_TIME_DOMAIN_DEVICE_KHR:						return "VK_TIME_DOMAIN_DEVICE_KHR";
2901		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR:			return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR";
2902		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR:		return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR";
2903		case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR:	return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR";
2904		default:											return nullptr;
2905	}
2906}
2907
2908const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2909{
2910	switch (value)
2911	{
2912		case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2913		case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2914		case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2915		default:													return nullptr;
2916	}
2917}
2918
2919tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
2920{
2921	static const tcu::Format::BitDesc s_desc[] =
2922	{
2923		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,									"VK_RESOLVE_MODE_NONE"),
2924		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,						"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
2925		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,							"VK_RESOLVE_MODE_AVERAGE_BIT"),
2926		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,								"VK_RESOLVE_MODE_MIN_BIT"),
2927		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,								"VK_RESOLVE_MODE_MAX_BIT"),
2928		tcu::Format::BitDesc(VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID,	"VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID"),
2929	};
2930	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2931}
2932
2933tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
2934{
2935	static const tcu::Format::BitDesc s_desc[] =
2936	{
2937		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,			"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
2938		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,	"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
2939		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,				"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
2940		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,	"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
2941	};
2942	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2943}
2944
2945tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
2946{
2947	static const tcu::Format::BitDesc s_desc[] =
2948	{
2949		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,	"VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
2950	};
2951	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2952}
2953
2954const char* getSemaphoreTypeName (VkSemaphoreType value)
2955{
2956	switch (value)
2957	{
2958		case VK_SEMAPHORE_TYPE_BINARY:		return "VK_SEMAPHORE_TYPE_BINARY";
2959		case VK_SEMAPHORE_TYPE_TIMELINE:	return "VK_SEMAPHORE_TYPE_TIMELINE";
2960		default:							return nullptr;
2961	}
2962}
2963
2964tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
2965{
2966	static const tcu::Format::BitDesc s_desc[] =
2967	{
2968		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
2969		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
2970	};
2971	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2972}
2973
2974tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
2975{
2976	static const tcu::Format::BitDesc s_desc[] =
2977	{
2978		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
2979		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,			"VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
2980		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
2981		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,				"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
2982		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,	"VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"),
2983		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"),
2984	};
2985	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2986}
2987
2988tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
2989{
2990	static const tcu::Format::BitDesc s_desc[] =
2991	{
2992		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
2993		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
2994		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
2995		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,					"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
2996		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
2997		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,								"VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
2998		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,			"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"),
2999		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"),
3000		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"),
3001		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV"),
3002		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR,						"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR"),
3003	};
3004	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3005}
3006
3007tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
3008{
3009	static const tcu::Format::BitDesc s_desc[] =
3010	{
3011		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3012		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,							"VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
3013		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,	"VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"),
3014	};
3015	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3016}
3017
3018const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
3019{
3020	switch (value)
3021	{
3022		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
3023		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
3024		default:												return nullptr;
3025	}
3026}
3027
3028const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
3029{
3030	switch (value)
3031	{
3032		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
3033		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
3034		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
3035		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
3036		default:													return nullptr;
3037	}
3038}
3039
3040const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
3041{
3042	switch (value)
3043	{
3044		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
3045		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
3046		case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
3047		default:												return nullptr;
3048	}
3049}
3050
3051const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
3052{
3053	switch (value)
3054	{
3055		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
3056		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
3057		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
3058		default:								return nullptr;
3059	}
3060}
3061
3062const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
3063{
3064	switch (value)
3065	{
3066		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
3067		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
3068		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
3069		default:														return nullptr;
3070	}
3071}
3072
3073const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
3074{
3075	switch (value)
3076	{
3077		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
3078		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
3079		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
3080		default:																	return nullptr;
3081	}
3082}
3083
3084const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
3085{
3086	switch (value)
3087	{
3088		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
3089		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
3090		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
3091		default:														return nullptr;
3092	}
3093}
3094
3095const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
3096{
3097	switch (value)
3098	{
3099		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
3100		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
3101		default:														return nullptr;
3102	}
3103}
3104
3105const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
3106{
3107	switch (value)
3108	{
3109		case VK_SHADER_GROUP_SHADER_GENERAL_KHR:		return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
3110		case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:	return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
3111		case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:		return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
3112		case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:	return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
3113		default:										return nullptr;
3114	}
3115}
3116
3117const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
3118{
3119	switch (value)
3120	{
3121		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
3122		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
3123		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
3124		default:												return nullptr;
3125	}
3126}
3127
3128tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
3129{
3130	static const tcu::Format::BitDesc s_desc[] =
3131	{
3132		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
3133		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
3134		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
3135		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
3136	};
3137	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3138}
3139
3140tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
3141{
3142	static const tcu::Format::BitDesc s_desc[] =
3143	{
3144		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,							"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
3145		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,	"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
3146		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,		"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
3147	};
3148	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3149}
3150
3151const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
3152{
3153	switch (value)
3154	{
3155		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:	return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
3156		case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:		return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
3157		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
3158		default:												return nullptr;
3159	}
3160}
3161
3162const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
3163{
3164	switch (value)
3165	{
3166		case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
3167		case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
3168		case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
3169		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
3170		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:	return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
3171		case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
3172		case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
3173		case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
3174		case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
3175		case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
3176		case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
3177		default:												return nullptr;
3178	}
3179}
3180
3181const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
3182{
3183	switch (value)
3184	{
3185		case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
3186		case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
3187		case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
3188		case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
3189		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
3190		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
3191		default:											return nullptr;
3192	}
3193}
3194
3195tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3196{
3197	static const tcu::Format::BitDesc s_desc[] =
3198	{
3199		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3200		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3201	};
3202	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3203}
3204
3205tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3206{
3207	static const tcu::Format::BitDesc s_desc[] =
3208	{
3209		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,	"VK_SEMAPHORE_WAIT_ANY_BIT"),
3210	};
3211	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3212}
3213
3214const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
3215{
3216	switch (value)
3217	{
3218		case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:	return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
3219		default:																				return nullptr;
3220	}
3221}
3222
3223const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
3224{
3225	switch (value)
3226	{
3227		case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:	return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
3228		default:										return nullptr;
3229	}
3230}
3231
3232const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
3233{
3234	switch (value)
3235	{
3236		case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:		return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
3237		case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:	return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
3238		default:													return nullptr;
3239	}
3240}
3241
3242const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
3243{
3244	switch (value)
3245	{
3246		case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:		return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
3247		case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:	return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
3248		default:															return nullptr;
3249	}
3250}
3251
3252const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
3253{
3254	switch (value)
3255	{
3256		case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
3257		case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
3258		case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
3259		case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
3260		case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
3261		default:										return nullptr;
3262	}
3263}
3264
3265const char* getLineRasterizationModeName (VkLineRasterizationMode value)
3266{
3267	switch (value)
3268	{
3269		case VK_LINE_RASTERIZATION_MODE_DEFAULT:			return "VK_LINE_RASTERIZATION_MODE_DEFAULT";
3270		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR:		return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR";
3271		case VK_LINE_RASTERIZATION_MODE_BRESENHAM:			return "VK_LINE_RASTERIZATION_MODE_BRESENHAM";
3272		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH:	return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH";
3273		default:											return nullptr;
3274	}
3275}
3276
3277tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
3278{
3279	static const tcu::Format::BitDesc s_desc[] =
3280	{
3281		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,			"VK_TOOL_PURPOSE_VALIDATION_BIT"),
3282		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,				"VK_TOOL_PURPOSE_PROFILING_BIT"),
3283		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,				"VK_TOOL_PURPOSE_TRACING_BIT"),
3284		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,	"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
3285		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,	"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
3286		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,	"VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3287		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,		"VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3288	};
3289	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3290}
3291
3292const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
3293{
3294	switch (value)
3295	{
3296		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
3297		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
3298		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
3299		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
3300		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
3301		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
3302		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
3303		case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
3304		case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
3305		case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
3306		case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
3307		case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:				return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
3308		default:														return nullptr;
3309	}
3310}
3311
3312const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
3313{
3314	switch (value)
3315	{
3316		case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:	return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
3317		case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
3318		default:												return nullptr;
3319	}
3320}
3321
3322const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
3323{
3324	switch (value)
3325	{
3326		case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:									return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
3327		case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:								return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
3328		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
3329		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:				return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
3330		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
3331		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:						return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
3332		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
3333		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:	return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
3334		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
3335		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
3336		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:			return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
3337		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:		return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
3338		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
3339		case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:					return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
3340		default:																	return nullptr;
3341	}
3342}
3343
3344tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
3345{
3346	static const tcu::Format::BitDesc s_desc[] =
3347	{
3348		tcu::Format::BitDesc(VK_ACCESS_2_NONE,											"VK_ACCESS_2_NONE"),
3349		tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
3350		tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,								"VK_ACCESS_2_INDEX_READ_BIT"),
3351		tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
3352		tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,								"VK_ACCESS_2_UNIFORM_READ_BIT"),
3353		tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
3354		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,								"VK_ACCESS_2_SHADER_READ_BIT"),
3355		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,								"VK_ACCESS_2_SHADER_WRITE_BIT"),
3356		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
3357		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,					"VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
3358		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
3359		tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			"VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
3360		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,								"VK_ACCESS_2_TRANSFER_READ_BIT"),
3361		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,							"VK_ACCESS_2_TRANSFER_WRITE_BIT"),
3362		tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,									"VK_ACCESS_2_HOST_READ_BIT"),
3363		tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,								"VK_ACCESS_2_HOST_WRITE_BIT"),
3364		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,								"VK_ACCESS_2_MEMORY_READ_BIT"),
3365		tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,								"VK_ACCESS_2_MEMORY_WRITE_BIT"),
3366		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
3367		tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,				"VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
3368		tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
3369		tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,			"VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
3370		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
3371		tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
3372		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
3373		tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
3374		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
3375		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
3376		tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
3377		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,						"VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
3378		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,						"VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
3379		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,						"VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
3380		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
3381		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
3382		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,						"VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
3383		tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,					"VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
3384		tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,				"VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
3385		tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,				"VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
3386		tcu::Format::BitDesc(VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,				"VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT"),
3387		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"),
3388		tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,						"VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"),
3389		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_READ_BIT_EXT,							"VK_ACCESS_2_MICROMAP_READ_BIT_EXT"),
3390		tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,						"VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"),
3391	};
3392	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3393}
3394
3395tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
3396{
3397	static const tcu::Format::BitDesc s_desc[] =
3398	{
3399		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,										"VK_PIPELINE_STAGE_2_NONE"),
3400		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
3401		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
3402		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
3403		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
3404		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,			"VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
3405		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,		"VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
3406		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,						"VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
3407		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,						"VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
3408		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
3409		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
3410		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,				"VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
3411		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,						"VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
3412		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,							"VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
3413		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,						"VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
3414		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,									"VK_PIPELINE_STAGE_2_HOST_BIT"),
3415		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
3416		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
3417		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
3418		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3419		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"),
3420		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,						"VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"),
3421		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,				"VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
3422		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3423		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3424		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,				"VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
3425		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3426		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
3427		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,						"VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
3428		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,		"VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
3429		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,						"VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"),
3430		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,					"VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"),
3431		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,									"VK_PIPELINE_STAGE_2_COPY_BIT"),
3432		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,								"VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
3433		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,									"VK_PIPELINE_STAGE_2_BLIT_BIT"),
3434		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,									"VK_PIPELINE_STAGE_2_CLEAR_BIT"),
3435		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,							"VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
3436		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,				"VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
3437		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,				"VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
3438		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI,					"VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI"),
3439		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,				"VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
3440		tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI,			"VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI"),
3441	};
3442	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3443}
3444
3445const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
3446{
3447	switch (value)
3448	{
3449		case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
3450		case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:	return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
3451		default:										return nullptr;
3452	}
3453}
3454
3455tcu::Format::Bitfield<32> getHostImageCopyFlagsStr (VkHostImageCopyFlags value)
3456{
3457	static const tcu::Format::BitDesc s_desc[] =
3458	{
3459		tcu::Format::BitDesc(VK_HOST_IMAGE_COPY_MEMCPY,	"VK_HOST_IMAGE_COPY_MEMCPY"),
3460	};
3461	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3462}
3463
3464tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
3465{
3466	static const tcu::Format::BitDesc s_desc[] =
3467	{
3468		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
3469		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
3470		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
3471		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,		"VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
3472		tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,	"VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
3473	};
3474	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3475}
3476
3477tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
3478{
3479	static const tcu::Format::BitDesc s_desc[] =
3480	{
3481		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
3482		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,																"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
3483		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
3484		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3485		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
3486		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
3487		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,																"VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
3488		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,															"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
3489		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,													"VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
3490		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,													"VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
3491		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
3492		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,																	"VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
3493		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
3494		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
3495		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
3496		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,																"VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
3497		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,												"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
3498		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
3499		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"),
3500		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"),
3501		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"),
3502		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"),
3503		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,																	"VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
3504		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,													"VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
3505		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3506		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
3507		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
3508		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,													"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
3509		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
3510		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
3511		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,										"VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3512		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
3513		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,												"VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
3514		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,											"VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
3515		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,															"VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
3516		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,													"VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
3517		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,														"VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
3518		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,													"VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
3519		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,												"VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
3520		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"),
3521		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,													"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"),
3522		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,														"VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"),
3523		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT,														"VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT"),
3524		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,									"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR"),
3525		tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR,												"VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR"),
3526	};
3527	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3528}
3529
3530tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3531{
3532	static const tcu::Format::BitDesc s_desc[] =
3533	{
3534		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,	"VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3535		tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,							"VK_RENDERING_SUSPENDING_BIT"),
3536		tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,								"VK_RENDERING_RESUMING_BIT"),
3537		tcu::Format::BitDesc(VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,			"VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3538		tcu::Format::BitDesc(VK_RENDERING_CONTENTS_INLINE_BIT_KHR,					"VK_RENDERING_CONTENTS_INLINE_BIT_KHR"),
3539	};
3540	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3541}
3542
3543tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3544{
3545	static const tcu::Format::BitDesc s_desc[] =
3546	{
3547		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"),
3548		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"),
3549	};
3550	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3551}
3552
3553tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3554{
3555	static const tcu::Format::BitDesc s_desc[] =
3556	{
3557		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"),
3558	};
3559	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3560}
3561
3562tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
3563{
3564	static const tcu::Format::BitDesc s_desc[] =
3565	{
3566		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,				"VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
3567		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
3568		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
3569		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,				"VK_IMAGE_COMPRESSION_DISABLED_EXT"),
3570	};
3571	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3572}
3573
3574tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
3575{
3576	static const tcu::Format::BitDesc s_desc[] =
3577	{
3578		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,		"VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
3579		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
3580		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
3581		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
3582		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
3583		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
3584		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
3585		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
3586		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
3587		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
3588		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
3589		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
3590		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
3591		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
3592		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
3593		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
3594		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
3595		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
3596		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
3597		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
3598		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
3599		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
3600		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
3601		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
3602		tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,	"VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
3603	};
3604	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3605}
3606
3607tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
3608{
3609	static const tcu::Format::BitDesc s_desc[] =
3610	{
3611		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
3612		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
3613		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
3614		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,			"VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
3615		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,		"VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
3616		tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,	"VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
3617	};
3618	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3619}
3620
3621const char* getPipelineRobustnessBufferBehaviorName (VkPipelineRobustnessBufferBehavior value)
3622{
3623	switch (value)
3624	{
3625		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT:			return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT";
3626		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED:				return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED";
3627		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS";
3628		case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2:	return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2";
3629		default:															return nullptr;
3630	}
3631}
3632
3633const char* getPipelineRobustnessImageBehaviorName (VkPipelineRobustnessImageBehavior value)
3634{
3635	switch (value)
3636	{
3637		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT:			return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT";
3638		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED:				return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED";
3639		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS:		return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS";
3640		case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2:	return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2";
3641		default:															return nullptr;
3642	}
3643}
3644
3645tcu::Format::Bitfield<32> getDeviceAddressBindingFlagsEXTStr (VkDeviceAddressBindingFlagsEXT value)
3646{
3647	static const tcu::Format::BitDesc s_desc[] =
3648	{
3649		tcu::Format::BitDesc(VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT,	"VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"),
3650	};
3651	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3652}
3653
3654const char* getDeviceAddressBindingTypeEXTName (VkDeviceAddressBindingTypeEXT value)
3655{
3656	switch (value)
3657	{
3658		case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT";
3659		case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT:	return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT";
3660		default:										return nullptr;
3661	}
3662}
3663
3664const char* getMicromapTypeEXTName (VkMicromapTypeEXT value)
3665{
3666	switch (value)
3667	{
3668		case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT:		return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT";
3669		case VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV:	return "VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV";
3670		default:										return nullptr;
3671	}
3672}
3673
3674const char* getBuildMicromapModeEXTName (VkBuildMicromapModeEXT value)
3675{
3676	switch (value)
3677	{
3678		case VK_BUILD_MICROMAP_MODE_BUILD_EXT:	return "VK_BUILD_MICROMAP_MODE_BUILD_EXT";
3679		default:								return nullptr;
3680	}
3681}
3682
3683const char* getCopyMicromapModeEXTName (VkCopyMicromapModeEXT value)
3684{
3685	switch (value)
3686	{
3687		case VK_COPY_MICROMAP_MODE_CLONE_EXT:		return "VK_COPY_MICROMAP_MODE_CLONE_EXT";
3688		case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT";
3689		case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT:	return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT";
3690		case VK_COPY_MICROMAP_MODE_COMPACT_EXT:		return "VK_COPY_MICROMAP_MODE_COMPACT_EXT";
3691		default:									return nullptr;
3692	}
3693}
3694
3695tcu::Format::Bitfield<32> getBuildMicromapFlagsEXTStr (VkBuildMicromapFlagsEXT value)
3696{
3697	static const tcu::Format::BitDesc s_desc[] =
3698	{
3699		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT"),
3700		tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,	"VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT"),
3701		tcu::Format::BitDesc(VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT,	"VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT"),
3702	};
3703	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3704}
3705
3706tcu::Format::Bitfield<32> getMicromapCreateFlagsEXTStr (VkMicromapCreateFlagsEXT value)
3707{
3708	static const tcu::Format::BitDesc s_desc[] =
3709	{
3710		tcu::Format::BitDesc(VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,	"VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3711	};
3712	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3713}
3714
3715const char* getOpacityMicromapFormatEXTName (VkOpacityMicromapFormatEXT value)
3716{
3717	switch (value)
3718	{
3719		case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT";
3720		case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT:	return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT";
3721		default:										return nullptr;
3722	}
3723}
3724
3725const char* getOpacityMicromapSpecialIndexEXTName (VkOpacityMicromapSpecialIndexEXT value)
3726{
3727	switch (value)
3728	{
3729		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT:		return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT";
3730		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT:	return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT";
3731		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT:				return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT";
3732		case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT:			return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT";
3733		default:																return nullptr;
3734	}
3735}
3736
3737const char* getDeviceFaultVendorBinaryHeaderVersionEXTName (VkDeviceFaultVendorBinaryHeaderVersionEXT value)
3738{
3739	switch (value)
3740	{
3741		case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT:	return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT";
3742		default:													return nullptr;
3743	}
3744}
3745
3746tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsEXTStr (VkIndirectCommandsLayoutUsageFlagsEXT value)
3747{
3748	static const tcu::Format::BitDesc s_desc[] =
3749	{
3750		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT"),
3751		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT"),
3752	};
3753	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3754}
3755
3756const char* getIndirectExecutionSetInfoTypeEXTName (VkIndirectExecutionSetInfoTypeEXT value)
3757{
3758	switch (value)
3759	{
3760		case VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT:			return "VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT";
3761		case VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT:	return "VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT";
3762		default:														return nullptr;
3763	}
3764}
3765
3766tcu::Format::Bitfield<32> getIndirectCommandsInputModeFlagsEXTStr (VkIndirectCommandsInputModeFlagsEXT value)
3767{
3768	static const tcu::Format::BitDesc s_desc[] =
3769	{
3770		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT,	"VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT"),
3771		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT,		"VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT"),
3772	};
3773	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3774}
3775
3776tcu::Format::Bitfield<32> getFrameBoundaryFlagsEXTStr (VkFrameBoundaryFlagsEXT value)
3777{
3778	static const tcu::Format::BitDesc s_desc[] =
3779	{
3780		tcu::Format::BitDesc(VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT,	"VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT"),
3781	};
3782	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3783}
3784
3785tcu::Format::Bitfield<64> getMemoryDecompressionMethodFlagsNVStr (VkMemoryDecompressionMethodFlagsNV value)
3786{
3787	static const tcu::Format::BitDesc s_desc[] =
3788	{
3789		tcu::Format::BitDesc(VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV,	"VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV"),
3790	};
3791	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3792}
3793
3794const char* getDepthBiasRepresentationEXTName (VkDepthBiasRepresentationEXT value)
3795{
3796	switch (value)
3797	{
3798		case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT:			return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT";
3799		case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT:	return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT";
3800		case VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT:									return "VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT";
3801		default:																		return nullptr;
3802	}
3803}
3804
3805const char* getDirectDriverLoadingModeLUNARGName (VkDirectDriverLoadingModeLUNARG value)
3806{
3807	switch (value)
3808	{
3809		case VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG";
3810		case VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG:	return "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG";
3811		default:												return nullptr;
3812	}
3813}
3814
3815tcu::Format::Bitfield<64> getPipelineCreateFlags2Str (VkPipelineCreateFlags2 value)
3816{
3817	static const tcu::Format::BitDesc s_desc[] =
3818	{
3819		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT,									"VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT"),
3820		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT,									"VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT"),
3821		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DERIVATIVE_BIT,											"VK_PIPELINE_CREATE_2_DERIVATIVE_BIT"),
3822		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,							"VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
3823		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT,										"VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT"),
3824		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV,										"VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV"),
3825		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR"),
3826		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,					"VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3827		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,					"VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
3828		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT,								"VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT"),
3829		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT,							"VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT"),
3830		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR,											"VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR"),
3831		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3832		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3833		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,				"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
3834		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,			"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
3835		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,					"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
3836		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,			"VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
3837		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV,									"VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV"),
3838		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,	"VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"),
3839		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV,							"VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
3840		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,		"VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3841		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,		"VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3842		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,				"VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
3843		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,						"VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
3844		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,					"VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
3845		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,			"VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
3846		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT,									"VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT"),
3847		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,					"VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV"),
3848		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT,								"VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT"),
3849		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT,								"VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT"),
3850		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR,										"VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR"),
3851		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX,									"VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX"),
3852		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT,							"VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3853		tcu::Format::BitDesc(VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT,								"VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT"),
3854	};
3855	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3856}
3857
3858tcu::Format::Bitfield<64> getBufferUsageFlags2Str (VkBufferUsageFlags2 value)
3859{
3860	static const tcu::Format::BitDesc s_desc[] =
3861	{
3862		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT"),
3863		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_2_TRANSFER_DST_BIT"),
3864		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3865		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT"),
3866		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT,										"VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT"),
3867		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,										"VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT"),
3868		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT"),
3869		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT"),
3870		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT,										"VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT"),
3871		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3872		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR"),
3873		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3874		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3875		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR"),
3876		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR"),
3877		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR"),
3878		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR"),
3879		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT"),
3880		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,	"VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"),
3881		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,					"VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3882		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"),
3883		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"),
3884		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,					"VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
3885		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT,								"VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT"),
3886		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX,						"VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"),
3887		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"),
3888		tcu::Format::BitDesc(VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT,								"VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT"),
3889	};
3890	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3891}
3892
3893const char* getAntiLagModeAMDName (VkAntiLagModeAMD value)
3894{
3895	switch (value)
3896	{
3897		case VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD:	return "VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD";
3898		case VK_ANTI_LAG_MODE_ON_AMD:				return "VK_ANTI_LAG_MODE_ON_AMD";
3899		case VK_ANTI_LAG_MODE_OFF_AMD:				return "VK_ANTI_LAG_MODE_OFF_AMD";
3900		default:									return nullptr;
3901	}
3902}
3903
3904const char* getAntiLagStageAMDName (VkAntiLagStageAMD value)
3905{
3906	switch (value)
3907	{
3908		case VK_ANTI_LAG_STAGE_INPUT_AMD:	return "VK_ANTI_LAG_STAGE_INPUT_AMD";
3909		case VK_ANTI_LAG_STAGE_PRESENT_AMD:	return "VK_ANTI_LAG_STAGE_PRESENT_AMD";
3910		default:							return nullptr;
3911	}
3912}
3913
3914const char* getDisplacementMicromapFormatNVName (VkDisplacementMicromapFormatNV value)
3915{
3916	switch (value)
3917	{
3918		case VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV:		return "VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV";
3919		case VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV:	return "VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV";
3920		case VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV:	return "VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV";
3921		default:															return nullptr;
3922	}
3923}
3924
3925tcu::Format::Bitfield<32> getShaderCreateFlagsEXTStr (VkShaderCreateFlagsEXT value)
3926{
3927	static const tcu::Format::BitDesc s_desc[] =
3928	{
3929		tcu::Format::BitDesc(VK_SHADER_CREATE_LINK_STAGE_BIT_EXT,						"VK_SHADER_CREATE_LINK_STAGE_BIT_EXT"),
3930		tcu::Format::BitDesc(VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,		"VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
3931		tcu::Format::BitDesc(VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,			"VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3932		tcu::Format::BitDesc(VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,					"VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT"),
3933		tcu::Format::BitDesc(VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,					"VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT"),
3934		tcu::Format::BitDesc(VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,	"VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT"),
3935		tcu::Format::BitDesc(VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,	"VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3936		tcu::Format::BitDesc(VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT,				"VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT"),
3937	};
3938	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3939}
3940
3941const char* getShaderCodeTypeEXTName (VkShaderCodeTypeEXT value)
3942{
3943	switch (value)
3944	{
3945		case VK_SHADER_CODE_TYPE_BINARY_EXT:	return "VK_SHADER_CODE_TYPE_BINARY_EXT";
3946		case VK_SHADER_CODE_TYPE_SPIRV_EXT:		return "VK_SHADER_CODE_TYPE_SPIRV_EXT";
3947		default:								return nullptr;
3948	}
3949}
3950
3951const char* getScopeKHRName (VkScopeKHR value)
3952{
3953	switch (value)
3954	{
3955		case VK_SCOPE_DEVICE_KHR:		return "VK_SCOPE_DEVICE_KHR";
3956		case VK_SCOPE_WORKGROUP_KHR:	return "VK_SCOPE_WORKGROUP_KHR";
3957		case VK_SCOPE_SUBGROUP_KHR:		return "VK_SCOPE_SUBGROUP_KHR";
3958		case VK_SCOPE_QUEUE_FAMILY_KHR:	return "VK_SCOPE_QUEUE_FAMILY_KHR";
3959		default:						return nullptr;
3960	}
3961}
3962
3963const char* getComponentTypeKHRName (VkComponentTypeKHR value)
3964{
3965	switch (value)
3966	{
3967		case VK_COMPONENT_TYPE_FLOAT16_KHR:	return "VK_COMPONENT_TYPE_FLOAT16_KHR";
3968		case VK_COMPONENT_TYPE_FLOAT32_KHR:	return "VK_COMPONENT_TYPE_FLOAT32_KHR";
3969		case VK_COMPONENT_TYPE_FLOAT64_KHR:	return "VK_COMPONENT_TYPE_FLOAT64_KHR";
3970		case VK_COMPONENT_TYPE_SINT8_KHR:	return "VK_COMPONENT_TYPE_SINT8_KHR";
3971		case VK_COMPONENT_TYPE_SINT16_KHR:	return "VK_COMPONENT_TYPE_SINT16_KHR";
3972		case VK_COMPONENT_TYPE_SINT32_KHR:	return "VK_COMPONENT_TYPE_SINT32_KHR";
3973		case VK_COMPONENT_TYPE_SINT64_KHR:	return "VK_COMPONENT_TYPE_SINT64_KHR";
3974		case VK_COMPONENT_TYPE_UINT8_KHR:	return "VK_COMPONENT_TYPE_UINT8_KHR";
3975		case VK_COMPONENT_TYPE_UINT16_KHR:	return "VK_COMPONENT_TYPE_UINT16_KHR";
3976		case VK_COMPONENT_TYPE_UINT32_KHR:	return "VK_COMPONENT_TYPE_UINT32_KHR";
3977		case VK_COMPONENT_TYPE_UINT64_KHR:	return "VK_COMPONENT_TYPE_UINT64_KHR";
3978		default:							return nullptr;
3979	}
3980}
3981
3982const char* getCubicFilterWeightsQCOMName (VkCubicFilterWeightsQCOM value)
3983{
3984	switch (value)
3985	{
3986		case VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM:				return "VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM";
3987		case VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM:	return "VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM";
3988		case VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM:					return "VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM";
3989		case VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM:		return "VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM";
3990		default:													return nullptr;
3991	}
3992}
3993
3994const char* getBlockMatchWindowCompareModeQCOMName (VkBlockMatchWindowCompareModeQCOM value)
3995{
3996	switch (value)
3997	{
3998		case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM:	return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM";
3999		case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM:	return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM";
4000		default:											return nullptr;
4001	}
4002}
4003
4004const char* getLayeredDriverUnderlyingApiMSFTName (VkLayeredDriverUnderlyingApiMSFT value)
4005{
4006	switch (value)
4007	{
4008		case VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT:	return "VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT";
4009		case VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT:	return "VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT";
4010		default:											return nullptr;
4011	}
4012}
4013
4014const char* getPhysicalDeviceLayeredApiKHRName (VkPhysicalDeviceLayeredApiKHR value)
4015{
4016	switch (value)
4017	{
4018		case VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR:		return "VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR";
4019		case VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR:		return "VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR";
4020		case VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR:		return "VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR";
4021		case VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR:		return "VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR";
4022		case VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR:	return "VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR";
4023		default:											return nullptr;
4024	}
4025}
4026
4027const char* getDepthClampModeEXTName (VkDepthClampModeEXT value)
4028{
4029	switch (value)
4030	{
4031		case VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT:		return "VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT";
4032		case VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT:	return "VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT";
4033		default:											return nullptr;
4034	}
4035}
4036
4037const char* getColorSpaceKHRName (VkColorSpaceKHR value)
4038{
4039	switch (value)
4040	{
4041		case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:				return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
4042		case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:		return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
4043		case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:		return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
4044		case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:			return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
4045		case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:			return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
4046		case VK_COLOR_SPACE_BT709_LINEAR_EXT:				return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
4047		case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:			return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
4048		case VK_COLOR_SPACE_BT2020_LINEAR_EXT:				return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
4049		case VK_COLOR_SPACE_HDR10_ST2084_EXT:				return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
4050		case VK_COLOR_SPACE_DOLBYVISION_EXT:				return "VK_COLOR_SPACE_DOLBYVISION_EXT";
4051		case VK_COLOR_SPACE_HDR10_HLG_EXT:					return "VK_COLOR_SPACE_HDR10_HLG_EXT";
4052		case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
4053		case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
4054		case VK_COLOR_SPACE_PASS_THROUGH_EXT:				return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
4055		case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:	return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
4056		case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:				return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
4057		default:											return nullptr;
4058	}
4059}
4060
4061tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
4062{
4063	static const tcu::Format::BitDesc s_desc[] =
4064	{
4065		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,				"VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
4066		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,		"VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
4067		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,	"VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
4068		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,			"VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
4069	};
4070	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4071}
4072
4073tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
4074{
4075	static const tcu::Format::BitDesc s_desc[] =
4076	{
4077		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
4078		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
4079		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,					"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
4080		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,	"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
4081	};
4082	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4083}
4084
4085const char* getPresentModeKHRName (VkPresentModeKHR value)
4086{
4087	switch (value)
4088	{
4089		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
4090		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
4091		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
4092		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
4093		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
4094		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
4095		case VK_PRESENT_MODE_FIFO_LATEST_READY_EXT:			return "VK_PRESENT_MODE_FIFO_LATEST_READY_EXT";
4096		default:											return nullptr;
4097	}
4098}
4099
4100tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
4101{
4102	static const tcu::Format::BitDesc s_desc[] =
4103	{
4104		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,						"VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
4105		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
4106		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
4107		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
4108		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,			"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
4109		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
4110		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
4111		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
4112		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,						"VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
4113	};
4114	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4115}
4116
4117const char* getDisplaySurfaceStereoTypeNVName (VkDisplaySurfaceStereoTypeNV value)
4118{
4119	switch (value)
4120	{
4121		case VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV:				return "VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV";
4122		case VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV:			return "VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV";
4123		case VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV:				return "VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV";
4124		case VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV:	return "VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV";
4125		default:													return nullptr;
4126	}
4127}
4128
4129tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
4130{
4131	static const tcu::Format::BitDesc s_desc[] =
4132	{
4133		tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,			"VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
4134		tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,				"VK_DEBUG_REPORT_WARNING_BIT_EXT"),
4135		tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,	"VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
4136		tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,					"VK_DEBUG_REPORT_ERROR_BIT_EXT"),
4137		tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,					"VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
4138	};
4139	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4140}
4141
4142const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
4143{
4144	switch (value)
4145	{
4146		case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
4147		case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
4148		case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
4149		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
4150		case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
4151		case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
4152		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
4153		case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
4154		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
4155		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
4156		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
4157		case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
4158		case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
4159		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
4160		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
4161		case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
4162		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
4163		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
4164		case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
4165		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
4166		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
4167		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
4168		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
4169		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
4170		case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
4171		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
4172		case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
4173		case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
4174		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
4175		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
4176		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
4177		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
4178		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
4179		case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
4180		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
4181		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
4182		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
4183		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
4184		case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT";
4185		case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT";
4186		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
4187		default:															return nullptr;
4188	}
4189}
4190
4191const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
4192{
4193	switch (value)
4194	{
4195		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
4196		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
4197		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
4198		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
4199		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:	return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
4200		default:														return nullptr;
4201	}
4202}
4203
4204const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
4205{
4206	switch (value)
4207	{
4208		case VK_RASTERIZATION_ORDER_STRICT_AMD:		return "VK_RASTERIZATION_ORDER_STRICT_AMD";
4209		case VK_RASTERIZATION_ORDER_RELAXED_AMD:	return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
4210		default:									return nullptr;
4211	}
4212}
4213
4214tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
4215{
4216	static const tcu::Format::BitDesc s_desc[] =
4217	{
4218		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
4219		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
4220		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,			"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
4221		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
4222	};
4223	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4224}
4225
4226tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
4227{
4228	static const tcu::Format::BitDesc s_desc[] =
4229	{
4230		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
4231		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
4232		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
4233	};
4234	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4235}
4236
4237const char* getValidationCheckEXTName (VkValidationCheckEXT value)
4238{
4239	switch (value)
4240	{
4241		case VK_VALIDATION_CHECK_ALL_EXT:		return "VK_VALIDATION_CHECK_ALL_EXT";
4242		case VK_VALIDATION_CHECK_SHADERS_EXT:	return "VK_VALIDATION_CHECK_SHADERS_EXT";
4243		default:								return nullptr;
4244	}
4245}
4246
4247const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
4248{
4249	switch (value)
4250	{
4251		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
4252		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
4253		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
4254		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
4255		case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:			return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
4256		default:																	return nullptr;
4257	}
4258}
4259
4260const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
4261{
4262	switch (value)
4263	{
4264		case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:						return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
4265		case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:					return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
4266		case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
4267		case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
4268		case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
4269		case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
4270		case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
4271		case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT:	return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
4272		default:														return nullptr;
4273	}
4274}
4275
4276tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
4277{
4278	static const tcu::Format::BitDesc s_desc[] =
4279	{
4280		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
4281		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4282		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4283		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
4284		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
4285		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
4286		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
4287		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
4288		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"),
4289		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
4290		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
4291		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
4292		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
4293		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX"),
4294	};
4295	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4296}
4297
4298tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
4299{
4300	static const tcu::Format::BitDesc s_desc[] =
4301	{
4302		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
4303		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
4304		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
4305	};
4306	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4307}
4308
4309tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
4310{
4311	static const tcu::Format::BitDesc s_desc[] =
4312	{
4313		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
4314		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4315		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4316		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
4317		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
4318		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
4319	};
4320	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4321}
4322
4323tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
4324{
4325	static const tcu::Format::BitDesc s_desc[] =
4326	{
4327		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
4328		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
4329	};
4330	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4331}
4332
4333tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
4334{
4335	static const tcu::Format::BitDesc s_desc[] =
4336	{
4337		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,	"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
4338	};
4339	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4340}
4341
4342tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
4343{
4344	static const tcu::Format::BitDesc s_desc[] =
4345	{
4346		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
4347		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
4348		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,	"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
4349		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
4350	};
4351	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4352}
4353
4354tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
4355{
4356	static const tcu::Format::BitDesc s_desc[] =
4357	{
4358		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
4359		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,	"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
4360	};
4361	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4362}
4363
4364tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
4365{
4366	static const tcu::Format::BitDesc s_desc[] =
4367	{
4368		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,	"VK_FENCE_IMPORT_TEMPORARY_BIT"),
4369	};
4370	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4371}
4372
4373tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
4374{
4375	static const tcu::Format::BitDesc s_desc[] =
4376	{
4377		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,	"VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
4378	};
4379	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4380}
4381
4382const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
4383{
4384	switch (value)
4385	{
4386		case VK_DISPLAY_POWER_STATE_OFF_EXT:		return "VK_DISPLAY_POWER_STATE_OFF_EXT";
4387		case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:	return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
4388		case VK_DISPLAY_POWER_STATE_ON_EXT:			return "VK_DISPLAY_POWER_STATE_ON_EXT";
4389		default:									return nullptr;
4390	}
4391}
4392
4393const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
4394{
4395	switch (value)
4396	{
4397		case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:	return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
4398		default:										return nullptr;
4399	}
4400}
4401
4402const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
4403{
4404	switch (value)
4405	{
4406		case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:	return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
4407		default:										return nullptr;
4408	}
4409}
4410
4411tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
4412{
4413	static const tcu::Format::BitDesc s_desc[] =
4414	{
4415		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
4416		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,		"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
4417		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
4418		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,	"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
4419	};
4420	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4421}
4422
4423tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
4424{
4425	static const tcu::Format::BitDesc s_desc[] =
4426	{
4427		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
4428		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,					"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
4429		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,	"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
4430	};
4431	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4432}
4433
4434tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
4435{
4436	static const tcu::Format::BitDesc s_desc[] =
4437	{
4438		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
4439		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
4440		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,					"VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
4441		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,	"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
4442	};
4443	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4444}
4445
4446tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
4447{
4448	static const tcu::Format::BitDesc s_desc[] =
4449	{
4450		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,	"VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
4451		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,						"VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
4452		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,				"VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
4453		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT,	"VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT"),
4454	};
4455	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4456}
4457
4458tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
4459{
4460	static const tcu::Format::BitDesc s_desc[] =
4461	{
4462		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,				"VK_SUBGROUP_FEATURE_BASIC_BIT"),
4463		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,				"VK_SUBGROUP_FEATURE_VOTE_BIT"),
4464		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,		"VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
4465		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,			"VK_SUBGROUP_FEATURE_BALLOT_BIT"),
4466		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,			"VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
4467		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,	"VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
4468		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,			"VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
4469		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,				"VK_SUBGROUP_FEATURE_QUAD_BIT"),
4470		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,	"VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
4471		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ROTATE_BIT,			"VK_SUBGROUP_FEATURE_ROTATE_BIT"),
4472		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,	"VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT"),
4473	};
4474	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4475}
4476
4477const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
4478{
4479	switch (value)
4480	{
4481		case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
4482		case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
4483		default:										return nullptr;
4484	}
4485}
4486
4487const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
4488{
4489	switch (value)
4490	{
4491		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
4492		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
4493		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
4494		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
4495		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
4496		default:												return nullptr;
4497	}
4498}
4499
4500const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
4501{
4502	switch (value)
4503	{
4504		case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:	return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
4505		case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:	return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
4506		default:								return nullptr;
4507	}
4508}
4509
4510const char* getChromaLocationName (VkChromaLocation value)
4511{
4512	switch (value)
4513	{
4514		case VK_CHROMA_LOCATION_COSITED_EVEN:	return "VK_CHROMA_LOCATION_COSITED_EVEN";
4515		case VK_CHROMA_LOCATION_MIDPOINT:		return "VK_CHROMA_LOCATION_MIDPOINT";
4516		default:								return nullptr;
4517	}
4518}
4519
4520const char* getSamplerReductionModeName (VkSamplerReductionMode value)
4521{
4522	switch (value)
4523	{
4524		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:					return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
4525		case VK_SAMPLER_REDUCTION_MODE_MIN:									return "VK_SAMPLER_REDUCTION_MODE_MIN";
4526		case VK_SAMPLER_REDUCTION_MODE_MAX:									return "VK_SAMPLER_REDUCTION_MODE_MAX";
4527		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM:	return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM";
4528		default:															return nullptr;
4529	}
4530}
4531
4532const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
4533{
4534	switch (value)
4535	{
4536		case VK_BLEND_OVERLAP_UNCORRELATED_EXT:	return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
4537		case VK_BLEND_OVERLAP_DISJOINT_EXT:		return "VK_BLEND_OVERLAP_DISJOINT_EXT";
4538		case VK_BLEND_OVERLAP_CONJOINT_EXT:		return "VK_BLEND_OVERLAP_CONJOINT_EXT";
4539		default:								return nullptr;
4540	}
4541}
4542
4543tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
4544{
4545	static const tcu::Format::BitDesc s_desc[] =
4546	{
4547		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
4548		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
4549		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
4550		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
4551	};
4552	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4553}
4554
4555tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
4556{
4557	static const tcu::Format::BitDesc s_desc[] =
4558	{
4559		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,					"VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
4560		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
4561		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
4562		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,	"VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT"),
4563	};
4564	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4565}
4566
4567const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
4568{
4569	switch (value)
4570	{
4571		case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
4572		case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
4573		case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:				return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
4574		case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:	return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
4575		default:													return nullptr;
4576	}
4577}
4578
4579const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
4580{
4581	switch (value)
4582	{
4583		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
4584		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:			return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
4585		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:		return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
4586		default:												return nullptr;
4587	}
4588}
4589
4590const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
4591{
4592	switch (value)
4593	{
4594		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
4595		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
4596		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
4597		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
4598		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
4599		default:												return nullptr;
4600	}
4601}
4602
4603tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
4604{
4605	static const tcu::Format::BitDesc s_desc[] =
4606	{
4607		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,	"VK_SUBMIT_PROTECTED_BIT"),
4608	};
4609	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4610}
4611
4612tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
4613{
4614	static const tcu::Format::BitDesc s_desc[] =
4615	{
4616		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,		"VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
4617		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
4618		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,				"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
4619		tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,	"VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
4620	};
4621	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4622}
4623
4624tcu::Format::Bitfield<32> getOpticalFlowGridSizeFlagsNVStr (VkOpticalFlowGridSizeFlagsNV value)
4625{
4626	static const tcu::Format::BitDesc s_desc[] =
4627	{
4628		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"),
4629		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV"),
4630		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV"),
4631		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV"),
4632		tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV,	"VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV"),
4633	};
4634	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4635}
4636
4637tcu::Format::Bitfield<32> getOpticalFlowUsageFlagsNVStr (VkOpticalFlowUsageFlagsNV value)
4638{
4639	static const tcu::Format::BitDesc s_desc[] =
4640	{
4641		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,			"VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"),
4642		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV"),
4643		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,		"VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV"),
4644		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV"),
4645		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,			"VK_OPTICAL_FLOW_USAGE_COST_BIT_NV"),
4646		tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV"),
4647	};
4648	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4649}
4650
4651const char* getOpticalFlowPerformanceLevelNVName (VkOpticalFlowPerformanceLevelNV value)
4652{
4653	switch (value)
4654	{
4655		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV";
4656		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV";
4657		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV:	return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV";
4658		case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV:		return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV";
4659		default:											return nullptr;
4660	}
4661}
4662
4663const char* getOpticalFlowSessionBindingPointNVName (VkOpticalFlowSessionBindingPointNV value)
4664{
4665	switch (value)
4666	{
4667		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV";
4668		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV:				return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV";
4669		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV";
4670		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV";
4671		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV";
4672		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV:	return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV";
4673		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:					return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV";
4674		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV:		return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV";
4675		case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV:			return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV";
4676		default:															return nullptr;
4677	}
4678}
4679
4680tcu::Format::Bitfield<32> getOpticalFlowSessionCreateFlagsNVStr (VkOpticalFlowSessionCreateFlagsNV value)
4681{
4682	static const tcu::Format::BitDesc s_desc[] =
4683	{
4684		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV"),
4685		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,			"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV"),
4686		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,	"VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV"),
4687		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV"),
4688		tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV,		"VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV"),
4689	};
4690	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4691}
4692
4693tcu::Format::Bitfield<32> getOpticalFlowExecuteFlagsNVStr (VkOpticalFlowExecuteFlagsNV value)
4694{
4695	static const tcu::Format::BitDesc s_desc[] =
4696	{
4697		tcu::Format::BitDesc(VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV,	"VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"),
4698	};
4699	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4700}
4701
4702const char* getDeviceFaultAddressTypeEXTName (VkDeviceFaultAddressTypeEXT value)
4703{
4704	switch (value)
4705	{
4706		case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT:							return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT";
4707		case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT:					return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT";
4708		case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT";
4709		case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT:				return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT";
4710		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT";
4711		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT";
4712		case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT:	return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT";
4713		default:															return nullptr;
4714	}
4715}
4716
4717tcu::Format::Bitfield<32> getPresentScalingFlagsEXTStr (VkPresentScalingFlagsEXT value)
4718{
4719	static const tcu::Format::BitDesc s_desc[] =
4720	{
4721		tcu::Format::BitDesc(VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT,				"VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT"),
4722		tcu::Format::BitDesc(VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT,	"VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT"),
4723		tcu::Format::BitDesc(VK_PRESENT_SCALING_STRETCH_BIT_EXT,				"VK_PRESENT_SCALING_STRETCH_BIT_EXT"),
4724	};
4725	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4726}
4727
4728tcu::Format::Bitfield<32> getPresentGravityFlagsEXTStr (VkPresentGravityFlagsEXT value)
4729{
4730	static const tcu::Format::BitDesc s_desc[] =
4731	{
4732		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MIN_BIT_EXT,		"VK_PRESENT_GRAVITY_MIN_BIT_EXT"),
4733		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_MAX_BIT_EXT,		"VK_PRESENT_GRAVITY_MAX_BIT_EXT"),
4734		tcu::Format::BitDesc(VK_PRESENT_GRAVITY_CENTERED_BIT_EXT,	"VK_PRESENT_GRAVITY_CENTERED_BIT_EXT"),
4735	};
4736	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4737}
4738
4739const char* getLayerSettingTypeEXTName (VkLayerSettingTypeEXT value)
4740{
4741	switch (value)
4742	{
4743		case VK_LAYER_SETTING_TYPE_BOOL32_EXT:	return "VK_LAYER_SETTING_TYPE_BOOL32_EXT";
4744		case VK_LAYER_SETTING_TYPE_INT32_EXT:	return "VK_LAYER_SETTING_TYPE_INT32_EXT";
4745		case VK_LAYER_SETTING_TYPE_INT64_EXT:	return "VK_LAYER_SETTING_TYPE_INT64_EXT";
4746		case VK_LAYER_SETTING_TYPE_UINT32_EXT:	return "VK_LAYER_SETTING_TYPE_UINT32_EXT";
4747		case VK_LAYER_SETTING_TYPE_UINT64_EXT:	return "VK_LAYER_SETTING_TYPE_UINT64_EXT";
4748		case VK_LAYER_SETTING_TYPE_FLOAT32_EXT:	return "VK_LAYER_SETTING_TYPE_FLOAT32_EXT";
4749		case VK_LAYER_SETTING_TYPE_FLOAT64_EXT:	return "VK_LAYER_SETTING_TYPE_FLOAT64_EXT";
4750		case VK_LAYER_SETTING_TYPE_STRING_EXT:	return "VK_LAYER_SETTING_TYPE_STRING_EXT";
4751		default:								return nullptr;
4752	}
4753}
4754
4755const char* getLatencyMarkerNVName (VkLatencyMarkerNV value)
4756{
4757	switch (value)
4758	{
4759		case VK_LATENCY_MARKER_SIMULATION_START_NV:					return "VK_LATENCY_MARKER_SIMULATION_START_NV";
4760		case VK_LATENCY_MARKER_SIMULATION_END_NV:					return "VK_LATENCY_MARKER_SIMULATION_END_NV";
4761		case VK_LATENCY_MARKER_RENDERSUBMIT_START_NV:				return "VK_LATENCY_MARKER_RENDERSUBMIT_START_NV";
4762		case VK_LATENCY_MARKER_RENDERSUBMIT_END_NV:					return "VK_LATENCY_MARKER_RENDERSUBMIT_END_NV";
4763		case VK_LATENCY_MARKER_PRESENT_START_NV:					return "VK_LATENCY_MARKER_PRESENT_START_NV";
4764		case VK_LATENCY_MARKER_PRESENT_END_NV:						return "VK_LATENCY_MARKER_PRESENT_END_NV";
4765		case VK_LATENCY_MARKER_INPUT_SAMPLE_NV:						return "VK_LATENCY_MARKER_INPUT_SAMPLE_NV";
4766		case VK_LATENCY_MARKER_TRIGGER_FLASH_NV:					return "VK_LATENCY_MARKER_TRIGGER_FLASH_NV";
4767		case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV:	return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV";
4768		case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV:		return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV";
4769		case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV:		return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV";
4770		case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV:			return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV";
4771		default:													return nullptr;
4772	}
4773}
4774
4775const char* getOutOfBandQueueTypeNVName (VkOutOfBandQueueTypeNV value)
4776{
4777	switch (value)
4778	{
4779		case VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV:	return "VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV";
4780		case VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV:	return "VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV";
4781		default:									return nullptr;
4782	}
4783}
4784
4785tcu::Format::Bitfield<64> getPhysicalDeviceSchedulingControlsFlagsARMStr (VkPhysicalDeviceSchedulingControlsFlagsARM value)
4786{
4787	static const tcu::Format::BitDesc s_desc[] =
4788	{
4789		tcu::Format::BitDesc(VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM,	"VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM"),
4790	};
4791	return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4792}
4793
4794tcu::Format::Bitfield<32> getMemoryUnmapFlagsStr (VkMemoryUnmapFlags value)
4795{
4796	static const tcu::Format::BitDesc s_desc[] =
4797	{
4798		tcu::Format::BitDesc(VK_MEMORY_UNMAP_RESERVE_BIT_EXT,	"VK_MEMORY_UNMAP_RESERVE_BIT_EXT"),
4799	};
4800	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4801}
4802
4803const char* getVendorIdName (VkVendorId value)
4804{
4805	switch (value)
4806	{
4807		case VK_VENDOR_ID_KHRONOS:	return "VK_VENDOR_ID_KHRONOS";
4808		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
4809		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
4810		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
4811		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
4812		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
4813		case VK_VENDOR_ID_POCL:		return "VK_VENDOR_ID_POCL";
4814		case VK_VENDOR_ID_MOBILEYE:	return "VK_VENDOR_ID_MOBILEYE";
4815		default:					return nullptr;
4816	}
4817}
4818
4819const char* getDriverIdName (VkDriverId value)
4820{
4821	switch (value)
4822	{
4823		case VK_DRIVER_ID_AMD_PROPRIETARY:				return "VK_DRIVER_ID_AMD_PROPRIETARY";
4824		case VK_DRIVER_ID_AMD_OPEN_SOURCE:				return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
4825		case VK_DRIVER_ID_MESA_RADV:					return "VK_DRIVER_ID_MESA_RADV";
4826		case VK_DRIVER_ID_NVIDIA_PROPRIETARY:			return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
4827		case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:	return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
4828		case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:		return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
4829		case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:		return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
4830		case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:			return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
4831		case VK_DRIVER_ID_ARM_PROPRIETARY:				return "VK_DRIVER_ID_ARM_PROPRIETARY";
4832		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
4833		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
4834		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
4835		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
4836		case VK_DRIVER_ID_MOLTENVK:						return "VK_DRIVER_ID_MOLTENVK";
4837		case VK_DRIVER_ID_COREAVI_PROPRIETARY:			return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
4838		case VK_DRIVER_ID_JUICE_PROPRIETARY:			return "VK_DRIVER_ID_JUICE_PROPRIETARY";
4839		case VK_DRIVER_ID_VERISILICON_PROPRIETARY:		return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
4840		case VK_DRIVER_ID_MESA_TURNIP:					return "VK_DRIVER_ID_MESA_TURNIP";
4841		case VK_DRIVER_ID_MESA_V3DV:					return "VK_DRIVER_ID_MESA_V3DV";
4842		case VK_DRIVER_ID_MESA_PANVK:					return "VK_DRIVER_ID_MESA_PANVK";
4843		case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:			return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
4844		case VK_DRIVER_ID_MESA_VENUS:					return "VK_DRIVER_ID_MESA_VENUS";
4845		case VK_DRIVER_ID_MESA_DOZEN:					return "VK_DRIVER_ID_MESA_DOZEN";
4846		case VK_DRIVER_ID_MESA_NVK:						return "VK_DRIVER_ID_MESA_NVK";
4847		case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA:	return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
4848		case VK_DRIVER_ID_MESA_HONEYKRISP:				return "VK_DRIVER_ID_MESA_HONEYKRISP";
4849		case VK_DRIVER_ID_RESERVED_27:					return "VK_DRIVER_ID_RESERVED_27";
4850		default:										return nullptr;
4851	}
4852}
4853
4854const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
4855{
4856	switch (value)
4857	{
4858		case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:				return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
4859		case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
4860		case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
4861		case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
4862		case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
4863		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
4864		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
4865		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
4866		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
4867		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
4868		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
4869		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
4870		default:															return nullptr;
4871	}
4872}
4873
4874const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
4875{
4876	switch (value)
4877	{
4878		case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
4879		case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:			return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
4880		case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
4881		case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
4882		default:											return nullptr;
4883	}
4884}
4885
4886const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
4887{
4888	switch (value)
4889	{
4890		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
4891		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:		return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
4892		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
4893		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
4894		default:													return nullptr;
4895	}
4896}
4897
4898tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4899{
4900	static const tcu::Format::BitDesc s_desc[] =
4901	{
4902		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_NONE_KHR,				"VK_VIDEO_CODEC_OPERATION_NONE_KHR"),
4903		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR"),
4904		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR"),
4905		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR"),
4906		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR"),
4907		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR"),
4908		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR,	"VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR"),
4909	};
4910	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4911}
4912
4913tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4914{
4915	static const tcu::Format::BitDesc s_desc[] =
4916	{
4917		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"),
4918		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,	"VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4919		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4920		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4921		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4922	};
4923	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4924}
4925
4926tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4927{
4928	static const tcu::Format::BitDesc s_desc[] =
4929	{
4930		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4931		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4932		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4933		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4934	};
4935	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4936}
4937
4938tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4939{
4940	static const tcu::Format::BitDesc s_desc[] =
4941	{
4942		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,			"VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4943		tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,	"VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4944	};
4945	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4946}
4947
4948tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4949{
4950	static const tcu::Format::BitDesc s_desc[] =
4951	{
4952		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,						"VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4953		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR"),
4954		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR,						"VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR"),
4955		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR"),
4956		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR,				"VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR"),
4957	};
4958	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4959}
4960
4961tcu::Format::Bitfield<32> getVideoSessionParametersCreateFlagsKHRStr (VkVideoSessionParametersCreateFlagsKHR value)
4962{
4963	static const tcu::Format::BitDesc s_desc[] =
4964	{
4965		tcu::Format::BitDesc(VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR,	"VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR"),
4966	};
4967	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4968}
4969
4970tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4971{
4972	static const tcu::Format::BitDesc s_desc[] =
4973	{
4974		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,					"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4975		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,	"VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"),
4976		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR,	"VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR"),
4977	};
4978	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4979}
4980
4981const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
4982{
4983	switch (value)
4984	{
4985		case VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR:	return "VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR";
4986		case VK_QUERY_RESULT_STATUS_ERROR_KHR:									return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
4987		case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:								return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
4988		case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:								return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
4989		default:																return nullptr;
4990	}
4991}
4992
4993tcu::Format::Bitfield<32> getVideoDecodeUsageFlagsKHRStr (VkVideoDecodeUsageFlagsKHR value)
4994{
4995	static const tcu::Format::BitDesc s_desc[] =
4996	{
4997		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,			"VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"),
4998		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"),
4999		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,		"VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"),
5000		tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,	"VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"),
5001	};
5002	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5003}
5004
5005tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
5006{
5007	static const tcu::Format::BitDesc s_desc[] =
5008	{
5009		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
5010		tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,	"VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
5011	};
5012	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5013}
5014
5015tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsKHRStr (VkVideoDecodeH264PictureLayoutFlagsKHR value)
5016{
5017	static const tcu::Format::BitDesc s_desc[] =
5018	{
5019		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR,						"VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"),
5020		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"),
5021		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"),
5022	};
5023	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5024}
5025
5026tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
5027{
5028	static const tcu::Format::BitDesc s_desc[] =
5029	{
5030		tcu::Format::BitDesc(VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR,	"VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR"),
5031		tcu::Format::BitDesc(VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR,				"VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR"),
5032	};
5033	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5034}
5035
5036tcu::Format::Bitfield<32> getVideoEncodeUsageFlagsKHRStr (VkVideoEncodeUsageFlagsKHR value)
5037{
5038	static const tcu::Format::BitDesc s_desc[] =
5039	{
5040		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,				"VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"),
5041		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"),
5042		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"),
5043		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,		"VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"),
5044		tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,	"VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"),
5045	};
5046	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5047}
5048
5049tcu::Format::Bitfield<32> getVideoEncodeContentFlagsKHRStr (VkVideoEncodeContentFlagsKHR value)
5050{
5051	static const tcu::Format::BitDesc s_desc[] =
5052	{
5053		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,		"VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"),
5054		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"),
5055		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"),
5056		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,	"VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"),
5057	};
5058	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5059}
5060
5061const char* getVideoEncodeTuningModeKHRName (VkVideoEncodeTuningModeKHR value)
5062{
5063	switch (value)
5064	{
5065		case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
5066		case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
5067		case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:		return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
5068		case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR:	return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
5069		case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:			return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
5070		default:												return nullptr;
5071	}
5072}
5073
5074tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
5075{
5076	static const tcu::Format::BitDesc s_desc[] =
5077	{
5078		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,				"VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
5079		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR,	"VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR"),
5080		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR,							"VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR"),
5081		tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR,									"VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR"),
5082	};
5083	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5084}
5085
5086tcu::Format::Bitfield<32> getVideoEncodeFeedbackFlagsKHRStr (VkVideoEncodeFeedbackFlagsKHR value)
5087{
5088	static const tcu::Format::BitDesc s_desc[] =
5089	{
5090		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR"),
5091		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR"),
5092		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR,	"VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR"),
5093	};
5094	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5095}
5096
5097tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
5098{
5099	static const tcu::Format::BitDesc s_desc[] =
5100	{
5101		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR"),
5102		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR"),
5103		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
5104		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
5105	};
5106	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5107}
5108
5109tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsKHRStr (VkVideoEncodeH264CapabilityFlagsKHR value)
5110{
5111	static const tcu::Format::BitDesc s_desc[] =
5112	{
5113		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,					"VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"),
5114		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,	"VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"),
5115		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR"),
5116		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR"),
5117		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"),
5118		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"),
5119		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"),
5120		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR"),
5121		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR"),
5122		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR,				"VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR"),
5123	};
5124	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5125}
5126
5127tcu::Format::Bitfield<32> getVideoEncodeH264StdFlagsKHRStr (VkVideoEncodeH264StdFlagsKHR value)
5128{
5129	static const tcu::Format::BitDesc s_desc[] =
5130	{
5131		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"),
5132		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR"),
5133		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR"),
5134		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR"),
5135		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR"),
5136		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR,						"VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR"),
5137		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"),
5138		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR"),
5139		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR"),
5140		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR"),
5141		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR,		"VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR"),
5142		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR"),
5143		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR"),
5144		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR"),
5145		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"),
5146		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR"),
5147		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR"),
5148		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR,				"VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR"),
5149		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR,							"VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR"),
5150		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,					"VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"),
5151	};
5152	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5153}
5154
5155tcu::Format::Bitfield<32> getVideoEncodeH264RateControlFlagsKHRStr (VkVideoEncodeH264RateControlFlagsKHR value)
5156{
5157	static const tcu::Format::BitDesc s_desc[] =
5158	{
5159		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,			"VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"),
5160		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR,						"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR"),
5161		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,			"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"),
5162		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,		"VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"),
5163		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR,	"VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR"),
5164	};
5165	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5166}
5167
5168tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsKHRStr (VkVideoEncodeH265CapabilityFlagsKHR value)
5169{
5170	static const tcu::Format::BitDesc s_desc[] =
5171	{
5172		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR,					"VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR"),
5173		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR"),
5174		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR"),
5175		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR"),
5176		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR"),
5177		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR,				"VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR"),
5178		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR"),
5179		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR,		"VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR"),
5180		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR"),
5181		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR"),
5182		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR,				"VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR"),
5183	};
5184	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5185}
5186
5187tcu::Format::Bitfield<32> getVideoEncodeH265StdFlagsKHRStr (VkVideoEncodeH265StdFlagsKHR value)
5188{
5189	static const tcu::Format::BitDesc s_desc[] =
5190	{
5191		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR"),
5192		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR,		"VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR"),
5193		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR"),
5194		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR,							"VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR"),
5195		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR"),
5196		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR,								"VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR"),
5197		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR"),
5198		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR"),
5199		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR"),
5200		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR"),
5201		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR"),
5202		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR"),
5203		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR"),
5204		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR"),
5205		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR"),
5206		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR,			"VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR"),
5207		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR"),
5208		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR"),
5209		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR,				"VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR"),
5210		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR,								"VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR"),
5211		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR,						"VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR"),
5212	};
5213	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5214}
5215
5216tcu::Format::Bitfield<32> getVideoEncodeH265RateControlFlagsKHRStr (VkVideoEncodeH265RateControlFlagsKHR value)
5217{
5218	static const tcu::Format::BitDesc s_desc[] =
5219	{
5220		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR"),
5221		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR,							"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR"),
5222		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,				"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"),
5223		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,			"VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"),
5224		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR,	"VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR"),
5225	};
5226	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5227}
5228
5229tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsKHRStr (VkVideoEncodeH265CtbSizeFlagsKHR value)
5230{
5231	static const tcu::Format::BitDesc s_desc[] =
5232	{
5233		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR"),
5234		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR"),
5235		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR,	"VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR"),
5236	};
5237	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5238}
5239
5240tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsKHRStr (VkVideoEncodeH265TransformBlockSizeFlagsKHR value)
5241{
5242	static const tcu::Format::BitDesc s_desc[] =
5243	{
5244		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR"),
5245		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR"),
5246		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR"),
5247		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR,	"VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR"),
5248	};
5249	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5250}
5251
5252tcu::Format::Bitfield<32> getVideoEncodeAV1CapabilityFlagsKHRStr (VkVideoEncodeAV1CapabilityFlagsKHR value)
5253{
5254	static const tcu::Format::BitDesc s_desc[] =
5255	{
5256		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR,	"VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR"),
5257		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR,			"VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR"),
5258		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR,				"VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR"),
5259		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR,					"VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR"),
5260		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR,					"VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR"),
5261	};
5262	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5263}
5264
5265tcu::Format::Bitfield<32> getVideoEncodeAV1StdFlagsKHRStr (VkVideoEncodeAV1StdFlagsKHR value)
5266{
5267	static const tcu::Format::BitDesc s_desc[] =
5268	{
5269		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR,	"VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR"),
5270		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR,		"VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR"),
5271		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR,				"VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR"),
5272		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR,						"VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR"),
5273	};
5274	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5275}
5276
5277tcu::Format::Bitfield<32> getVideoEncodeAV1RateControlFlagsKHRStr (VkVideoEncodeAV1RateControlFlagsKHR value)
5278{
5279	static const tcu::Format::BitDesc s_desc[] =
5280	{
5281		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR,						"VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR"),
5282		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR,	"VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR"),
5283		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR,			"VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR"),
5284		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR,			"VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR"),
5285	};
5286	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5287}
5288
5289tcu::Format::Bitfield<32> getVideoEncodeAV1SuperblockSizeFlagsKHRStr (VkVideoEncodeAV1SuperblockSizeFlagsKHR value)
5290{
5291	static const tcu::Format::BitDesc s_desc[] =
5292	{
5293		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR,	"VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR"),
5294		tcu::Format::BitDesc(VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR,	"VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR"),
5295	};
5296	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
5297}
5298
5299const char* getVideoEncodeAV1PredictionModeKHRName (VkVideoEncodeAV1PredictionModeKHR value)
5300{
5301	switch (value)
5302	{
5303		case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR:				return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR";
5304		case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR:			return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR";
5305		case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR:	return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR";
5306		case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR:	return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR";
5307		default:																return nullptr;
5308	}
5309}
5310
5311const char* getVideoEncodeAV1RateControlGroupKHRName (VkVideoEncodeAV1RateControlGroupKHR value)
5312{
5313	switch (value)
5314	{
5315		case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR:			return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR";
5316		case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR:		return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR";
5317		case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR:	return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR";
5318		default:														return nullptr;
5319	}
5320}
5321
5322const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
5323{
5324	switch (value)
5325	{
5326		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:			return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
5327		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:	return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
5328		case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:		return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
5329		default:																return nullptr;
5330	}
5331}
5332
5333const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
5334{
5335	switch (value)
5336	{
5337		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
5338		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
5339		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
5340		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
5341		case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
5342		default:											return nullptr;
5343	}
5344}
5345
5346const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
5347{
5348	switch (value)
5349	{
5350		case STD_VIDEO_H264_PROFILE_IDC_BASELINE:				return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
5351		case STD_VIDEO_H264_PROFILE_IDC_MAIN:					return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
5352		case STD_VIDEO_H264_PROFILE_IDC_HIGH:					return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
5353		case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:	return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
5354		case STD_VIDEO_H264_PROFILE_IDC_INVALID:				return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
5355		default:												return nullptr;
5356	}
5357}
5358
5359const char* getdVideoH264LevelIdcName (StdVideoH264LevelIdc value)
5360{
5361	switch (value)
5362	{
5363		case STD_VIDEO_H264_LEVEL_IDC_1_0:		return "STD_VIDEO_H264_LEVEL_IDC_1_0";
5364		case STD_VIDEO_H264_LEVEL_IDC_1_1:		return "STD_VIDEO_H264_LEVEL_IDC_1_1";
5365		case STD_VIDEO_H264_LEVEL_IDC_1_2:		return "STD_VIDEO_H264_LEVEL_IDC_1_2";
5366		case STD_VIDEO_H264_LEVEL_IDC_1_3:		return "STD_VIDEO_H264_LEVEL_IDC_1_3";
5367		case STD_VIDEO_H264_LEVEL_IDC_2_0:		return "STD_VIDEO_H264_LEVEL_IDC_2_0";
5368		case STD_VIDEO_H264_LEVEL_IDC_2_1:		return "STD_VIDEO_H264_LEVEL_IDC_2_1";
5369		case STD_VIDEO_H264_LEVEL_IDC_2_2:		return "STD_VIDEO_H264_LEVEL_IDC_2_2";
5370		case STD_VIDEO_H264_LEVEL_IDC_3_0:		return "STD_VIDEO_H264_LEVEL_IDC_3_0";
5371		case STD_VIDEO_H264_LEVEL_IDC_3_1:		return "STD_VIDEO_H264_LEVEL_IDC_3_1";
5372		case STD_VIDEO_H264_LEVEL_IDC_3_2:		return "STD_VIDEO_H264_LEVEL_IDC_3_2";
5373		case STD_VIDEO_H264_LEVEL_IDC_4_0:		return "STD_VIDEO_H264_LEVEL_IDC_4_0";
5374		case STD_VIDEO_H264_LEVEL_IDC_4_1:		return "STD_VIDEO_H264_LEVEL_IDC_4_1";
5375		case STD_VIDEO_H264_LEVEL_IDC_4_2:		return "STD_VIDEO_H264_LEVEL_IDC_4_2";
5376		case STD_VIDEO_H264_LEVEL_IDC_5_0:		return "STD_VIDEO_H264_LEVEL_IDC_5_0";
5377		case STD_VIDEO_H264_LEVEL_IDC_5_1:		return "STD_VIDEO_H264_LEVEL_IDC_5_1";
5378		case STD_VIDEO_H264_LEVEL_IDC_5_2:		return "STD_VIDEO_H264_LEVEL_IDC_5_2";
5379		case STD_VIDEO_H264_LEVEL_IDC_6_0:		return "STD_VIDEO_H264_LEVEL_IDC_6_0";
5380		case STD_VIDEO_H264_LEVEL_IDC_6_1:		return "STD_VIDEO_H264_LEVEL_IDC_6_1";
5381		case STD_VIDEO_H264_LEVEL_IDC_6_2:		return "STD_VIDEO_H264_LEVEL_IDC_6_2";
5382		case STD_VIDEO_H264_LEVEL_IDC_INVALID:	return "STD_VIDEO_H264_LEVEL_IDC_INVALID";
5383		default:								return nullptr;
5384	}
5385}
5386
5387const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
5388{
5389	switch (value)
5390	{
5391		case STD_VIDEO_H264_POC_TYPE_0:			return "STD_VIDEO_H264_POC_TYPE_0";
5392		case STD_VIDEO_H264_POC_TYPE_1:			return "STD_VIDEO_H264_POC_TYPE_1";
5393		case STD_VIDEO_H264_POC_TYPE_2:			return "STD_VIDEO_H264_POC_TYPE_2";
5394		case STD_VIDEO_H264_POC_TYPE_INVALID:	return "STD_VIDEO_H264_POC_TYPE_INVALID";
5395		default:								return nullptr;
5396	}
5397}
5398
5399const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
5400{
5401	switch (value)
5402	{
5403		case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
5404		case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
5405		case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
5406		case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
5407		case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
5408		case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
5409		case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
5410		case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
5411		case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
5412		case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
5413		case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
5414		case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
5415		case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
5416		case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
5417		case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
5418		case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
5419		case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
5420		case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
5421		case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
5422		default:											return nullptr;
5423	}
5424}
5425
5426const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
5427{
5428	switch (value)
5429	{
5430		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
5431		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
5432		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
5433		case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:	return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
5434		default:											return nullptr;
5435	}
5436}
5437
5438const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
5439{
5440	switch (value)
5441	{
5442		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:	return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
5443		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:		return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
5444		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
5445		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:					return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
5446		case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:				return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
5447		default:																return nullptr;
5448	}
5449}
5450
5451const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
5452{
5453	switch (value)
5454	{
5455		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:						return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
5456		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
5457		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:			return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
5458		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:				return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
5459		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";
5460		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
5461		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";
5462		case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:					return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
5463		default:															return nullptr;
5464	}
5465}
5466
5467const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
5468{
5469	switch (value)
5470	{
5471		case STD_VIDEO_H264_CABAC_INIT_IDC_0:		return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
5472		case STD_VIDEO_H264_CABAC_INIT_IDC_1:		return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
5473		case STD_VIDEO_H264_CABAC_INIT_IDC_2:		return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
5474		case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:	return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
5475		default:									return nullptr;
5476	}
5477}
5478
5479const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
5480{
5481	switch (value)
5482	{
5483		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
5484		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
5485		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
5486		case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:	return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
5487		default:													return nullptr;
5488	}
5489}
5490
5491const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
5492{
5493	switch (value)
5494	{
5495		case STD_VIDEO_H264_SLICE_TYPE_P:		return "STD_VIDEO_H264_SLICE_TYPE_P";
5496		case STD_VIDEO_H264_SLICE_TYPE_B:		return "STD_VIDEO_H264_SLICE_TYPE_B";
5497		case STD_VIDEO_H264_SLICE_TYPE_I:		return "STD_VIDEO_H264_SLICE_TYPE_I";
5498		case STD_VIDEO_H264_SLICE_TYPE_INVALID:	return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
5499		default:								return nullptr;
5500	}
5501}
5502
5503const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
5504{
5505	switch (value)
5506	{
5507		case STD_VIDEO_H264_PICTURE_TYPE_P:			return "STD_VIDEO_H264_PICTURE_TYPE_P";
5508		case STD_VIDEO_H264_PICTURE_TYPE_B:			return "STD_VIDEO_H264_PICTURE_TYPE_B";
5509		case STD_VIDEO_H264_PICTURE_TYPE_I:			return "STD_VIDEO_H264_PICTURE_TYPE_I";
5510		case STD_VIDEO_H264_PICTURE_TYPE_IDR:		return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
5511		case STD_VIDEO_H264_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
5512		default:									return nullptr;
5513	}
5514}
5515
5516const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
5517{
5518	switch (value)
5519	{
5520		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
5521		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
5522		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:				return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
5523		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
5524		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
5525		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:	return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
5526		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
5527		case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:			return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
5528		default:												return nullptr;
5529	}
5530}
5531
5532const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
5533{
5534	switch (value)
5535	{
5536		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:		return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
5537		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
5538		case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:	return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
5539		default:												return nullptr;
5540	}
5541}
5542
5543const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
5544{
5545	switch (value)
5546	{
5547		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:	return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
5548		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
5549		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
5550		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:			return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
5551		case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:		return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
5552		default:											return nullptr;
5553	}
5554}
5555
5556const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
5557{
5558	switch (value)
5559	{
5560		case STD_VIDEO_H265_PROFILE_IDC_MAIN:						return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
5561		case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:					return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
5562		case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:			return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
5563		case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:	return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
5564		case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:				return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
5565		case STD_VIDEO_H265_PROFILE_IDC_INVALID:					return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
5566		default:													return nullptr;
5567	}
5568}
5569
5570const char* getdVideoH265LevelIdcName (StdVideoH265LevelIdc value)
5571{
5572	switch (value)
5573	{
5574		case STD_VIDEO_H265_LEVEL_IDC_1_0:		return "STD_VIDEO_H265_LEVEL_IDC_1_0";
5575		case STD_VIDEO_H265_LEVEL_IDC_2_0:		return "STD_VIDEO_H265_LEVEL_IDC_2_0";
5576		case STD_VIDEO_H265_LEVEL_IDC_2_1:		return "STD_VIDEO_H265_LEVEL_IDC_2_1";
5577		case STD_VIDEO_H265_LEVEL_IDC_3_0:		return "STD_VIDEO_H265_LEVEL_IDC_3_0";
5578		case STD_VIDEO_H265_LEVEL_IDC_3_1:		return "STD_VIDEO_H265_LEVEL_IDC_3_1";
5579		case STD_VIDEO_H265_LEVEL_IDC_4_0:		return "STD_VIDEO_H265_LEVEL_IDC_4_0";
5580		case STD_VIDEO_H265_LEVEL_IDC_4_1:		return "STD_VIDEO_H265_LEVEL_IDC_4_1";
5581		case STD_VIDEO_H265_LEVEL_IDC_5_0:		return "STD_VIDEO_H265_LEVEL_IDC_5_0";
5582		case STD_VIDEO_H265_LEVEL_IDC_5_1:		return "STD_VIDEO_H265_LEVEL_IDC_5_1";
5583		case STD_VIDEO_H265_LEVEL_IDC_5_2:		return "STD_VIDEO_H265_LEVEL_IDC_5_2";
5584		case STD_VIDEO_H265_LEVEL_IDC_6_0:		return "STD_VIDEO_H265_LEVEL_IDC_6_0";
5585		case STD_VIDEO_H265_LEVEL_IDC_6_1:		return "STD_VIDEO_H265_LEVEL_IDC_6_1";
5586		case STD_VIDEO_H265_LEVEL_IDC_6_2:		return "STD_VIDEO_H265_LEVEL_IDC_6_2";
5587		case STD_VIDEO_H265_LEVEL_IDC_INVALID:	return "STD_VIDEO_H265_LEVEL_IDC_INVALID";
5588		default:								return nullptr;
5589	}
5590}
5591
5592const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
5593{
5594	switch (value)
5595	{
5596		case STD_VIDEO_H265_SLICE_TYPE_B:		return "STD_VIDEO_H265_SLICE_TYPE_B";
5597		case STD_VIDEO_H265_SLICE_TYPE_P:		return "STD_VIDEO_H265_SLICE_TYPE_P";
5598		case STD_VIDEO_H265_SLICE_TYPE_I:		return "STD_VIDEO_H265_SLICE_TYPE_I";
5599		case STD_VIDEO_H265_SLICE_TYPE_INVALID:	return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
5600		default:								return nullptr;
5601	}
5602}
5603
5604const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
5605{
5606	switch (value)
5607	{
5608		case STD_VIDEO_H265_PICTURE_TYPE_P:			return "STD_VIDEO_H265_PICTURE_TYPE_P";
5609		case STD_VIDEO_H265_PICTURE_TYPE_B:			return "STD_VIDEO_H265_PICTURE_TYPE_B";
5610		case STD_VIDEO_H265_PICTURE_TYPE_I:			return "STD_VIDEO_H265_PICTURE_TYPE_I";
5611		case STD_VIDEO_H265_PICTURE_TYPE_IDR:		return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
5612		case STD_VIDEO_H265_PICTURE_TYPE_INVALID:	return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
5613		default:									return nullptr;
5614	}
5615}
5616
5617const char* getdVideoH265AspectRatioIdcName (StdVideoH265AspectRatioIdc value)
5618{
5619	switch (value)
5620	{
5621		case STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED";
5622		case STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE";
5623		case STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11";
5624		case STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11";
5625		case STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11";
5626		case STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33";
5627		case STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11";
5628		case STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11";
5629		case STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11";
5630		case STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33";
5631		case STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11";
5632		case STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11";
5633		case STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33";
5634		case STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99";
5635		case STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3";
5636		case STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2";
5637		case STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1:			return "STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1";
5638		case STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR:	return "STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR";
5639		case STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID:		return "STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID";
5640		default:											return nullptr;
5641	}
5642}
5643
5644const char* getdVideoAV1ProfileName (StdVideoAV1Profile value)
5645{
5646	switch (value)
5647	{
5648		case STD_VIDEO_AV1_PROFILE_MAIN:			return "STD_VIDEO_AV1_PROFILE_MAIN";
5649		case STD_VIDEO_AV1_PROFILE_HIGH:			return "STD_VIDEO_AV1_PROFILE_HIGH";
5650		case STD_VIDEO_AV1_PROFILE_PROFESSIONAL:	return "STD_VIDEO_AV1_PROFILE_PROFESSIONAL";
5651		case STD_VIDEO_AV1_PROFILE_INVALID:			return "STD_VIDEO_AV1_PROFILE_INVALID";
5652		default:									return nullptr;
5653	}
5654}
5655
5656const char* getdVideoAV1LevelName (StdVideoAV1Level value)
5657{
5658	switch (value)
5659	{
5660		case STD_VIDEO_AV1_LEVEL_2_0:		return "STD_VIDEO_AV1_LEVEL_2_0";
5661		case STD_VIDEO_AV1_LEVEL_2_1:		return "STD_VIDEO_AV1_LEVEL_2_1";
5662		case STD_VIDEO_AV1_LEVEL_2_2:		return "STD_VIDEO_AV1_LEVEL_2_2";
5663		case STD_VIDEO_AV1_LEVEL_2_3:		return "STD_VIDEO_AV1_LEVEL_2_3";
5664		case STD_VIDEO_AV1_LEVEL_3_0:		return "STD_VIDEO_AV1_LEVEL_3_0";
5665		case STD_VIDEO_AV1_LEVEL_3_1:		return "STD_VIDEO_AV1_LEVEL_3_1";
5666		case STD_VIDEO_AV1_LEVEL_3_2:		return "STD_VIDEO_AV1_LEVEL_3_2";
5667		case STD_VIDEO_AV1_LEVEL_3_3:		return "STD_VIDEO_AV1_LEVEL_3_3";
5668		case STD_VIDEO_AV1_LEVEL_4_0:		return "STD_VIDEO_AV1_LEVEL_4_0";
5669		case STD_VIDEO_AV1_LEVEL_4_1:		return "STD_VIDEO_AV1_LEVEL_4_1";
5670		case STD_VIDEO_AV1_LEVEL_4_2:		return "STD_VIDEO_AV1_LEVEL_4_2";
5671		case STD_VIDEO_AV1_LEVEL_4_3:		return "STD_VIDEO_AV1_LEVEL_4_3";
5672		case STD_VIDEO_AV1_LEVEL_5_0:		return "STD_VIDEO_AV1_LEVEL_5_0";
5673		case STD_VIDEO_AV1_LEVEL_5_1:		return "STD_VIDEO_AV1_LEVEL_5_1";
5674		case STD_VIDEO_AV1_LEVEL_5_2:		return "STD_VIDEO_AV1_LEVEL_5_2";
5675		case STD_VIDEO_AV1_LEVEL_5_3:		return "STD_VIDEO_AV1_LEVEL_5_3";
5676		case STD_VIDEO_AV1_LEVEL_6_0:		return "STD_VIDEO_AV1_LEVEL_6_0";
5677		case STD_VIDEO_AV1_LEVEL_6_1:		return "STD_VIDEO_AV1_LEVEL_6_1";
5678		case STD_VIDEO_AV1_LEVEL_6_2:		return "STD_VIDEO_AV1_LEVEL_6_2";
5679		case STD_VIDEO_AV1_LEVEL_6_3:		return "STD_VIDEO_AV1_LEVEL_6_3";
5680		case STD_VIDEO_AV1_LEVEL_7_0:		return "STD_VIDEO_AV1_LEVEL_7_0";
5681		case STD_VIDEO_AV1_LEVEL_7_1:		return "STD_VIDEO_AV1_LEVEL_7_1";
5682		case STD_VIDEO_AV1_LEVEL_7_2:		return "STD_VIDEO_AV1_LEVEL_7_2";
5683		case STD_VIDEO_AV1_LEVEL_7_3:		return "STD_VIDEO_AV1_LEVEL_7_3";
5684		case STD_VIDEO_AV1_LEVEL_INVALID:	return "STD_VIDEO_AV1_LEVEL_INVALID";
5685		default:							return nullptr;
5686	}
5687}
5688
5689const char* getdVideoAV1FrameTypeName (StdVideoAV1FrameType value)
5690{
5691	switch (value)
5692	{
5693		case STD_VIDEO_AV1_FRAME_TYPE_KEY:			return "STD_VIDEO_AV1_FRAME_TYPE_KEY";
5694		case STD_VIDEO_AV1_FRAME_TYPE_INTER:		return "STD_VIDEO_AV1_FRAME_TYPE_INTER";
5695		case STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY:	return "STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY";
5696		case STD_VIDEO_AV1_FRAME_TYPE_SWITCH:		return "STD_VIDEO_AV1_FRAME_TYPE_SWITCH";
5697		case STD_VIDEO_AV1_FRAME_TYPE_INVALID:		return "STD_VIDEO_AV1_FRAME_TYPE_INVALID";
5698		default:									return nullptr;
5699	}
5700}
5701
5702const char* getdVideoAV1ReferenceNameName (StdVideoAV1ReferenceName value)
5703{
5704	switch (value)
5705	{
5706		case STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME";
5707		case STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME";
5708		case STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME";
5709		case STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME";
5710		case STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME";
5711		case STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME";
5712		case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME:	return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME";
5713		case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME:		return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME";
5714		case STD_VIDEO_AV1_REFERENCE_NAME_INVALID:			return "STD_VIDEO_AV1_REFERENCE_NAME_INVALID";
5715		default:											return nullptr;
5716	}
5717}
5718
5719const char* getdVideoAV1InterpolationFilterName (StdVideoAV1InterpolationFilter value)
5720{
5721	switch (value)
5722	{
5723		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP";
5724		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH:	return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH";
5725		case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP:		return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP";
5726		case STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR";
5727		case STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE";
5728		case STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID:			return "STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID";
5729		default:													return nullptr;
5730	}
5731}
5732
5733const char* getdVideoAV1TxModeName (StdVideoAV1TxMode value)
5734{
5735	switch (value)
5736	{
5737		case STD_VIDEO_AV1_TX_MODE_ONLY_4X4:	return "STD_VIDEO_AV1_TX_MODE_ONLY_4X4";
5738		case STD_VIDEO_AV1_TX_MODE_LARGEST:		return "STD_VIDEO_AV1_TX_MODE_LARGEST";
5739		case STD_VIDEO_AV1_TX_MODE_SELECT:		return "STD_VIDEO_AV1_TX_MODE_SELECT";
5740		case STD_VIDEO_AV1_TX_MODE_INVALID:		return "STD_VIDEO_AV1_TX_MODE_INVALID";
5741		default:								return nullptr;
5742	}
5743}
5744
5745const char* getdVideoAV1FrameRestorationTypeName (StdVideoAV1FrameRestorationType value)
5746{
5747	switch (value)
5748	{
5749		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE:			return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE";
5750		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER";
5751		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ";
5752		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE:	return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE";
5753		case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID:		return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID";
5754		default:												return nullptr;
5755	}
5756}
5757
5758const char* getdVideoAV1ColorPrimariesName (StdVideoAV1ColorPrimaries value)
5759{
5760	switch (value)
5761	{
5762		case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709:			return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709";
5763		case STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED";
5764		case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M";
5765		case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G";
5766		case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601:			return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601";
5767		case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240";
5768		case STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM:	return "STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM";
5769		case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020:			return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020";
5770		case STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ:				return "STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ";
5771		case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431";
5772		case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432";
5773		case STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213:		return "STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213";
5774		case STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID:			return "STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID";
5775		default:											return nullptr;
5776	}
5777}
5778
5779const char* getdVideoAV1TransferCharacteristicsName (StdVideoAV1TransferCharacteristics value)
5780{
5781	switch (value)
5782	{
5783		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0";
5784		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709:			return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709";
5785		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED:	return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED";
5786		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3";
5787		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M";
5788		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G";
5789		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601:			return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601";
5790		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240";
5791		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR:			return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR";
5792		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100";
5793		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10:	return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10";
5794		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966";
5795		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361";
5796		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB:			return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB";
5797		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT:	return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT";
5798		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT:	return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT";
5799		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084";
5800		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428";
5801		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG:			return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG";
5802		case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID:		return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID";
5803		default:													return nullptr;
5804	}
5805}
5806
5807const char* getdVideoAV1MatrixCoefficientsName (StdVideoAV1MatrixCoefficients value)
5808{
5809	switch (value)
5810	{
5811		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY";
5812		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709:		return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709";
5813		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED";
5814		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3";
5815		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC:			return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC";
5816		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G";
5817		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601:		return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601";
5818		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240";
5819		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO";
5820		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL";
5821		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL";
5822		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085";
5823		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL";
5824		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL:	return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL";
5825		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP:		return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP";
5826		case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID:		return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID";
5827		default:											return nullptr;
5828	}
5829}
5830
5831const char* getdVideoAV1ChromaSamplePositionName (StdVideoAV1ChromaSamplePosition value)
5832{
5833	switch (value)
5834	{
5835		case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN:		return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN";
5836		case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL:		return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL";
5837		case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED:	return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED";
5838		case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED:		return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED";
5839		case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID:		return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID";
5840		default:												return nullptr;
5841	}
5842}
5843
5844tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
5845{
5846	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5847}
5848
5849tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
5850{
5851	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5852}
5853
5854tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
5855{
5856	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5857}
5858
5859tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
5860{
5861	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5862}
5863
5864tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
5865{
5866	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5867}
5868
5869tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
5870{
5871	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5872}
5873
5874tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
5875{
5876	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5877}
5878
5879tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
5880{
5881	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5882}
5883
5884tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
5885{
5886	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5887}
5888
5889tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
5890{
5891	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5892}
5893
5894tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
5895{
5896	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5897}
5898
5899tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
5900{
5901	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5902}
5903
5904tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
5905{
5906	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5907}
5908
5909tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
5910{
5911	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5912}
5913
5914tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
5915{
5916	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5917}
5918
5919tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
5920{
5921	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5922}
5923
5924tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
5925{
5926	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5927}
5928
5929tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
5930{
5931	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5932}
5933
5934tcu::Format::Bitfield<32> getRefreshObjectFlagsKHRStr (VkRefreshObjectFlagsKHR value)
5935{
5936	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5937}
5938
5939tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
5940{
5941	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5942}
5943
5944tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
5945{
5946	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5947}
5948
5949tcu::Format::Bitfield<32> getDirectDriverLoadingFlagsLUNARGStr (VkDirectDriverLoadingFlagsLUNARG value)
5950{
5951	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5952}
5953
5954tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
5955{
5956	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5957}
5958
5959tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
5960{
5961	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5962}
5963
5964tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
5965{
5966	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5967}
5968
5969tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
5970{
5971	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5972}
5973
5974tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
5975{
5976	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5977}
5978
5979tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
5980{
5981	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5982}
5983
5984tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
5985{
5986	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5987}
5988
5989tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
5990{
5991	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5992}
5993
5994tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
5995{
5996	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
5997}
5998
5999tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
6000{
6001	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6002}
6003
6004tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
6005{
6006	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6007}
6008
6009tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
6010{
6011	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6012}
6013
6014tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
6015{
6016	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6017}
6018
6019tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
6020{
6021	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6022}
6023
6024tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
6025{
6026	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6027}
6028
6029tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
6030{
6031	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6032}
6033
6034tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
6035{
6036	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6037}
6038
6039tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
6040{
6041	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6042}
6043
6044tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
6045{
6046	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6047}
6048
6049tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
6050{
6051	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6052}
6053
6054tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
6055{
6056	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6057}
6058
6059tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
6060{
6061	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6062}
6063
6064tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
6065{
6066	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6067}
6068
6069tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
6070{
6071	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6072}
6073
6074tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
6075{
6076	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6077}
6078
6079tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
6080{
6081	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6082}
6083
6084tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
6085{
6086	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6087}
6088
6089tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
6090{
6091	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6092}
6093
6094tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
6095{
6096	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6097}
6098
6099tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
6100{
6101	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6102}
6103
6104tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
6105{
6106	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6107}
6108
6109tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
6110{
6111	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6112}
6113
6114tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
6115{
6116	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6117}
6118
6119tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
6120{
6121	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6122}
6123
6124tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
6125{
6126	return tcu::Format::Bitfield<32>(value, nullptr, nullptr);
6127}
6128
6129std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
6130{
6131	s << "VkBaseOutStructure = {\n";
6132	s << "\tsType = " << value.sType << '\n';
6133	s << "\tpNext = " << value.pNext << '\n';
6134	s << '}';
6135	return s;
6136}
6137
6138std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
6139{
6140	s << "VkBaseInStructure = {\n";
6141	s << "\tsType = " << value.sType << '\n';
6142	s << "\tpNext = " << value.pNext << '\n';
6143	s << '}';
6144	return s;
6145}
6146
6147std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
6148{
6149	s << "VkOffset2D = {\n";
6150	s << "\tx = " << value.x << '\n';
6151	s << "\ty = " << value.y << '\n';
6152	s << '}';
6153	return s;
6154}
6155
6156std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
6157{
6158	s << "VkOffset3D = {\n";
6159	s << "\tx = " << value.x << '\n';
6160	s << "\ty = " << value.y << '\n';
6161	s << "\tz = " << value.z << '\n';
6162	s << '}';
6163	return s;
6164}
6165
6166std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
6167{
6168	s << "VkExtent2D = {\n";
6169	s << "\twidth = " << value.width << '\n';
6170	s << "\theight = " << value.height << '\n';
6171	s << '}';
6172	return s;
6173}
6174
6175std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
6176{
6177	s << "VkExtent3D = {\n";
6178	s << "\twidth = " << value.width << '\n';
6179	s << "\theight = " << value.height << '\n';
6180	s << "\tdepth = " << value.depth << '\n';
6181	s << '}';
6182	return s;
6183}
6184
6185std::ostream& operator<< (std::ostream& s, const VkViewport& value)
6186{
6187	s << "VkViewport = {\n";
6188	s << "\tx = " << value.x << '\n';
6189	s << "\ty = " << value.y << '\n';
6190	s << "\twidth = " << value.width << '\n';
6191	s << "\theight = " << value.height << '\n';
6192	s << "\tminDepth = " << value.minDepth << '\n';
6193	s << "\tmaxDepth = " << value.maxDepth << '\n';
6194	s << '}';
6195	return s;
6196}
6197
6198std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
6199{
6200	s << "VkRect2D = {\n";
6201	s << "\toffset = " << value.offset << '\n';
6202	s << "\textent = " << value.extent << '\n';
6203	s << '}';
6204	return s;
6205}
6206
6207std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
6208{
6209	s << "VkClearRect = {\n";
6210	s << "\trect = " << value.rect << '\n';
6211	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6212	s << "\tlayerCount = " << value.layerCount << '\n';
6213	s << '}';
6214	return s;
6215}
6216
6217std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
6218{
6219	s << "VkComponentMapping = {\n";
6220	s << "\tr = " << value.r << '\n';
6221	s << "\tg = " << value.g << '\n';
6222	s << "\tb = " << value.b << '\n';
6223	s << "\ta = " << value.a << '\n';
6224	s << '}';
6225	return s;
6226}
6227
6228std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
6229{
6230	s << "VkPhysicalDeviceProperties = {\n";
6231	s << "\tapiVersion = " << value.apiVersion << '\n';
6232	s << "\tdriverVersion = " << value.driverVersion << '\n';
6233	s << "\tvendorID = " << value.vendorID << '\n';
6234	s << "\tdeviceID = " << value.deviceID << '\n';
6235	s << "\tdeviceType = " << value.deviceType << '\n';
6236	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
6237	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';
6238	s << "\tlimits = " << value.limits << '\n';
6239	s << "\tsparseProperties = " << value.sparseProperties << '\n';
6240	s << '}';
6241	return s;
6242}
6243
6244std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
6245{
6246	s << "VkExtensionProperties = {\n";
6247	s << "\textensionName = " << (const char*)value.extensionName << '\n';
6248	s << "\tspecVersion = " << value.specVersion << '\n';
6249	s << '}';
6250	return s;
6251}
6252
6253std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
6254{
6255	s << "VkLayerProperties = {\n";
6256	s << "\tlayerName = " << (const char*)value.layerName << '\n';
6257	s << "\tspecVersion = " << value.specVersion << '\n';
6258	s << "\timplementationVersion = " << value.implementationVersion << '\n';
6259	s << "\tdescription = " << (const char*)value.description << '\n';
6260	s << '}';
6261	return s;
6262}
6263
6264std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
6265{
6266	s << "VkApplicationInfo = {\n";
6267	s << "\tsType = " << value.sType << '\n';
6268	s << "\tpNext = " << value.pNext << '\n';
6269	s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
6270	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
6271	s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
6272	s << "\tengineVersion = " << value.engineVersion << '\n';
6273	s << "\tapiVersion = " << value.apiVersion << '\n';
6274	s << '}';
6275	return s;
6276}
6277
6278std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
6279{
6280	s << "VkAllocationCallbacks = {\n";
6281	s << "\tpUserData = " << value.pUserData << '\n';
6282	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
6283	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
6284	s << "\tpfnFree = " << value.pfnFree << '\n';
6285	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
6286	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
6287	s << '}';
6288	return s;
6289}
6290
6291std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
6292{
6293	s << "VkDeviceQueueCreateInfo = {\n";
6294	s << "\tsType = " << value.sType << '\n';
6295	s << "\tpNext = " << value.pNext << '\n';
6296	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
6297	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6298	s << "\tqueueCount = " << value.queueCount << '\n';
6299	s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
6300	s << '}';
6301	return s;
6302}
6303
6304std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
6305{
6306	s << "VkDeviceCreateInfo = {\n";
6307	s << "\tsType = " << value.sType << '\n';
6308	s << "\tpNext = " << value.pNext << '\n';
6309	s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
6310	s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
6311	s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
6312	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
6313	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
6314	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
6315	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
6316	s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
6317	s << '}';
6318	return s;
6319}
6320
6321std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
6322{
6323	s << "VkInstanceCreateInfo = {\n";
6324	s << "\tsType = " << value.sType << '\n';
6325	s << "\tpNext = " << value.pNext << '\n';
6326	s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
6327	s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
6328	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
6329	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
6330	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
6331	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
6332	s << '}';
6333	return s;
6334}
6335
6336std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
6337{
6338	s << "VkQueueFamilyProperties = {\n";
6339	s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
6340	s << "\tqueueCount = " << value.queueCount << '\n';
6341	s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
6342	s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
6343	s << '}';
6344	return s;
6345}
6346
6347std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
6348{
6349	s << "VkPhysicalDeviceMemoryProperties = {\n";
6350	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
6351	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
6352	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
6353	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
6354	s << '}';
6355	return s;
6356}
6357
6358std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
6359{
6360	s << "VkMemoryAllocateInfo = {\n";
6361	s << "\tsType = " << value.sType << '\n';
6362	s << "\tpNext = " << value.pNext << '\n';
6363	s << "\tallocationSize = " << value.allocationSize << '\n';
6364	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
6365	s << '}';
6366	return s;
6367}
6368
6369std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
6370{
6371	s << "VkMemoryRequirements = {\n";
6372	s << "\tsize = " << value.size << '\n';
6373	s << "\talignment = " << value.alignment << '\n';
6374	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
6375	s << '}';
6376	return s;
6377}
6378
6379std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
6380{
6381	s << "VkSparseImageFormatProperties = {\n";
6382	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6383	s << "\timageGranularity = " << value.imageGranularity << '\n';
6384	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
6385	s << '}';
6386	return s;
6387}
6388
6389std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
6390{
6391	s << "VkSparseImageMemoryRequirements = {\n";
6392	s << "\tformatProperties = " << value.formatProperties << '\n';
6393	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
6394	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
6395	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
6396	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
6397	s << '}';
6398	return s;
6399}
6400
6401std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
6402{
6403	s << "VkMemoryType = {\n";
6404	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
6405	s << "\theapIndex = " << value.heapIndex << '\n';
6406	s << '}';
6407	return s;
6408}
6409
6410std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
6411{
6412	s << "VkMemoryHeap = {\n";
6413	s << "\tsize = " << value.size << '\n';
6414	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
6415	s << '}';
6416	return s;
6417}
6418
6419std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
6420{
6421	s << "VkMappedMemoryRange = {\n";
6422	s << "\tsType = " << value.sType << '\n';
6423	s << "\tpNext = " << value.pNext << '\n';
6424	s << "\tmemory = " << value.memory << '\n';
6425	s << "\toffset = " << value.offset << '\n';
6426	s << "\tsize = " << value.size << '\n';
6427	s << '}';
6428	return s;
6429}
6430
6431std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
6432{
6433	s << "VkFormatProperties = {\n";
6434	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
6435	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
6436	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
6437	s << '}';
6438	return s;
6439}
6440
6441std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
6442{
6443	s << "VkImageFormatProperties = {\n";
6444	s << "\tmaxExtent = " << value.maxExtent << '\n';
6445	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
6446	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
6447	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
6448	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
6449	s << '}';
6450	return s;
6451}
6452
6453std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
6454{
6455	s << "VkDescriptorBufferInfo = {\n";
6456	s << "\tbuffer = " << value.buffer << '\n';
6457	s << "\toffset = " << value.offset << '\n';
6458	s << "\trange = " << value.range << '\n';
6459	s << '}';
6460	return s;
6461}
6462
6463std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
6464{
6465	s << "VkDescriptorImageInfo = {\n";
6466	s << "\tsampler = " << value.sampler << '\n';
6467	s << "\timageView = " << value.imageView << '\n';
6468	s << "\timageLayout = " << value.imageLayout << '\n';
6469	s << '}';
6470	return s;
6471}
6472
6473std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
6474{
6475	s << "VkWriteDescriptorSet = {\n";
6476	s << "\tsType = " << value.sType << '\n';
6477	s << "\tpNext = " << value.pNext << '\n';
6478	s << "\tdstSet = " << value.dstSet << '\n';
6479	s << "\tdstBinding = " << value.dstBinding << '\n';
6480	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6481	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6482	s << "\tdescriptorType = " << value.descriptorType << '\n';
6483	s << "\tpImageInfo = " << value.pImageInfo << '\n';
6484	s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
6485	s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
6486	s << '}';
6487	return s;
6488}
6489
6490std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
6491{
6492	s << "VkCopyDescriptorSet = {\n";
6493	s << "\tsType = " << value.sType << '\n';
6494	s << "\tpNext = " << value.pNext << '\n';
6495	s << "\tsrcSet = " << value.srcSet << '\n';
6496	s << "\tsrcBinding = " << value.srcBinding << '\n';
6497	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
6498	s << "\tdstSet = " << value.dstSet << '\n';
6499	s << "\tdstBinding = " << value.dstBinding << '\n';
6500	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6501	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6502	s << '}';
6503	return s;
6504}
6505
6506std::ostream& operator<< (std::ostream& s, const VkBufferUsageFlags2CreateInfo& value)
6507{
6508	s << "VkBufferUsageFlags2CreateInfo = {\n";
6509	s << "\tsType = " << value.sType << '\n';
6510	s << "\tpNext = " << value.pNext << '\n';
6511	s << "\tusage = " << getBufferUsageFlags2Str(value.usage) << '\n';
6512	s << '}';
6513	return s;
6514}
6515
6516std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
6517{
6518	s << "VkBufferCreateInfo = {\n";
6519	s << "\tsType = " << value.sType << '\n';
6520	s << "\tpNext = " << value.pNext << '\n';
6521	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6522	s << "\tsize = " << value.size << '\n';
6523	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6524	s << "\tsharingMode = " << value.sharingMode << '\n';
6525	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6526	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6527	s << '}';
6528	return s;
6529}
6530
6531std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
6532{
6533	s << "VkBufferViewCreateInfo = {\n";
6534	s << "\tsType = " << value.sType << '\n';
6535	s << "\tpNext = " << value.pNext << '\n';
6536	s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
6537	s << "\tbuffer = " << value.buffer << '\n';
6538	s << "\tformat = " << value.format << '\n';
6539	s << "\toffset = " << value.offset << '\n';
6540	s << "\trange = " << value.range << '\n';
6541	s << '}';
6542	return s;
6543}
6544
6545std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
6546{
6547	s << "VkImageSubresource = {\n";
6548	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6549	s << "\tmipLevel = " << value.mipLevel << '\n';
6550	s << "\tarrayLayer = " << value.arrayLayer << '\n';
6551	s << '}';
6552	return s;
6553}
6554
6555std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
6556{
6557	s << "VkImageSubresourceLayers = {\n";
6558	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6559	s << "\tmipLevel = " << value.mipLevel << '\n';
6560	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6561	s << "\tlayerCount = " << value.layerCount << '\n';
6562	s << '}';
6563	return s;
6564}
6565
6566std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
6567{
6568	s << "VkImageSubresourceRange = {\n";
6569	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6570	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
6571	s << "\tlevelCount = " << value.levelCount << '\n';
6572	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6573	s << "\tlayerCount = " << value.layerCount << '\n';
6574	s << '}';
6575	return s;
6576}
6577
6578std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
6579{
6580	s << "VkMemoryBarrier = {\n";
6581	s << "\tsType = " << value.sType << '\n';
6582	s << "\tpNext = " << value.pNext << '\n';
6583	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6584	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6585	s << '}';
6586	return s;
6587}
6588
6589std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
6590{
6591	s << "VkBufferMemoryBarrier = {\n";
6592	s << "\tsType = " << value.sType << '\n';
6593	s << "\tpNext = " << value.pNext << '\n';
6594	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6595	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6596	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
6597	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
6598	s << "\tbuffer = " << value.buffer << '\n';
6599	s << "\toffset = " << value.offset << '\n';
6600	s << "\tsize = " << value.size << '\n';
6601	s << '}';
6602	return s;
6603}
6604
6605std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
6606{
6607	s << "VkImageMemoryBarrier = {\n";
6608	s << "\tsType = " << value.sType << '\n';
6609	s << "\tpNext = " << value.pNext << '\n';
6610	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6611	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6612	s << "\toldLayout = " << value.oldLayout << '\n';
6613	s << "\tnewLayout = " << value.newLayout << '\n';
6614	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
6615	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
6616	s << "\timage = " << value.image << '\n';
6617	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
6618	s << '}';
6619	return s;
6620}
6621
6622std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
6623{
6624	s << "VkImageCreateInfo = {\n";
6625	s << "\tsType = " << value.sType << '\n';
6626	s << "\tpNext = " << value.pNext << '\n';
6627	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6628	s << "\timageType = " << value.imageType << '\n';
6629	s << "\tformat = " << value.format << '\n';
6630	s << "\textent = " << value.extent << '\n';
6631	s << "\tmipLevels = " << value.mipLevels << '\n';
6632	s << "\tarrayLayers = " << value.arrayLayers << '\n';
6633	s << "\tsamples = " << value.samples << '\n';
6634	s << "\ttiling = " << value.tiling << '\n';
6635	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6636	s << "\tsharingMode = " << value.sharingMode << '\n';
6637	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6638	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6639	s << "\tinitialLayout = " << value.initialLayout << '\n';
6640	s << '}';
6641	return s;
6642}
6643
6644std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
6645{
6646	s << "VkSubresourceLayout = {\n";
6647	s << "\toffset = " << value.offset << '\n';
6648	s << "\tsize = " << value.size << '\n';
6649	s << "\trowPitch = " << value.rowPitch << '\n';
6650	s << "\tarrayPitch = " << value.arrayPitch << '\n';
6651	s << "\tdepthPitch = " << value.depthPitch << '\n';
6652	s << '}';
6653	return s;
6654}
6655
6656std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
6657{
6658	s << "VkImageViewCreateInfo = {\n";
6659	s << "\tsType = " << value.sType << '\n';
6660	s << "\tpNext = " << value.pNext << '\n';
6661	s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
6662	s << "\timage = " << value.image << '\n';
6663	s << "\tviewType = " << value.viewType << '\n';
6664	s << "\tformat = " << value.format << '\n';
6665	s << "\tcomponents = " << value.components << '\n';
6666	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
6667	s << '}';
6668	return s;
6669}
6670
6671std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
6672{
6673	s << "VkBufferCopy = {\n";
6674	s << "\tsrcOffset = " << value.srcOffset << '\n';
6675	s << "\tdstOffset = " << value.dstOffset << '\n';
6676	s << "\tsize = " << value.size << '\n';
6677	s << '}';
6678	return s;
6679}
6680
6681std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
6682{
6683	s << "VkSparseMemoryBind = {\n";
6684	s << "\tresourceOffset = " << value.resourceOffset << '\n';
6685	s << "\tsize = " << value.size << '\n';
6686	s << "\tmemory = " << value.memory << '\n';
6687	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6688	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
6689	s << '}';
6690	return s;
6691}
6692
6693std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
6694{
6695	s << "VkSparseImageMemoryBind = {\n";
6696	s << "\tsubresource = " << value.subresource << '\n';
6697	s << "\toffset = " << value.offset << '\n';
6698	s << "\textent = " << value.extent << '\n';
6699	s << "\tmemory = " << value.memory << '\n';
6700	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6701	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
6702	s << '}';
6703	return s;
6704}
6705
6706std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
6707{
6708	s << "VkSparseBufferMemoryBindInfo = {\n";
6709	s << "\tbuffer = " << value.buffer << '\n';
6710	s << "\tbindCount = " << value.bindCount << '\n';
6711	s << "\tpBinds = " << value.pBinds << '\n';
6712	s << '}';
6713	return s;
6714}
6715
6716std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
6717{
6718	s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
6719	s << "\timage = " << value.image << '\n';
6720	s << "\tbindCount = " << value.bindCount << '\n';
6721	s << "\tpBinds = " << value.pBinds << '\n';
6722	s << '}';
6723	return s;
6724}
6725
6726std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
6727{
6728	s << "VkSparseImageMemoryBindInfo = {\n";
6729	s << "\timage = " << value.image << '\n';
6730	s << "\tbindCount = " << value.bindCount << '\n';
6731	s << "\tpBinds = " << value.pBinds << '\n';
6732	s << '}';
6733	return s;
6734}
6735
6736std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
6737{
6738	s << "VkBindSparseInfo = {\n";
6739	s << "\tsType = " << value.sType << '\n';
6740	s << "\tpNext = " << value.pNext << '\n';
6741	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6742	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6743	s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
6744	s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
6745	s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
6746	s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
6747	s << "\timageBindCount = " << value.imageBindCount << '\n';
6748	s << "\tpImageBinds = " << value.pImageBinds << '\n';
6749	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6750	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
6751	s << '}';
6752	return s;
6753}
6754
6755std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
6756{
6757	s << "VkImageCopy = {\n";
6758	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6759	s << "\tsrcOffset = " << value.srcOffset << '\n';
6760	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6761	s << "\tdstOffset = " << value.dstOffset << '\n';
6762	s << "\textent = " << value.extent << '\n';
6763	s << '}';
6764	return s;
6765}
6766
6767std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
6768{
6769	s << "VkImageBlit = {\n";
6770	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6771	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
6772	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6773	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
6774	s << '}';
6775	return s;
6776}
6777
6778std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
6779{
6780	s << "VkBufferImageCopy = {\n";
6781	s << "\tbufferOffset = " << value.bufferOffset << '\n';
6782	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6783	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6784	s << "\timageSubresource = " << value.imageSubresource << '\n';
6785	s << "\timageOffset = " << value.imageOffset << '\n';
6786	s << "\timageExtent = " << value.imageExtent << '\n';
6787	s << '}';
6788	return s;
6789}
6790
6791std::ostream& operator<< (std::ostream& s, const VkCopyMemoryIndirectCommandNV& value)
6792{
6793	s << "VkCopyMemoryIndirectCommandNV = {\n";
6794	s << "\tsrcAddress = " << value.srcAddress << '\n';
6795	s << "\tdstAddress = " << value.dstAddress << '\n';
6796	s << "\tsize = " << value.size << '\n';
6797	s << '}';
6798	return s;
6799}
6800
6801std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToImageIndirectCommandNV& value)
6802{
6803	s << "VkCopyMemoryToImageIndirectCommandNV = {\n";
6804	s << "\tsrcAddress = " << value.srcAddress << '\n';
6805	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6806	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6807	s << "\timageSubresource = " << value.imageSubresource << '\n';
6808	s << "\timageOffset = " << value.imageOffset << '\n';
6809	s << "\timageExtent = " << value.imageExtent << '\n';
6810	s << '}';
6811	return s;
6812}
6813
6814std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
6815{
6816	s << "VkImageResolve = {\n";
6817	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6818	s << "\tsrcOffset = " << value.srcOffset << '\n';
6819	s << "\tdstSubresource = " << value.dstSubresource << '\n';
6820	s << "\tdstOffset = " << value.dstOffset << '\n';
6821	s << "\textent = " << value.extent << '\n';
6822	s << '}';
6823	return s;
6824}
6825
6826std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
6827{
6828	s << "VkShaderModuleCreateInfo = {\n";
6829	s << "\tsType = " << value.sType << '\n';
6830	s << "\tpNext = " << value.pNext << '\n';
6831	s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
6832	s << "\tcodeSize = " << value.codeSize << '\n';
6833	s << "\tpCode = " << value.pCode << '\n';
6834	s << '}';
6835	return s;
6836}
6837
6838std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
6839{
6840	s << "VkDescriptorSetLayoutBinding = {\n";
6841	s << "\tbinding = " << value.binding << '\n';
6842	s << "\tdescriptorType = " << value.descriptorType << '\n';
6843	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6844	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6845	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
6846	s << '}';
6847	return s;
6848}
6849
6850std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
6851{
6852	s << "VkDescriptorSetLayoutCreateInfo = {\n";
6853	s << "\tsType = " << value.sType << '\n';
6854	s << "\tpNext = " << value.pNext << '\n';
6855	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
6856	s << "\tbindingCount = " << value.bindingCount << '\n';
6857	s << "\tpBindings = " << value.pBindings << '\n';
6858	s << '}';
6859	return s;
6860}
6861
6862std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
6863{
6864	s << "VkDescriptorPoolSize = {\n";
6865	s << "\ttype = " << value.type << '\n';
6866	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6867	s << '}';
6868	return s;
6869}
6870
6871std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
6872{
6873	s << "VkDescriptorPoolCreateInfo = {\n";
6874	s << "\tsType = " << value.sType << '\n';
6875	s << "\tpNext = " << value.pNext << '\n';
6876	s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
6877	s << "\tmaxSets = " << value.maxSets << '\n';
6878	s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
6879	s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
6880	s << '}';
6881	return s;
6882}
6883
6884std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
6885{
6886	s << "VkDescriptorSetAllocateInfo = {\n";
6887	s << "\tsType = " << value.sType << '\n';
6888	s << "\tpNext = " << value.pNext << '\n';
6889	s << "\tdescriptorPool = " << value.descriptorPool << '\n';
6890	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
6891	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6892	s << '}';
6893	return s;
6894}
6895
6896std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
6897{
6898	s << "VkSpecializationMapEntry = {\n";
6899	s << "\tconstantID = " << value.constantID << '\n';
6900	s << "\toffset = " << value.offset << '\n';
6901	s << "\tsize = " << value.size << '\n';
6902	s << '}';
6903	return s;
6904}
6905
6906std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
6907{
6908	s << "VkSpecializationInfo = {\n";
6909	s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
6910	s << "\tpMapEntries = " << value.pMapEntries << '\n';
6911	s << "\tdataSize = " << value.dataSize << '\n';
6912	s << "\tpData = " << value.pData << '\n';
6913	s << '}';
6914	return s;
6915}
6916
6917std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
6918{
6919	s << "VkPipelineShaderStageCreateInfo = {\n";
6920	s << "\tsType = " << value.sType << '\n';
6921	s << "\tpNext = " << value.pNext << '\n';
6922	s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
6923	s << "\tstage = " << value.stage << '\n';
6924	s << "\tmodule = " << value.module << '\n';
6925	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
6926	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
6927	s << '}';
6928	return s;
6929}
6930
6931std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
6932{
6933	s << "VkComputePipelineCreateInfo = {\n";
6934	s << "\tsType = " << value.sType << '\n';
6935	s << "\tpNext = " << value.pNext << '\n';
6936	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6937	s << "\tstage = " << value.stage << '\n';
6938	s << "\tlayout = " << value.layout << '\n';
6939	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6940	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6941	s << '}';
6942	return s;
6943}
6944
6945std::ostream& operator<< (std::ostream& s, const VkComputePipelineIndirectBufferInfoNV& value)
6946{
6947	s << "VkComputePipelineIndirectBufferInfoNV = {\n";
6948	s << "\tsType = " << value.sType << '\n';
6949	s << "\tpNext = " << value.pNext << '\n';
6950	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
6951	s << "\tsize = " << value.size << '\n';
6952	s << "\tpipelineDeviceAddressCaptureReplay = " << value.pipelineDeviceAddressCaptureReplay << '\n';
6953	s << '}';
6954	return s;
6955}
6956
6957std::ostream& operator<< (std::ostream& s, const VkPipelineCreateFlags2CreateInfo& value)
6958{
6959	s << "VkPipelineCreateFlags2CreateInfo = {\n";
6960	s << "\tsType = " << value.sType << '\n';
6961	s << "\tpNext = " << value.pNext << '\n';
6962	s << "\tflags = " << getPipelineCreateFlags2Str(value.flags) << '\n';
6963	s << '}';
6964	return s;
6965}
6966
6967std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
6968{
6969	s << "VkVertexInputBindingDescription = {\n";
6970	s << "\tbinding = " << value.binding << '\n';
6971	s << "\tstride = " << value.stride << '\n';
6972	s << "\tinputRate = " << value.inputRate << '\n';
6973	s << '}';
6974	return s;
6975}
6976
6977std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
6978{
6979	s << "VkVertexInputAttributeDescription = {\n";
6980	s << "\tlocation = " << value.location << '\n';
6981	s << "\tbinding = " << value.binding << '\n';
6982	s << "\tformat = " << value.format << '\n';
6983	s << "\toffset = " << value.offset << '\n';
6984	s << '}';
6985	return s;
6986}
6987
6988std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
6989{
6990	s << "VkPipelineVertexInputStateCreateInfo = {\n";
6991	s << "\tsType = " << value.sType << '\n';
6992	s << "\tpNext = " << value.pNext << '\n';
6993	s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
6994	s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
6995	s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
6996	s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
6997	s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
6998	s << '}';
6999	return s;
7000}
7001
7002std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
7003{
7004	s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
7005	s << "\tsType = " << value.sType << '\n';
7006	s << "\tpNext = " << value.pNext << '\n';
7007	s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
7008	s << "\ttopology = " << value.topology << '\n';
7009	s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
7010	s << '}';
7011	return s;
7012}
7013
7014std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
7015{
7016	s << "VkPipelineTessellationStateCreateInfo = {\n";
7017	s << "\tsType = " << value.sType << '\n';
7018	s << "\tpNext = " << value.pNext << '\n';
7019	s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
7020	s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
7021	s << '}';
7022	return s;
7023}
7024
7025std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
7026{
7027	s << "VkPipelineViewportStateCreateInfo = {\n";
7028	s << "\tsType = " << value.sType << '\n';
7029	s << "\tpNext = " << value.pNext << '\n';
7030	s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
7031	s << "\tviewportCount = " << value.viewportCount << '\n';
7032	s << "\tpViewports = " << value.pViewports << '\n';
7033	s << "\tscissorCount = " << value.scissorCount << '\n';
7034	s << "\tpScissors = " << value.pScissors << '\n';
7035	s << '}';
7036	return s;
7037}
7038
7039std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
7040{
7041	s << "VkPipelineRasterizationStateCreateInfo = {\n";
7042	s << "\tsType = " << value.sType << '\n';
7043	s << "\tpNext = " << value.pNext << '\n';
7044	s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
7045	s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
7046	s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
7047	s << "\tpolygonMode = " << value.polygonMode << '\n';
7048	s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
7049	s << "\tfrontFace = " << value.frontFace << '\n';
7050	s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
7051	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
7052	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
7053	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
7054	s << "\tlineWidth = " << value.lineWidth << '\n';
7055	s << '}';
7056	return s;
7057}
7058
7059std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
7060{
7061	s << "VkPipelineMultisampleStateCreateInfo = {\n";
7062	s << "\tsType = " << value.sType << '\n';
7063	s << "\tpNext = " << value.pNext << '\n';
7064	s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
7065	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
7066	s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
7067	s << "\tminSampleShading = " << value.minSampleShading << '\n';
7068	s << "\tpSampleMask = " << value.pSampleMask << '\n';
7069	s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
7070	s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
7071	s << '}';
7072	return s;
7073}
7074
7075std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
7076{
7077	s << "VkPipelineColorBlendAttachmentState = {\n";
7078	s << "\tblendEnable = " << value.blendEnable << '\n';
7079	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
7080	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
7081	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
7082	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
7083	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
7084	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
7085	s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
7086	s << '}';
7087	return s;
7088}
7089
7090std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
7091{
7092	s << "VkPipelineColorBlendStateCreateInfo = {\n";
7093	s << "\tsType = " << value.sType << '\n';
7094	s << "\tpNext = " << value.pNext << '\n';
7095	s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
7096	s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
7097	s << "\tlogicOp = " << value.logicOp << '\n';
7098	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7099	s << "\tpAttachments = " << value.pAttachments << '\n';
7100	s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
7101	s << '}';
7102	return s;
7103}
7104
7105std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
7106{
7107	s << "VkPipelineDynamicStateCreateInfo = {\n";
7108	s << "\tsType = " << value.sType << '\n';
7109	s << "\tpNext = " << value.pNext << '\n';
7110	s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
7111	s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
7112	s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
7113	s << '}';
7114	return s;
7115}
7116
7117std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
7118{
7119	s << "VkStencilOpState = {\n";
7120	s << "\tfailOp = " << value.failOp << '\n';
7121	s << "\tpassOp = " << value.passOp << '\n';
7122	s << "\tdepthFailOp = " << value.depthFailOp << '\n';
7123	s << "\tcompareOp = " << value.compareOp << '\n';
7124	s << "\tcompareMask = " << value.compareMask << '\n';
7125	s << "\twriteMask = " << value.writeMask << '\n';
7126	s << "\treference = " << value.reference << '\n';
7127	s << '}';
7128	return s;
7129}
7130
7131std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
7132{
7133	s << "VkPipelineDepthStencilStateCreateInfo = {\n";
7134	s << "\tsType = " << value.sType << '\n';
7135	s << "\tpNext = " << value.pNext << '\n';
7136	s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
7137	s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
7138	s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
7139	s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
7140	s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
7141	s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
7142	s << "\tfront = " << value.front << '\n';
7143	s << "\tback = " << value.back << '\n';
7144	s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
7145	s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
7146	s << '}';
7147	return s;
7148}
7149
7150std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
7151{
7152	s << "VkGraphicsPipelineCreateInfo = {\n";
7153	s << "\tsType = " << value.sType << '\n';
7154	s << "\tpNext = " << value.pNext << '\n';
7155	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
7156	s << "\tstageCount = " << value.stageCount << '\n';
7157	s << "\tpStages = " << value.pStages << '\n';
7158	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
7159	s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
7160	s << "\tpTessellationState = " << value.pTessellationState << '\n';
7161	s << "\tpViewportState = " << value.pViewportState << '\n';
7162	s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
7163	s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
7164	s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
7165	s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
7166	s << "\tpDynamicState = " << value.pDynamicState << '\n';
7167	s << "\tlayout = " << value.layout << '\n';
7168	s << "\trenderPass = " << value.renderPass << '\n';
7169	s << "\tsubpass = " << value.subpass << '\n';
7170	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
7171	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
7172	s << '}';
7173	return s;
7174}
7175
7176std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
7177{
7178	s << "VkPipelineCacheCreateInfo = {\n";
7179	s << "\tsType = " << value.sType << '\n';
7180	s << "\tpNext = " << value.pNext << '\n';
7181	s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
7182	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
7183	s << "\tpInitialData = " << value.pInitialData << '\n';
7184	s << '}';
7185	return s;
7186}
7187
7188std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
7189{
7190	s << "VkPipelineCacheHeaderVersionOne = {\n";
7191	s << "\theaderSize = " << value.headerSize << '\n';
7192	s << "\theaderVersion = " << value.headerVersion << '\n';
7193	s << "\tvendorID = " << value.vendorID << '\n';
7194	s << "\tdeviceID = " << value.deviceID << '\n';
7195	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';
7196	s << '}';
7197	return s;
7198}
7199
7200std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
7201{
7202	s << "VkPushConstantRange = {\n";
7203	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
7204	s << "\toffset = " << value.offset << '\n';
7205	s << "\tsize = " << value.size << '\n';
7206	s << '}';
7207	return s;
7208}
7209
7210std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryCreateInfoKHR& value)
7211{
7212	s << "VkPipelineBinaryCreateInfoKHR = {\n";
7213	s << "\tsType = " << value.sType << '\n';
7214	s << "\tpNext = " << value.pNext << '\n';
7215	s << "\tpKeysAndDataInfo = " << value.pKeysAndDataInfo << '\n';
7216	s << "\tpipeline = " << value.pipeline << '\n';
7217	s << "\tpPipelineCreateInfo = " << value.pPipelineCreateInfo << '\n';
7218	s << '}';
7219	return s;
7220}
7221
7222std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryHandlesInfoKHR& value)
7223{
7224	s << "VkPipelineBinaryHandlesInfoKHR = {\n";
7225	s << "\tsType = " << value.sType << '\n';
7226	s << "\tpNext = " << value.pNext << '\n';
7227	s << "\tpipelineBinaryCount = " << value.pipelineBinaryCount << '\n';
7228	s << "\tpPipelineBinaries = " << value.pPipelineBinaries << '\n';
7229	s << '}';
7230	return s;
7231}
7232
7233std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryDataKHR& value)
7234{
7235	s << "VkPipelineBinaryDataKHR = {\n";
7236	s << "\tdataSize = " << value.dataSize << '\n';
7237	s << "\tpData = " << value.pData << '\n';
7238	s << '}';
7239	return s;
7240}
7241
7242std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryKeysAndDataKHR& value)
7243{
7244	s << "VkPipelineBinaryKeysAndDataKHR = {\n";
7245	s << "\tbinaryCount = " << value.binaryCount << '\n';
7246	s << "\tpPipelineBinaryKeys = " << value.pPipelineBinaryKeys << '\n';
7247	s << "\tpPipelineBinaryData = " << value.pPipelineBinaryData << '\n';
7248	s << '}';
7249	return s;
7250}
7251
7252std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryKeyKHR& value)
7253{
7254	s << "VkPipelineBinaryKeyKHR = {\n";
7255	s << "\tsType = " << value.sType << '\n';
7256	s << "\tpNext = " << value.pNext << '\n';
7257	s << "\tkeySize = " << value.keySize << '\n';
7258	s << "\tkey = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.key)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.key))) << '\n';
7259	s << '}';
7260	return s;
7261}
7262
7263std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryInfoKHR& value)
7264{
7265	s << "VkPipelineBinaryInfoKHR = {\n";
7266	s << "\tsType = " << value.sType << '\n';
7267	s << "\tpNext = " << value.pNext << '\n';
7268	s << "\tbinaryCount = " << value.binaryCount << '\n';
7269	s << "\tpPipelineBinaries = " << value.pPipelineBinaries << '\n';
7270	s << '}';
7271	return s;
7272}
7273
7274std::ostream& operator<< (std::ostream& s, const VkReleaseCapturedPipelineDataInfoKHR& value)
7275{
7276	s << "VkReleaseCapturedPipelineDataInfoKHR = {\n";
7277	s << "\tsType = " << value.sType << '\n';
7278	s << "\tpNext = " << value.pNext << '\n';
7279	s << "\tpipeline = " << value.pipeline << '\n';
7280	s << '}';
7281	return s;
7282}
7283
7284std::ostream& operator<< (std::ostream& s, const VkPipelineBinaryDataInfoKHR& value)
7285{
7286	s << "VkPipelineBinaryDataInfoKHR = {\n";
7287	s << "\tsType = " << value.sType << '\n';
7288	s << "\tpNext = " << value.pNext << '\n';
7289	s << "\tpipelineBinary = " << value.pipelineBinary << '\n';
7290	s << '}';
7291	return s;
7292}
7293
7294std::ostream& operator<< (std::ostream& s, const VkPipelineCreateInfoKHR& value)
7295{
7296	s << "VkPipelineCreateInfoKHR = {\n";
7297	s << "\tsType = " << value.sType << '\n';
7298	s << "\tpNext = " << value.pNext << '\n';
7299	s << '}';
7300	return s;
7301}
7302
7303std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
7304{
7305	s << "VkPipelineLayoutCreateInfo = {\n";
7306	s << "\tsType = " << value.sType << '\n';
7307	s << "\tpNext = " << value.pNext << '\n';
7308	s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
7309	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
7310	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
7311	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
7312	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
7313	s << '}';
7314	return s;
7315}
7316
7317std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
7318{
7319	s << "VkSamplerCreateInfo = {\n";
7320	s << "\tsType = " << value.sType << '\n';
7321	s << "\tpNext = " << value.pNext << '\n';
7322	s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
7323	s << "\tmagFilter = " << value.magFilter << '\n';
7324	s << "\tminFilter = " << value.minFilter << '\n';
7325	s << "\tmipmapMode = " << value.mipmapMode << '\n';
7326	s << "\taddressModeU = " << value.addressModeU << '\n';
7327	s << "\taddressModeV = " << value.addressModeV << '\n';
7328	s << "\taddressModeW = " << value.addressModeW << '\n';
7329	s << "\tmipLodBias = " << value.mipLodBias << '\n';
7330	s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
7331	s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
7332	s << "\tcompareEnable = " << value.compareEnable << '\n';
7333	s << "\tcompareOp = " << value.compareOp << '\n';
7334	s << "\tminLod = " << value.minLod << '\n';
7335	s << "\tmaxLod = " << value.maxLod << '\n';
7336	s << "\tborderColor = " << value.borderColor << '\n';
7337	s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
7338	s << '}';
7339	return s;
7340}
7341
7342std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
7343{
7344	s << "VkCommandPoolCreateInfo = {\n";
7345	s << "\tsType = " << value.sType << '\n';
7346	s << "\tpNext = " << value.pNext << '\n';
7347	s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
7348	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
7349	s << '}';
7350	return s;
7351}
7352
7353std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
7354{
7355	s << "VkCommandBufferAllocateInfo = {\n";
7356	s << "\tsType = " << value.sType << '\n';
7357	s << "\tpNext = " << value.pNext << '\n';
7358	s << "\tcommandPool = " << value.commandPool << '\n';
7359	s << "\tlevel = " << value.level << '\n';
7360	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
7361	s << '}';
7362	return s;
7363}
7364
7365std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
7366{
7367	s << "VkCommandBufferInheritanceInfo = {\n";
7368	s << "\tsType = " << value.sType << '\n';
7369	s << "\tpNext = " << value.pNext << '\n';
7370	s << "\trenderPass = " << value.renderPass << '\n';
7371	s << "\tsubpass = " << value.subpass << '\n';
7372	s << "\tframebuffer = " << value.framebuffer << '\n';
7373	s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
7374	s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
7375	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
7376	s << '}';
7377	return s;
7378}
7379
7380std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
7381{
7382	s << "VkCommandBufferBeginInfo = {\n";
7383	s << "\tsType = " << value.sType << '\n';
7384	s << "\tpNext = " << value.pNext << '\n';
7385	s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
7386	s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
7387	s << '}';
7388	return s;
7389}
7390
7391std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
7392{
7393	s << "VkRenderPassBeginInfo = {\n";
7394	s << "\tsType = " << value.sType << '\n';
7395	s << "\tpNext = " << value.pNext << '\n';
7396	s << "\trenderPass = " << value.renderPass << '\n';
7397	s << "\tframebuffer = " << value.framebuffer << '\n';
7398	s << "\trenderArea = " << value.renderArea << '\n';
7399	s << "\tclearValueCount = " << value.clearValueCount << '\n';
7400	s << "\tpClearValues = " << value.pClearValues << '\n';
7401	s << '}';
7402	return s;
7403}
7404
7405std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
7406{
7407	s << "VkClearColorValue = {\n";
7408	s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
7409	s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
7410	s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
7411	s << '}';
7412	return s;
7413}
7414
7415std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
7416{
7417	s << "VkClearDepthStencilValue = {\n";
7418	s << "\tdepth = " << value.depth << '\n';
7419	s << "\tstencil = " << value.stencil << '\n';
7420	s << '}';
7421	return s;
7422}
7423
7424std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
7425{
7426	s << "VkClearValue = {\n";
7427	s << "\tcolor = " << value.color << '\n';
7428	s << "\tdepthStencil = " << value.depthStencil << '\n';
7429	s << '}';
7430	return s;
7431}
7432
7433std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
7434{
7435	s << "VkClearAttachment = {\n";
7436	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
7437	s << "\tcolorAttachment = " << value.colorAttachment << '\n';
7438	s << "\tclearValue = " << value.clearValue << '\n';
7439	s << '}';
7440	return s;
7441}
7442
7443std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
7444{
7445	s << "VkAttachmentDescription = {\n";
7446	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
7447	s << "\tformat = " << value.format << '\n';
7448	s << "\tsamples = " << value.samples << '\n';
7449	s << "\tloadOp = " << value.loadOp << '\n';
7450	s << "\tstoreOp = " << value.storeOp << '\n';
7451	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
7452	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
7453	s << "\tinitialLayout = " << value.initialLayout << '\n';
7454	s << "\tfinalLayout = " << value.finalLayout << '\n';
7455	s << '}';
7456	return s;
7457}
7458
7459std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
7460{
7461	s << "VkAttachmentReference = {\n";
7462	s << "\tattachment = " << value.attachment << '\n';
7463	s << "\tlayout = " << value.layout << '\n';
7464	s << '}';
7465	return s;
7466}
7467
7468std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
7469{
7470	s << "VkSubpassDescription = {\n";
7471	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
7472	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7473	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
7474	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
7475	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
7476	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
7477	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
7478	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
7479	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
7480	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
7481	s << '}';
7482	return s;
7483}
7484
7485std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
7486{
7487	s << "VkSubpassDependency = {\n";
7488	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
7489	s << "\tdstSubpass = " << value.dstSubpass << '\n';
7490	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
7491	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
7492	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
7493	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
7494	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
7495	s << '}';
7496	return s;
7497}
7498
7499std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
7500{
7501	s << "VkRenderPassCreateInfo = {\n";
7502	s << "\tsType = " << value.sType << '\n';
7503	s << "\tpNext = " << value.pNext << '\n';
7504	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
7505	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7506	s << "\tpAttachments = " << value.pAttachments << '\n';
7507	s << "\tsubpassCount = " << value.subpassCount << '\n';
7508	s << "\tpSubpasses = " << value.pSubpasses << '\n';
7509	s << "\tdependencyCount = " << value.dependencyCount << '\n';
7510	s << "\tpDependencies = " << value.pDependencies << '\n';
7511	s << '}';
7512	return s;
7513}
7514
7515std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
7516{
7517	s << "VkEventCreateInfo = {\n";
7518	s << "\tsType = " << value.sType << '\n';
7519	s << "\tpNext = " << value.pNext << '\n';
7520	s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
7521	s << '}';
7522	return s;
7523}
7524
7525std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
7526{
7527	s << "VkFenceCreateInfo = {\n";
7528	s << "\tsType = " << value.sType << '\n';
7529	s << "\tpNext = " << value.pNext << '\n';
7530	s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
7531	s << '}';
7532	return s;
7533}
7534
7535std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
7536{
7537	s << "VkPhysicalDeviceFeatures = {\n";
7538	s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
7539	s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
7540	s << "\timageCubeArray = " << value.imageCubeArray << '\n';
7541	s << "\tindependentBlend = " << value.independentBlend << '\n';
7542	s << "\tgeometryShader = " << value.geometryShader << '\n';
7543	s << "\ttessellationShader = " << value.tessellationShader << '\n';
7544	s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
7545	s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
7546	s << "\tlogicOp = " << value.logicOp << '\n';
7547	s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
7548	s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
7549	s << "\tdepthClamp = " << value.depthClamp << '\n';
7550	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
7551	s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
7552	s << "\tdepthBounds = " << value.depthBounds << '\n';
7553	s << "\twideLines = " << value.wideLines << '\n';
7554	s << "\tlargePoints = " << value.largePoints << '\n';
7555	s << "\talphaToOne = " << value.alphaToOne << '\n';
7556	s << "\tmultiViewport = " << value.multiViewport << '\n';
7557	s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
7558	s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
7559	s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
7560	s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
7561	s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
7562	s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
7563	s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
7564	s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
7565	s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
7566	s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
7567	s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
7568	s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
7569	s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
7570	s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
7571	s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
7572	s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
7573	s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
7574	s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
7575	s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
7576	s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
7577	s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
7578	s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
7579	s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
7580	s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
7581	s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
7582	s << "\tsparseBinding = " << value.sparseBinding << '\n';
7583	s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
7584	s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
7585	s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
7586	s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
7587	s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
7588	s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
7589	s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
7590	s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
7591	s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
7592	s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
7593	s << '}';
7594	return s;
7595}
7596
7597std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
7598{
7599	s << "VkPhysicalDeviceSparseProperties = {\n";
7600	s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
7601	s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
7602	s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
7603	s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
7604	s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
7605	s << '}';
7606	return s;
7607}
7608
7609std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
7610{
7611	s << "VkPhysicalDeviceLimits = {\n";
7612	s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
7613	s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
7614	s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
7615	s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
7616	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7617	s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
7618	s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
7619	s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
7620	s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
7621	s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
7622	s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
7623	s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
7624	s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
7625	s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
7626	s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
7627	s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
7628	s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
7629	s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
7630	s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
7631	s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
7632	s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
7633	s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
7634	s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
7635	s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
7636	s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
7637	s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
7638	s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
7639	s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
7640	s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
7641	s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
7642	s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
7643	s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
7644	s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
7645	s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
7646	s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
7647	s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
7648	s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
7649	s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
7650	s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
7651	s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
7652	s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
7653	s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
7654	s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
7655	s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
7656	s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
7657	s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
7658	s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
7659	s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
7660	s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
7661	s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
7662	s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
7663	s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
7664	s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
7665	s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
7666	s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
7667	s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
7668	s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
7669	s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
7670	s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
7671	s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
7672	s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
7673	s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
7674	s << "\tmaxViewports = " << value.maxViewports << '\n';
7675	s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
7676	s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
7677	s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
7678	s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
7679	s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
7680	s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
7681	s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
7682	s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
7683	s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
7684	s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
7685	s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
7686	s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
7687	s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
7688	s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
7689	s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
7690	s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
7691	s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
7692	s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
7693	s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
7694	s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
7695	s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
7696	s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
7697	s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
7698	s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
7699	s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
7700	s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
7701	s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
7702	s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
7703	s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
7704	s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
7705	s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
7706	s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
7707	s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
7708	s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
7709	s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
7710	s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
7711	s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
7712	s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
7713	s << "\tstrictLines = " << value.strictLines << '\n';
7714	s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
7715	s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
7716	s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
7717	s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
7718	s << '}';
7719	return s;
7720}
7721
7722std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
7723{
7724	s << "VkSemaphoreCreateInfo = {\n";
7725	s << "\tsType = " << value.sType << '\n';
7726	s << "\tpNext = " << value.pNext << '\n';
7727	s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
7728	s << '}';
7729	return s;
7730}
7731
7732std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
7733{
7734	s << "VkQueryPoolCreateInfo = {\n";
7735	s << "\tsType = " << value.sType << '\n';
7736	s << "\tpNext = " << value.pNext << '\n';
7737	s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
7738	s << "\tqueryType = " << value.queryType << '\n';
7739	s << "\tqueryCount = " << value.queryCount << '\n';
7740	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
7741	s << '}';
7742	return s;
7743}
7744
7745std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
7746{
7747	s << "VkFramebufferCreateInfo = {\n";
7748	s << "\tsType = " << value.sType << '\n';
7749	s << "\tpNext = " << value.pNext << '\n';
7750	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
7751	s << "\trenderPass = " << value.renderPass << '\n';
7752	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7753	s << "\tpAttachments = " << value.pAttachments << '\n';
7754	s << "\twidth = " << value.width << '\n';
7755	s << "\theight = " << value.height << '\n';
7756	s << "\tlayers = " << value.layers << '\n';
7757	s << '}';
7758	return s;
7759}
7760
7761std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
7762{
7763	s << "VkDrawIndirectCommand = {\n";
7764	s << "\tvertexCount = " << value.vertexCount << '\n';
7765	s << "\tinstanceCount = " << value.instanceCount << '\n';
7766	s << "\tfirstVertex = " << value.firstVertex << '\n';
7767	s << "\tfirstInstance = " << value.firstInstance << '\n';
7768	s << '}';
7769	return s;
7770}
7771
7772std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
7773{
7774	s << "VkDrawIndexedIndirectCommand = {\n";
7775	s << "\tindexCount = " << value.indexCount << '\n';
7776	s << "\tinstanceCount = " << value.instanceCount << '\n';
7777	s << "\tfirstIndex = " << value.firstIndex << '\n';
7778	s << "\tvertexOffset = " << value.vertexOffset << '\n';
7779	s << "\tfirstInstance = " << value.firstInstance << '\n';
7780	s << '}';
7781	return s;
7782}
7783
7784std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
7785{
7786	s << "VkDispatchIndirectCommand = {\n";
7787	s << "\tx = " << value.x << '\n';
7788	s << "\ty = " << value.y << '\n';
7789	s << "\tz = " << value.z << '\n';
7790	s << '}';
7791	return s;
7792}
7793
7794std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
7795{
7796	s << "VkMultiDrawInfoEXT = {\n";
7797	s << "\tfirstVertex = " << value.firstVertex << '\n';
7798	s << "\tvertexCount = " << value.vertexCount << '\n';
7799	s << '}';
7800	return s;
7801}
7802
7803std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
7804{
7805	s << "VkMultiDrawIndexedInfoEXT = {\n";
7806	s << "\tfirstIndex = " << value.firstIndex << '\n';
7807	s << "\tindexCount = " << value.indexCount << '\n';
7808	s << "\tvertexOffset = " << value.vertexOffset << '\n';
7809	s << '}';
7810	return s;
7811}
7812
7813std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
7814{
7815	s << "VkSubmitInfo = {\n";
7816	s << "\tsType = " << value.sType << '\n';
7817	s << "\tpNext = " << value.pNext << '\n';
7818	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7819	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7820	s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
7821	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
7822	s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
7823	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
7824	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
7825	s << '}';
7826	return s;
7827}
7828
7829std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
7830{
7831	s << "VkDisplayPropertiesKHR = {\n";
7832	s << "\tdisplay = " << value.display << '\n';
7833	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
7834	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
7835	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
7836	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7837	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
7838	s << "\tpersistentContent = " << value.persistentContent << '\n';
7839	s << '}';
7840	return s;
7841}
7842
7843std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
7844{
7845	s << "VkDisplayPlanePropertiesKHR = {\n";
7846	s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
7847	s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
7848	s << '}';
7849	return s;
7850}
7851
7852std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
7853{
7854	s << "VkDisplayModeParametersKHR = {\n";
7855	s << "\tvisibleRegion = " << value.visibleRegion << '\n';
7856	s << "\trefreshRate = " << value.refreshRate << '\n';
7857	s << '}';
7858	return s;
7859}
7860
7861std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
7862{
7863	s << "VkDisplayModePropertiesKHR = {\n";
7864	s << "\tdisplayMode = " << value.displayMode << '\n';
7865	s << "\tparameters = " << value.parameters << '\n';
7866	s << '}';
7867	return s;
7868}
7869
7870std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
7871{
7872	s << "VkDisplayModeCreateInfoKHR = {\n";
7873	s << "\tsType = " << value.sType << '\n';
7874	s << "\tpNext = " << value.pNext << '\n';
7875	s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
7876	s << "\tparameters = " << value.parameters << '\n';
7877	s << '}';
7878	return s;
7879}
7880
7881std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
7882{
7883	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
7884	s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
7885	s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
7886	s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
7887	s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
7888	s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
7889	s << "\tminDstPosition = " << value.minDstPosition << '\n';
7890	s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
7891	s << "\tminDstExtent = " << value.minDstExtent << '\n';
7892	s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
7893	s << '}';
7894	return s;
7895}
7896
7897std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
7898{
7899	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
7900	s << "\tsType = " << value.sType << '\n';
7901	s << "\tpNext = " << value.pNext << '\n';
7902	s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
7903	s << "\tdisplayMode = " << value.displayMode << '\n';
7904	s << "\tplaneIndex = " << value.planeIndex << '\n';
7905	s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
7906	s << "\ttransform = " << value.transform << '\n';
7907	s << "\tglobalAlpha = " << value.globalAlpha << '\n';
7908	s << "\talphaMode = " << value.alphaMode << '\n';
7909	s << "\timageExtent = " << value.imageExtent << '\n';
7910	s << '}';
7911	return s;
7912}
7913
7914std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceStereoCreateInfoNV& value)
7915{
7916	s << "VkDisplaySurfaceStereoCreateInfoNV = {\n";
7917	s << "\tsType = " << value.sType << '\n';
7918	s << "\tpNext = " << value.pNext << '\n';
7919	s << "\tstereoType = " << value.stereoType << '\n';
7920	s << '}';
7921	return s;
7922}
7923
7924std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
7925{
7926	s << "VkDisplayPresentInfoKHR = {\n";
7927	s << "\tsType = " << value.sType << '\n';
7928	s << "\tpNext = " << value.pNext << '\n';
7929	s << "\tsrcRect = " << value.srcRect << '\n';
7930	s << "\tdstRect = " << value.dstRect << '\n';
7931	s << "\tpersistent = " << value.persistent << '\n';
7932	s << '}';
7933	return s;
7934}
7935
7936std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
7937{
7938	s << "VkSurfaceCapabilitiesKHR = {\n";
7939	s << "\tminImageCount = " << value.minImageCount << '\n';
7940	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7941	s << "\tcurrentExtent = " << value.currentExtent << '\n';
7942	s << "\tminImageExtent = " << value.minImageExtent << '\n';
7943	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7944	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7945	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7946	s << "\tcurrentTransform = " << value.currentTransform << '\n';
7947	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7948	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7949	s << '}';
7950	return s;
7951}
7952
7953std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
7954{
7955	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
7956	s << "\tsType = " << value.sType << '\n';
7957	s << "\tpNext = " << value.pNext << '\n';
7958	s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7959	s << "\twindow = " << value.window << '\n';
7960	s << '}';
7961	return s;
7962}
7963
7964std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
7965{
7966	s << "VkViSurfaceCreateInfoNN = {\n";
7967	s << "\tsType = " << value.sType << '\n';
7968	s << "\tpNext = " << value.pNext << '\n';
7969	s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
7970	s << "\twindow = " << value.window << '\n';
7971	s << '}';
7972	return s;
7973}
7974
7975std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
7976{
7977	s << "VkWaylandSurfaceCreateInfoKHR = {\n";
7978	s << "\tsType = " << value.sType << '\n';
7979	s << "\tpNext = " << value.pNext << '\n';
7980	s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
7981	s << "\tdisplay = " << value.display << '\n';
7982	s << "\tsurface = " << value.surface << '\n';
7983	s << '}';
7984	return s;
7985}
7986
7987std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
7988{
7989	s << "VkWin32SurfaceCreateInfoKHR = {\n";
7990	s << "\tsType = " << value.sType << '\n';
7991	s << "\tpNext = " << value.pNext << '\n';
7992	s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
7993	s << "\thinstance = " << value.hinstance << '\n';
7994	s << "\thwnd = " << value.hwnd << '\n';
7995	s << '}';
7996	return s;
7997}
7998
7999std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
8000{
8001	s << "VkXlibSurfaceCreateInfoKHR = {\n";
8002	s << "\tsType = " << value.sType << '\n';
8003	s << "\tpNext = " << value.pNext << '\n';
8004	s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
8005	s << "\tdpy = " << value.dpy << '\n';
8006	s << "\twindow = " << value.window << '\n';
8007	s << '}';
8008	return s;
8009}
8010
8011std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
8012{
8013	s << "VkXcbSurfaceCreateInfoKHR = {\n";
8014	s << "\tsType = " << value.sType << '\n';
8015	s << "\tpNext = " << value.pNext << '\n';
8016	s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
8017	s << "\tconnection = " << value.connection << '\n';
8018	s << "\twindow = " << value.window << '\n';
8019	s << '}';
8020	return s;
8021}
8022
8023std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
8024{
8025	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
8026	s << "\tsType = " << value.sType << '\n';
8027	s << "\tpNext = " << value.pNext << '\n';
8028	s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
8029	s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
8030	s << '}';
8031	return s;
8032}
8033
8034std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
8035{
8036	s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
8037	s << "\tsType = " << value.sType << '\n';
8038	s << "\tpNext = " << value.pNext << '\n';
8039	s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
8040	s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
8041	s << '}';
8042	return s;
8043}
8044
8045std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
8046{
8047	s << "VkScreenSurfaceCreateInfoQNX = {\n";
8048	s << "\tsType = " << value.sType << '\n';
8049	s << "\tpNext = " << value.pNext << '\n';
8050	s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
8051	s << "\tcontext = " << value.context << '\n';
8052	s << "\twindow = " << value.window << '\n';
8053	s << '}';
8054	return s;
8055}
8056
8057std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
8058{
8059	s << "VkSurfaceFormatKHR = {\n";
8060	s << "\tformat = " << value.format << '\n';
8061	s << "\tcolorSpace = " << value.colorSpace << '\n';
8062	s << '}';
8063	return s;
8064}
8065
8066std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
8067{
8068	s << "VkSwapchainCreateInfoKHR = {\n";
8069	s << "\tsType = " << value.sType << '\n';
8070	s << "\tpNext = " << value.pNext << '\n';
8071	s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
8072	s << "\tsurface = " << value.surface << '\n';
8073	s << "\tminImageCount = " << value.minImageCount << '\n';
8074	s << "\timageFormat = " << value.imageFormat << '\n';
8075	s << "\timageColorSpace = " << value.imageColorSpace << '\n';
8076	s << "\timageExtent = " << value.imageExtent << '\n';
8077	s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
8078	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
8079	s << "\timageSharingMode = " << value.imageSharingMode << '\n';
8080	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
8081	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
8082	s << "\tpreTransform = " << value.preTransform << '\n';
8083	s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
8084	s << "\tpresentMode = " << value.presentMode << '\n';
8085	s << "\tclipped = " << value.clipped << '\n';
8086	s << "\toldSwapchain = " << value.oldSwapchain << '\n';
8087	s << '}';
8088	return s;
8089}
8090
8091std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
8092{
8093	s << "VkPresentInfoKHR = {\n";
8094	s << "\tsType = " << value.sType << '\n';
8095	s << "\tpNext = " << value.pNext << '\n';
8096	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8097	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
8098	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8099	s << "\tpSwapchains = " << value.pSwapchains << '\n';
8100	s << "\tpImageIndices = " << value.pImageIndices << '\n';
8101	s << "\tpResults = " << value.pResults << '\n';
8102	s << '}';
8103	return s;
8104}
8105
8106std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
8107{
8108	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
8109	s << "\tsType = " << value.sType << '\n';
8110	s << "\tpNext = " << value.pNext << '\n';
8111	s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
8112	s << "\tpfnCallback = " << value.pfnCallback << '\n';
8113	s << "\tpUserData = " << value.pUserData << '\n';
8114	s << '}';
8115	return s;
8116}
8117
8118std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
8119{
8120	s << "VkValidationFlagsEXT = {\n";
8121	s << "\tsType = " << value.sType << '\n';
8122	s << "\tpNext = " << value.pNext << '\n';
8123	s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
8124	s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
8125	s << '}';
8126	return s;
8127}
8128
8129std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
8130{
8131	s << "VkValidationFeaturesEXT = {\n";
8132	s << "\tsType = " << value.sType << '\n';
8133	s << "\tpNext = " << value.pNext << '\n';
8134	s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
8135	s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
8136	s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
8137	s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
8138	s << '}';
8139	return s;
8140}
8141
8142std::ostream& operator<< (std::ostream& s, const VkLayerSettingsCreateInfoEXT& value)
8143{
8144	s << "VkLayerSettingsCreateInfoEXT = {\n";
8145	s << "\tsType = " << value.sType << '\n';
8146	s << "\tpNext = " << value.pNext << '\n';
8147	s << "\tsettingCount = " << value.settingCount << '\n';
8148	s << "\tpSettings = " << value.pSettings << '\n';
8149	s << '}';
8150	return s;
8151}
8152
8153std::ostream& operator<< (std::ostream& s, const VkLayerSettingEXT& value)
8154{
8155	s << "VkLayerSettingEXT = {\n";
8156	s << "\tpLayerName = " << getCharPtrStr(value.pLayerName) << '\n';
8157	s << "\tpSettingName = " << getCharPtrStr(value.pSettingName) << '\n';
8158	s << "\ttype = " << value.type << '\n';
8159	s << "\tvalueCount = " << value.valueCount << '\n';
8160	s << "\tpValues = " << value.pValues << '\n';
8161	s << '}';
8162	return s;
8163}
8164
8165std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
8166{
8167	s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
8168	s << "\tsType = " << value.sType << '\n';
8169	s << "\tpNext = " << value.pNext << '\n';
8170	s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
8171	s << '}';
8172	return s;
8173}
8174
8175std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
8176{
8177	s << "VkDebugMarkerObjectNameInfoEXT = {\n";
8178	s << "\tsType = " << value.sType << '\n';
8179	s << "\tpNext = " << value.pNext << '\n';
8180	s << "\tobjectType = " << value.objectType << '\n';
8181	s << "\tobject = " << value.object << '\n';
8182	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
8183	s << '}';
8184	return s;
8185}
8186
8187std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
8188{
8189	s << "VkDebugMarkerObjectTagInfoEXT = {\n";
8190	s << "\tsType = " << value.sType << '\n';
8191	s << "\tpNext = " << value.pNext << '\n';
8192	s << "\tobjectType = " << value.objectType << '\n';
8193	s << "\tobject = " << value.object << '\n';
8194	s << "\ttagName = " << value.tagName << '\n';
8195	s << "\ttagSize = " << value.tagSize << '\n';
8196	s << "\tpTag = " << value.pTag << '\n';
8197	s << '}';
8198	return s;
8199}
8200
8201std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
8202{
8203	s << "VkDebugMarkerMarkerInfoEXT = {\n";
8204	s << "\tsType = " << value.sType << '\n';
8205	s << "\tpNext = " << value.pNext << '\n';
8206	s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
8207	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
8208	s << '}';
8209	return s;
8210}
8211
8212std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
8213{
8214	s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
8215	s << "\tsType = " << value.sType << '\n';
8216	s << "\tpNext = " << value.pNext << '\n';
8217	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8218	s << '}';
8219	return s;
8220}
8221
8222std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
8223{
8224	s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
8225	s << "\tsType = " << value.sType << '\n';
8226	s << "\tpNext = " << value.pNext << '\n';
8227	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8228	s << '}';
8229	return s;
8230}
8231
8232std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
8233{
8234	s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
8235	s << "\tsType = " << value.sType << '\n';
8236	s << "\tpNext = " << value.pNext << '\n';
8237	s << "\timage = " << value.image << '\n';
8238	s << "\tbuffer = " << value.buffer << '\n';
8239	s << '}';
8240	return s;
8241}
8242
8243std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
8244{
8245	s << "VkExternalImageFormatPropertiesNV = {\n";
8246	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
8247	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
8248	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
8249	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
8250	s << '}';
8251	return s;
8252}
8253
8254std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
8255{
8256	s << "VkExternalMemoryImageCreateInfoNV = {\n";
8257	s << "\tsType = " << value.sType << '\n';
8258	s << "\tpNext = " << value.pNext << '\n';
8259	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8260	s << '}';
8261	return s;
8262}
8263
8264std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
8265{
8266	s << "VkExportMemoryAllocateInfoNV = {\n";
8267	s << "\tsType = " << value.sType << '\n';
8268	s << "\tpNext = " << value.pNext << '\n';
8269	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8270	s << '}';
8271	return s;
8272}
8273
8274std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
8275{
8276	s << "VkImportMemoryWin32HandleInfoNV = {\n";
8277	s << "\tsType = " << value.sType << '\n';
8278	s << "\tpNext = " << value.pNext << '\n';
8279	s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
8280	s << "\thandle = " << value.handle << '\n';
8281	s << '}';
8282	return s;
8283}
8284
8285std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
8286{
8287	s << "VkExportMemoryWin32HandleInfoNV = {\n";
8288	s << "\tsType = " << value.sType << '\n';
8289	s << "\tpNext = " << value.pNext << '\n';
8290	s << "\tpAttributes = " << value.pAttributes << '\n';
8291	s << "\tdwAccess = " << value.dwAccess << '\n';
8292	s << '}';
8293	return s;
8294}
8295
8296std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
8297{
8298	s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
8299	s << "\tsType = " << value.sType << '\n';
8300	s << "\tpNext = " << value.pNext << '\n';
8301	s << "\tacquireCount = " << value.acquireCount << '\n';
8302	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
8303	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
8304	s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
8305	s << "\treleaseCount = " << value.releaseCount << '\n';
8306	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
8307	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
8308	s << '}';
8309	return s;
8310}
8311
8312std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
8313{
8314	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
8315	s << "\tsType = " << value.sType << '\n';
8316	s << "\tpNext = " << value.pNext << '\n';
8317	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
8318	s << '}';
8319	return s;
8320}
8321
8322std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV& value)
8323{
8324	s << "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = {\n";
8325	s << "\tsType = " << value.sType << '\n';
8326	s << "\tpNext = " << value.pNext << '\n';
8327	s << "\tdeviceGeneratedCompute = " << value.deviceGeneratedCompute << '\n';
8328	s << "\tdeviceGeneratedComputePipelines = " << value.deviceGeneratedComputePipelines << '\n';
8329	s << "\tdeviceGeneratedComputeCaptureReplay = " << value.deviceGeneratedComputeCaptureReplay << '\n';
8330	s << '}';
8331	return s;
8332}
8333
8334std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
8335{
8336	s << "VkDevicePrivateDataCreateInfo = {\n";
8337	s << "\tsType = " << value.sType << '\n';
8338	s << "\tpNext = " << value.pNext << '\n';
8339	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
8340	s << '}';
8341	return s;
8342}
8343
8344std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
8345{
8346	s << "VkPrivateDataSlotCreateInfo = {\n";
8347	s << "\tsType = " << value.sType << '\n';
8348	s << "\tpNext = " << value.pNext << '\n';
8349	s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
8350	s << '}';
8351	return s;
8352}
8353
8354std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
8355{
8356	s << "VkPhysicalDevicePrivateDataFeatures = {\n";
8357	s << "\tsType = " << value.sType << '\n';
8358	s << "\tpNext = " << value.pNext << '\n';
8359	s << "\tprivateData = " << value.privateData << '\n';
8360	s << '}';
8361	return s;
8362}
8363
8364std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
8365{
8366	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
8367	s << "\tsType = " << value.sType << '\n';
8368	s << "\tpNext = " << value.pNext << '\n';
8369	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
8370	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
8371	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
8372	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
8373	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
8374	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
8375	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
8376	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
8377	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
8378	s << '}';
8379	return s;
8380}
8381
8382std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
8383{
8384	s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
8385	s << "\tsType = " << value.sType << '\n';
8386	s << "\tpNext = " << value.pNext << '\n';
8387	s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
8388	s << '}';
8389	return s;
8390}
8391
8392std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
8393{
8394	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
8395	s << "\tsType = " << value.sType << '\n';
8396	s << "\tpNext = " << value.pNext << '\n';
8397	s << "\tstageCount = " << value.stageCount << '\n';
8398	s << "\tpStages = " << value.pStages << '\n';
8399	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
8400	s << "\tpTessellationState = " << value.pTessellationState << '\n';
8401	s << '}';
8402	return s;
8403}
8404
8405std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
8406{
8407	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
8408	s << "\tsType = " << value.sType << '\n';
8409	s << "\tpNext = " << value.pNext << '\n';
8410	s << "\tgroupCount = " << value.groupCount << '\n';
8411	s << "\tpGroups = " << value.pGroups << '\n';
8412	s << "\tpipelineCount = " << value.pipelineCount << '\n';
8413	s << "\tpPipelines = " << value.pPipelines << '\n';
8414	s << '}';
8415	return s;
8416}
8417
8418std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
8419{
8420	s << "VkBindShaderGroupIndirectCommandNV = {\n";
8421	s << "\tgroupIndex = " << value.groupIndex << '\n';
8422	s << '}';
8423	return s;
8424}
8425
8426std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
8427{
8428	s << "VkBindIndexBufferIndirectCommandNV = {\n";
8429	s << "\tbufferAddress = " << value.bufferAddress << '\n';
8430	s << "\tsize = " << value.size << '\n';
8431	s << "\tindexType = " << value.indexType << '\n';
8432	s << '}';
8433	return s;
8434}
8435
8436std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
8437{
8438	s << "VkBindVertexBufferIndirectCommandNV = {\n";
8439	s << "\tbufferAddress = " << value.bufferAddress << '\n';
8440	s << "\tsize = " << value.size << '\n';
8441	s << "\tstride = " << value.stride << '\n';
8442	s << '}';
8443	return s;
8444}
8445
8446std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
8447{
8448	s << "VkSetStateFlagsIndirectCommandNV = {\n";
8449	s << "\tdata = " << value.data << '\n';
8450	s << '}';
8451	return s;
8452}
8453
8454std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
8455{
8456	s << "VkIndirectCommandsStreamNV = {\n";
8457	s << "\tbuffer = " << value.buffer << '\n';
8458	s << "\toffset = " << value.offset << '\n';
8459	s << '}';
8460	return s;
8461}
8462
8463std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
8464{
8465	s << "VkIndirectCommandsLayoutTokenNV = {\n";
8466	s << "\tsType = " << value.sType << '\n';
8467	s << "\tpNext = " << value.pNext << '\n';
8468	s << "\ttokenType = " << value.tokenType << '\n';
8469	s << "\tstream = " << value.stream << '\n';
8470	s << "\toffset = " << value.offset << '\n';
8471	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
8472	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
8473	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
8474	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
8475	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
8476	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
8477	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
8478	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
8479	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
8480	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
8481	s << '}';
8482	return s;
8483}
8484
8485std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
8486{
8487	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
8488	s << "\tsType = " << value.sType << '\n';
8489	s << "\tpNext = " << value.pNext << '\n';
8490	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
8491	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8492	s << "\ttokenCount = " << value.tokenCount << '\n';
8493	s << "\tpTokens = " << value.pTokens << '\n';
8494	s << "\tstreamCount = " << value.streamCount << '\n';
8495	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
8496	s << '}';
8497	return s;
8498}
8499
8500std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
8501{
8502	s << "VkGeneratedCommandsInfoNV = {\n";
8503	s << "\tsType = " << value.sType << '\n';
8504	s << "\tpNext = " << value.pNext << '\n';
8505	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8506	s << "\tpipeline = " << value.pipeline << '\n';
8507	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
8508	s << "\tstreamCount = " << value.streamCount << '\n';
8509	s << "\tpStreams = " << value.pStreams << '\n';
8510	s << "\tsequencesCount = " << value.sequencesCount << '\n';
8511	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
8512	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
8513	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
8514	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
8515	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
8516	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
8517	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
8518	s << '}';
8519	return s;
8520}
8521
8522std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
8523{
8524	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
8525	s << "\tsType = " << value.sType << '\n';
8526	s << "\tpNext = " << value.pNext << '\n';
8527	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8528	s << "\tpipeline = " << value.pipeline << '\n';
8529	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
8530	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
8531	s << '}';
8532	return s;
8533}
8534
8535std::ostream& operator<< (std::ostream& s, const VkPipelineIndirectDeviceAddressInfoNV& value)
8536{
8537	s << "VkPipelineIndirectDeviceAddressInfoNV = {\n";
8538	s << "\tsType = " << value.sType << '\n';
8539	s << "\tpNext = " << value.pNext << '\n';
8540	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8541	s << "\tpipeline = " << value.pipeline << '\n';
8542	s << '}';
8543	return s;
8544}
8545
8546std::ostream& operator<< (std::ostream& s, const VkBindPipelineIndirectCommandNV& value)
8547{
8548	s << "VkBindPipelineIndirectCommandNV = {\n";
8549	s << "\tpipelineAddress = " << value.pipelineAddress << '\n';
8550	s << '}';
8551	return s;
8552}
8553
8554std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
8555{
8556	s << "VkPhysicalDeviceFeatures2 = {\n";
8557	s << "\tsType = " << value.sType << '\n';
8558	s << "\tpNext = " << value.pNext << '\n';
8559	s << "\tfeatures = " << value.features << '\n';
8560	s << '}';
8561	return s;
8562}
8563
8564std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
8565{
8566	s << "VkPhysicalDeviceProperties2 = {\n";
8567	s << "\tsType = " << value.sType << '\n';
8568	s << "\tpNext = " << value.pNext << '\n';
8569	s << "\tproperties = " << value.properties << '\n';
8570	s << '}';
8571	return s;
8572}
8573
8574std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
8575{
8576	s << "VkFormatProperties2 = {\n";
8577	s << "\tsType = " << value.sType << '\n';
8578	s << "\tpNext = " << value.pNext << '\n';
8579	s << "\tformatProperties = " << value.formatProperties << '\n';
8580	s << '}';
8581	return s;
8582}
8583
8584std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
8585{
8586	s << "VkImageFormatProperties2 = {\n";
8587	s << "\tsType = " << value.sType << '\n';
8588	s << "\tpNext = " << value.pNext << '\n';
8589	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
8590	s << '}';
8591	return s;
8592}
8593
8594std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
8595{
8596	s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
8597	s << "\tsType = " << value.sType << '\n';
8598	s << "\tpNext = " << value.pNext << '\n';
8599	s << "\tformat = " << value.format << '\n';
8600	s << "\ttype = " << value.type << '\n';
8601	s << "\ttiling = " << value.tiling << '\n';
8602	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8603	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
8604	s << '}';
8605	return s;
8606}
8607
8608std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
8609{
8610	s << "VkQueueFamilyProperties2 = {\n";
8611	s << "\tsType = " << value.sType << '\n';
8612	s << "\tpNext = " << value.pNext << '\n';
8613	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
8614	s << '}';
8615	return s;
8616}
8617
8618std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
8619{
8620	s << "VkPhysicalDeviceMemoryProperties2 = {\n";
8621	s << "\tsType = " << value.sType << '\n';
8622	s << "\tpNext = " << value.pNext << '\n';
8623	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
8624	s << '}';
8625	return s;
8626}
8627
8628std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
8629{
8630	s << "VkSparseImageFormatProperties2 = {\n";
8631	s << "\tsType = " << value.sType << '\n';
8632	s << "\tpNext = " << value.pNext << '\n';
8633	s << "\tproperties = " << value.properties << '\n';
8634	s << '}';
8635	return s;
8636}
8637
8638std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
8639{
8640	s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
8641	s << "\tsType = " << value.sType << '\n';
8642	s << "\tpNext = " << value.pNext << '\n';
8643	s << "\tformat = " << value.format << '\n';
8644	s << "\ttype = " << value.type << '\n';
8645	s << "\tsamples = " << value.samples << '\n';
8646	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8647	s << "\ttiling = " << value.tiling << '\n';
8648	s << '}';
8649	return s;
8650}
8651
8652std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorProperties& value)
8653{
8654	s << "VkPhysicalDevicePushDescriptorProperties = {\n";
8655	s << "\tsType = " << value.sType << '\n';
8656	s << "\tpNext = " << value.pNext << '\n';
8657	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
8658	s << '}';
8659	return s;
8660}
8661
8662std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
8663{
8664	s << "VkConformanceVersion = {\n";
8665	s << "\tmajor = " << value.major << '\n';
8666	s << "\tminor = " << value.minor << '\n';
8667	s << "\tsubminor = " << value.subminor << '\n';
8668	s << "\tpatch = " << value.patch << '\n';
8669	s << '}';
8670	return s;
8671}
8672
8673std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
8674{
8675	s << "VkPhysicalDeviceDriverProperties = {\n";
8676	s << "\tsType = " << value.sType << '\n';
8677	s << "\tpNext = " << value.pNext << '\n';
8678	s << "\tdriverID = " << value.driverID << '\n';
8679	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
8680	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
8681	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
8682	s << '}';
8683	return s;
8684}
8685
8686std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
8687{
8688	s << "VkPresentRegionsKHR = {\n";
8689	s << "\tsType = " << value.sType << '\n';
8690	s << "\tpNext = " << value.pNext << '\n';
8691	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8692	s << "\tpRegions = " << value.pRegions << '\n';
8693	s << '}';
8694	return s;
8695}
8696
8697std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
8698{
8699	s << "VkPresentRegionKHR = {\n";
8700	s << "\trectangleCount = " << value.rectangleCount << '\n';
8701	s << "\tpRectangles = " << value.pRectangles << '\n';
8702	s << '}';
8703	return s;
8704}
8705
8706std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
8707{
8708	s << "VkRectLayerKHR = {\n";
8709	s << "\toffset = " << value.offset << '\n';
8710	s << "\textent = " << value.extent << '\n';
8711	s << "\tlayer = " << value.layer << '\n';
8712	s << '}';
8713	return s;
8714}
8715
8716std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
8717{
8718	s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
8719	s << "\tsType = " << value.sType << '\n';
8720	s << "\tpNext = " << value.pNext << '\n';
8721	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
8722	s << "\tvariablePointers = " << value.variablePointers << '\n';
8723	s << '}';
8724	return s;
8725}
8726
8727std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
8728{
8729	s << "VkExternalMemoryProperties = {\n";
8730	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
8731	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8732	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8733	s << '}';
8734	return s;
8735}
8736
8737std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
8738{
8739	s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
8740	s << "\tsType = " << value.sType << '\n';
8741	s << "\tpNext = " << value.pNext << '\n';
8742	s << "\thandleType = " << value.handleType << '\n';
8743	s << '}';
8744	return s;
8745}
8746
8747std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
8748{
8749	s << "VkExternalImageFormatProperties = {\n";
8750	s << "\tsType = " << value.sType << '\n';
8751	s << "\tpNext = " << value.pNext << '\n';
8752	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
8753	s << '}';
8754	return s;
8755}
8756
8757std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
8758{
8759	s << "VkPhysicalDeviceExternalBufferInfo = {\n";
8760	s << "\tsType = " << value.sType << '\n';
8761	s << "\tpNext = " << value.pNext << '\n';
8762	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
8763	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
8764	s << "\thandleType = " << value.handleType << '\n';
8765	s << '}';
8766	return s;
8767}
8768
8769std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
8770{
8771	s << "VkExternalBufferProperties = {\n";
8772	s << "\tsType = " << value.sType << '\n';
8773	s << "\tpNext = " << value.pNext << '\n';
8774	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
8775	s << '}';
8776	return s;
8777}
8778
8779std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
8780{
8781	s << "VkPhysicalDeviceIDProperties = {\n";
8782	s << "\tsType = " << value.sType << '\n';
8783	s << "\tpNext = " << value.pNext << '\n';
8784	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';
8785	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';
8786	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';
8787	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
8788	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
8789	s << '}';
8790	return s;
8791}
8792
8793std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
8794{
8795	s << "VkExternalMemoryImageCreateInfo = {\n";
8796	s << "\tsType = " << value.sType << '\n';
8797	s << "\tpNext = " << value.pNext << '\n';
8798	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8799	s << '}';
8800	return s;
8801}
8802
8803std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
8804{
8805	s << "VkExternalMemoryBufferCreateInfo = {\n";
8806	s << "\tsType = " << value.sType << '\n';
8807	s << "\tpNext = " << value.pNext << '\n';
8808	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8809	s << '}';
8810	return s;
8811}
8812
8813std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
8814{
8815	s << "VkExportMemoryAllocateInfo = {\n";
8816	s << "\tsType = " << value.sType << '\n';
8817	s << "\tpNext = " << value.pNext << '\n';
8818	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
8819	s << '}';
8820	return s;
8821}
8822
8823std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
8824{
8825	s << "VkImportMemoryWin32HandleInfoKHR = {\n";
8826	s << "\tsType = " << value.sType << '\n';
8827	s << "\tpNext = " << value.pNext << '\n';
8828	s << "\thandleType = " << value.handleType << '\n';
8829	s << "\thandle = " << value.handle << '\n';
8830	s << "\tname = " << getWStr(value.name) << '\n';
8831	s << '}';
8832	return s;
8833}
8834
8835std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
8836{
8837	s << "VkExportMemoryWin32HandleInfoKHR = {\n";
8838	s << "\tsType = " << value.sType << '\n';
8839	s << "\tpNext = " << value.pNext << '\n';
8840	s << "\tpAttributes = " << value.pAttributes << '\n';
8841	s << "\tdwAccess = " << value.dwAccess << '\n';
8842	s << "\tname = " << getWStr(value.name) << '\n';
8843	s << '}';
8844	return s;
8845}
8846
8847std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
8848{
8849	s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
8850	s << "\tsType = " << value.sType << '\n';
8851	s << "\tpNext = " << value.pNext << '\n';
8852	s << "\thandleType = " << value.handleType << '\n';
8853	s << "\thandle = " << value.handle << '\n';
8854	s << '}';
8855	return s;
8856}
8857
8858std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
8859{
8860	s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
8861	s << "\tsType = " << value.sType << '\n';
8862	s << "\tpNext = " << value.pNext << '\n';
8863	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8864	s << '}';
8865	return s;
8866}
8867
8868std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
8869{
8870	s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
8871	s << "\tsType = " << value.sType << '\n';
8872	s << "\tpNext = " << value.pNext << '\n';
8873	s << "\tmemory = " << value.memory << '\n';
8874	s << "\thandleType = " << value.handleType << '\n';
8875	s << '}';
8876	return s;
8877}
8878
8879std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
8880{
8881	s << "VkMemoryWin32HandlePropertiesKHR = {\n";
8882	s << "\tsType = " << value.sType << '\n';
8883	s << "\tpNext = " << value.pNext << '\n';
8884	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8885	s << '}';
8886	return s;
8887}
8888
8889std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
8890{
8891	s << "VkMemoryGetWin32HandleInfoKHR = {\n";
8892	s << "\tsType = " << value.sType << '\n';
8893	s << "\tpNext = " << value.pNext << '\n';
8894	s << "\tmemory = " << value.memory << '\n';
8895	s << "\thandleType = " << value.handleType << '\n';
8896	s << '}';
8897	return s;
8898}
8899
8900std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
8901{
8902	s << "VkImportMemoryFdInfoKHR = {\n";
8903	s << "\tsType = " << value.sType << '\n';
8904	s << "\tpNext = " << value.pNext << '\n';
8905	s << "\thandleType = " << value.handleType << '\n';
8906	s << "\tfd = " << value.fd << '\n';
8907	s << '}';
8908	return s;
8909}
8910
8911std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
8912{
8913	s << "VkMemoryFdPropertiesKHR = {\n";
8914	s << "\tsType = " << value.sType << '\n';
8915	s << "\tpNext = " << value.pNext << '\n';
8916	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8917	s << '}';
8918	return s;
8919}
8920
8921std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
8922{
8923	s << "VkMemoryGetFdInfoKHR = {\n";
8924	s << "\tsType = " << value.sType << '\n';
8925	s << "\tpNext = " << value.pNext << '\n';
8926	s << "\tmemory = " << value.memory << '\n';
8927	s << "\thandleType = " << value.handleType << '\n';
8928	s << '}';
8929	return s;
8930}
8931
8932std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
8933{
8934	s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
8935	s << "\tsType = " << value.sType << '\n';
8936	s << "\tpNext = " << value.pNext << '\n';
8937	s << "\tacquireCount = " << value.acquireCount << '\n';
8938	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
8939	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
8940	s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
8941	s << "\treleaseCount = " << value.releaseCount << '\n';
8942	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
8943	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
8944	s << '}';
8945	return s;
8946}
8947
8948std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
8949{
8950	s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
8951	s << "\tsType = " << value.sType << '\n';
8952	s << "\tpNext = " << value.pNext << '\n';
8953	s << "\thandleType = " << value.handleType << '\n';
8954	s << '}';
8955	return s;
8956}
8957
8958std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
8959{
8960	s << "VkExternalSemaphoreProperties = {\n";
8961	s << "\tsType = " << value.sType << '\n';
8962	s << "\tpNext = " << value.pNext << '\n';
8963	s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
8964	s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
8965	s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
8966	s << '}';
8967	return s;
8968}
8969
8970std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
8971{
8972	s << "VkExportSemaphoreCreateInfo = {\n";
8973	s << "\tsType = " << value.sType << '\n';
8974	s << "\tpNext = " << value.pNext << '\n';
8975	s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
8976	s << '}';
8977	return s;
8978}
8979
8980std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
8981{
8982	s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
8983	s << "\tsType = " << value.sType << '\n';
8984	s << "\tpNext = " << value.pNext << '\n';
8985	s << "\tsemaphore = " << value.semaphore << '\n';
8986	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8987	s << "\thandleType = " << value.handleType << '\n';
8988	s << "\thandle = " << value.handle << '\n';
8989	s << "\tname = " << getWStr(value.name) << '\n';
8990	s << '}';
8991	return s;
8992}
8993
8994std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
8995{
8996	s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
8997	s << "\tsType = " << value.sType << '\n';
8998	s << "\tpNext = " << value.pNext << '\n';
8999	s << "\tpAttributes = " << value.pAttributes << '\n';
9000	s << "\tdwAccess = " << value.dwAccess << '\n';
9001	s << "\tname = " << getWStr(value.name) << '\n';
9002	s << '}';
9003	return s;
9004}
9005
9006std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
9007{
9008	s << "VkD3D12FenceSubmitInfoKHR = {\n";
9009	s << "\tsType = " << value.sType << '\n';
9010	s << "\tpNext = " << value.pNext << '\n';
9011	s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
9012	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
9013	s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
9014	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
9015	s << '}';
9016	return s;
9017}
9018
9019std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
9020{
9021	s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
9022	s << "\tsType = " << value.sType << '\n';
9023	s << "\tpNext = " << value.pNext << '\n';
9024	s << "\tsemaphore = " << value.semaphore << '\n';
9025	s << "\thandleType = " << value.handleType << '\n';
9026	s << '}';
9027	return s;
9028}
9029
9030std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
9031{
9032	s << "VkImportSemaphoreFdInfoKHR = {\n";
9033	s << "\tsType = " << value.sType << '\n';
9034	s << "\tpNext = " << value.pNext << '\n';
9035	s << "\tsemaphore = " << value.semaphore << '\n';
9036	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
9037	s << "\thandleType = " << value.handleType << '\n';
9038	s << "\tfd = " << value.fd << '\n';
9039	s << '}';
9040	return s;
9041}
9042
9043std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
9044{
9045	s << "VkSemaphoreGetFdInfoKHR = {\n";
9046	s << "\tsType = " << value.sType << '\n';
9047	s << "\tpNext = " << value.pNext << '\n';
9048	s << "\tsemaphore = " << value.semaphore << '\n';
9049	s << "\thandleType = " << value.handleType << '\n';
9050	s << '}';
9051	return s;
9052}
9053
9054std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
9055{
9056	s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
9057	s << "\tsType = " << value.sType << '\n';
9058	s << "\tpNext = " << value.pNext << '\n';
9059	s << "\tsemaphore = " << value.semaphore << '\n';
9060	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
9061	s << "\thandleType = " << value.handleType << '\n';
9062	s << "\tzirconHandle = " << value.zirconHandle << '\n';
9063	s << '}';
9064	return s;
9065}
9066
9067std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
9068{
9069	s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
9070	s << "\tsType = " << value.sType << '\n';
9071	s << "\tpNext = " << value.pNext << '\n';
9072	s << "\tsemaphore = " << value.semaphore << '\n';
9073	s << "\thandleType = " << value.handleType << '\n';
9074	s << '}';
9075	return s;
9076}
9077
9078std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
9079{
9080	s << "VkPhysicalDeviceExternalFenceInfo = {\n";
9081	s << "\tsType = " << value.sType << '\n';
9082	s << "\tpNext = " << value.pNext << '\n';
9083	s << "\thandleType = " << value.handleType << '\n';
9084	s << '}';
9085	return s;
9086}
9087
9088std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
9089{
9090	s << "VkExternalFenceProperties = {\n";
9091	s << "\tsType = " << value.sType << '\n';
9092	s << "\tpNext = " << value.pNext << '\n';
9093	s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
9094	s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
9095	s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
9096	s << '}';
9097	return s;
9098}
9099
9100std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
9101{
9102	s << "VkExportFenceCreateInfo = {\n";
9103	s << "\tsType = " << value.sType << '\n';
9104	s << "\tpNext = " << value.pNext << '\n';
9105	s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
9106	s << '}';
9107	return s;
9108}
9109
9110std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
9111{
9112	s << "VkImportFenceWin32HandleInfoKHR = {\n";
9113	s << "\tsType = " << value.sType << '\n';
9114	s << "\tpNext = " << value.pNext << '\n';
9115	s << "\tfence = " << value.fence << '\n';
9116	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
9117	s << "\thandleType = " << value.handleType << '\n';
9118	s << "\thandle = " << value.handle << '\n';
9119	s << "\tname = " << getWStr(value.name) << '\n';
9120	s << '}';
9121	return s;
9122}
9123
9124std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
9125{
9126	s << "VkExportFenceWin32HandleInfoKHR = {\n";
9127	s << "\tsType = " << value.sType << '\n';
9128	s << "\tpNext = " << value.pNext << '\n';
9129	s << "\tpAttributes = " << value.pAttributes << '\n';
9130	s << "\tdwAccess = " << value.dwAccess << '\n';
9131	s << "\tname = " << getWStr(value.name) << '\n';
9132	s << '}';
9133	return s;
9134}
9135
9136std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
9137{
9138	s << "VkFenceGetWin32HandleInfoKHR = {\n";
9139	s << "\tsType = " << value.sType << '\n';
9140	s << "\tpNext = " << value.pNext << '\n';
9141	s << "\tfence = " << value.fence << '\n';
9142	s << "\thandleType = " << value.handleType << '\n';
9143	s << '}';
9144	return s;
9145}
9146
9147std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
9148{
9149	s << "VkImportFenceFdInfoKHR = {\n";
9150	s << "\tsType = " << value.sType << '\n';
9151	s << "\tpNext = " << value.pNext << '\n';
9152	s << "\tfence = " << value.fence << '\n';
9153	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
9154	s << "\thandleType = " << value.handleType << '\n';
9155	s << "\tfd = " << value.fd << '\n';
9156	s << '}';
9157	return s;
9158}
9159
9160std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
9161{
9162	s << "VkFenceGetFdInfoKHR = {\n";
9163	s << "\tsType = " << value.sType << '\n';
9164	s << "\tpNext = " << value.pNext << '\n';
9165	s << "\tfence = " << value.fence << '\n';
9166	s << "\thandleType = " << value.handleType << '\n';
9167	s << '}';
9168	return s;
9169}
9170
9171std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
9172{
9173	s << "VkPhysicalDeviceMultiviewFeatures = {\n";
9174	s << "\tsType = " << value.sType << '\n';
9175	s << "\tpNext = " << value.pNext << '\n';
9176	s << "\tmultiview = " << value.multiview << '\n';
9177	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
9178	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
9179	s << '}';
9180	return s;
9181}
9182
9183std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
9184{
9185	s << "VkPhysicalDeviceMultiviewProperties = {\n";
9186	s << "\tsType = " << value.sType << '\n';
9187	s << "\tpNext = " << value.pNext << '\n';
9188	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
9189	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
9190	s << '}';
9191	return s;
9192}
9193
9194std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
9195{
9196	s << "VkRenderPassMultiviewCreateInfo = {\n";
9197	s << "\tsType = " << value.sType << '\n';
9198	s << "\tpNext = " << value.pNext << '\n';
9199	s << "\tsubpassCount = " << value.subpassCount << '\n';
9200	s << "\tpViewMasks = " << value.pViewMasks << '\n';
9201	s << "\tdependencyCount = " << value.dependencyCount << '\n';
9202	s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
9203	s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
9204	s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
9205	s << '}';
9206	return s;
9207}
9208
9209std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
9210{
9211	s << "VkSurfaceCapabilities2EXT = {\n";
9212	s << "\tsType = " << value.sType << '\n';
9213	s << "\tpNext = " << value.pNext << '\n';
9214	s << "\tminImageCount = " << value.minImageCount << '\n';
9215	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
9216	s << "\tcurrentExtent = " << value.currentExtent << '\n';
9217	s << "\tminImageExtent = " << value.minImageExtent << '\n';
9218	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
9219	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
9220	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
9221	s << "\tcurrentTransform = " << value.currentTransform << '\n';
9222	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
9223	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
9224	s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
9225	s << '}';
9226	return s;
9227}
9228
9229std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
9230{
9231	s << "VkDisplayPowerInfoEXT = {\n";
9232	s << "\tsType = " << value.sType << '\n';
9233	s << "\tpNext = " << value.pNext << '\n';
9234	s << "\tpowerState = " << value.powerState << '\n';
9235	s << '}';
9236	return s;
9237}
9238
9239std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
9240{
9241	s << "VkDeviceEventInfoEXT = {\n";
9242	s << "\tsType = " << value.sType << '\n';
9243	s << "\tpNext = " << value.pNext << '\n';
9244	s << "\tdeviceEvent = " << value.deviceEvent << '\n';
9245	s << '}';
9246	return s;
9247}
9248
9249std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
9250{
9251	s << "VkDisplayEventInfoEXT = {\n";
9252	s << "\tsType = " << value.sType << '\n';
9253	s << "\tpNext = " << value.pNext << '\n';
9254	s << "\tdisplayEvent = " << value.displayEvent << '\n';
9255	s << '}';
9256	return s;
9257}
9258
9259std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
9260{
9261	s << "VkSwapchainCounterCreateInfoEXT = {\n";
9262	s << "\tsType = " << value.sType << '\n';
9263	s << "\tpNext = " << value.pNext << '\n';
9264	s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
9265	s << '}';
9266	return s;
9267}
9268
9269std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
9270{
9271	s << "VkPhysicalDeviceGroupProperties = {\n";
9272	s << "\tsType = " << value.sType << '\n';
9273	s << "\tpNext = " << value.pNext << '\n';
9274	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
9275	s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
9276	s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
9277	s << '}';
9278	return s;
9279}
9280
9281std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
9282{
9283	s << "VkMemoryAllocateFlagsInfo = {\n";
9284	s << "\tsType = " << value.sType << '\n';
9285	s << "\tpNext = " << value.pNext << '\n';
9286	s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
9287	s << "\tdeviceMask = " << value.deviceMask << '\n';
9288	s << '}';
9289	return s;
9290}
9291
9292std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
9293{
9294	s << "VkBindBufferMemoryInfo = {\n";
9295	s << "\tsType = " << value.sType << '\n';
9296	s << "\tpNext = " << value.pNext << '\n';
9297	s << "\tbuffer = " << value.buffer << '\n';
9298	s << "\tmemory = " << value.memory << '\n';
9299	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
9300	s << '}';
9301	return s;
9302}
9303
9304std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
9305{
9306	s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
9307	s << "\tsType = " << value.sType << '\n';
9308	s << "\tpNext = " << value.pNext << '\n';
9309	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
9310	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
9311	s << '}';
9312	return s;
9313}
9314
9315std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
9316{
9317	s << "VkBindImageMemoryInfo = {\n";
9318	s << "\tsType = " << value.sType << '\n';
9319	s << "\tpNext = " << value.pNext << '\n';
9320	s << "\timage = " << value.image << '\n';
9321	s << "\tmemory = " << value.memory << '\n';
9322	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
9323	s << '}';
9324	return s;
9325}
9326
9327std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
9328{
9329	s << "VkBindImageMemoryDeviceGroupInfo = {\n";
9330	s << "\tsType = " << value.sType << '\n';
9331	s << "\tpNext = " << value.pNext << '\n';
9332	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
9333	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
9334	s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
9335	s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
9336	s << '}';
9337	return s;
9338}
9339
9340std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
9341{
9342	s << "VkDeviceGroupRenderPassBeginInfo = {\n";
9343	s << "\tsType = " << value.sType << '\n';
9344	s << "\tpNext = " << value.pNext << '\n';
9345	s << "\tdeviceMask = " << value.deviceMask << '\n';
9346	s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
9347	s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
9348	s << '}';
9349	return s;
9350}
9351
9352std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
9353{
9354	s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
9355	s << "\tsType = " << value.sType << '\n';
9356	s << "\tpNext = " << value.pNext << '\n';
9357	s << "\tdeviceMask = " << value.deviceMask << '\n';
9358	s << '}';
9359	return s;
9360}
9361
9362std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
9363{
9364	s << "VkDeviceGroupSubmitInfo = {\n";
9365	s << "\tsType = " << value.sType << '\n';
9366	s << "\tpNext = " << value.pNext << '\n';
9367	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
9368	s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
9369	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
9370	s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
9371	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
9372	s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
9373	s << '}';
9374	return s;
9375}
9376
9377std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
9378{
9379	s << "VkDeviceGroupBindSparseInfo = {\n";
9380	s << "\tsType = " << value.sType << '\n';
9381	s << "\tpNext = " << value.pNext << '\n';
9382	s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
9383	s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
9384	s << '}';
9385	return s;
9386}
9387
9388std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
9389{
9390	s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
9391	s << "\tsType = " << value.sType << '\n';
9392	s << "\tpNext = " << value.pNext << '\n';
9393	s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
9394	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
9395	s << '}';
9396	return s;
9397}
9398
9399std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
9400{
9401	s << "VkImageSwapchainCreateInfoKHR = {\n";
9402	s << "\tsType = " << value.sType << '\n';
9403	s << "\tpNext = " << value.pNext << '\n';
9404	s << "\tswapchain = " << value.swapchain << '\n';
9405	s << '}';
9406	return s;
9407}
9408
9409std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
9410{
9411	s << "VkBindImageMemorySwapchainInfoKHR = {\n";
9412	s << "\tsType = " << value.sType << '\n';
9413	s << "\tpNext = " << value.pNext << '\n';
9414	s << "\tswapchain = " << value.swapchain << '\n';
9415	s << "\timageIndex = " << value.imageIndex << '\n';
9416	s << '}';
9417	return s;
9418}
9419
9420std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
9421{
9422	s << "VkAcquireNextImageInfoKHR = {\n";
9423	s << "\tsType = " << value.sType << '\n';
9424	s << "\tpNext = " << value.pNext << '\n';
9425	s << "\tswapchain = " << value.swapchain << '\n';
9426	s << "\ttimeout = " << value.timeout << '\n';
9427	s << "\tsemaphore = " << value.semaphore << '\n';
9428	s << "\tfence = " << value.fence << '\n';
9429	s << "\tdeviceMask = " << value.deviceMask << '\n';
9430	s << '}';
9431	return s;
9432}
9433
9434std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
9435{
9436	s << "VkDeviceGroupPresentInfoKHR = {\n";
9437	s << "\tsType = " << value.sType << '\n';
9438	s << "\tpNext = " << value.pNext << '\n';
9439	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9440	s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
9441	s << "\tmode = " << value.mode << '\n';
9442	s << '}';
9443	return s;
9444}
9445
9446std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
9447{
9448	s << "VkDeviceGroupDeviceCreateInfo = {\n";
9449	s << "\tsType = " << value.sType << '\n';
9450	s << "\tpNext = " << value.pNext << '\n';
9451	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
9452	s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
9453	s << '}';
9454	return s;
9455}
9456
9457std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
9458{
9459	s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
9460	s << "\tsType = " << value.sType << '\n';
9461	s << "\tpNext = " << value.pNext << '\n';
9462	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
9463	s << '}';
9464	return s;
9465}
9466
9467std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
9468{
9469	s << "VkDescriptorUpdateTemplateEntry = {\n";
9470	s << "\tdstBinding = " << value.dstBinding << '\n';
9471	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
9472	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
9473	s << "\tdescriptorType = " << value.descriptorType << '\n';
9474	s << "\toffset = " << value.offset << '\n';
9475	s << "\tstride = " << value.stride << '\n';
9476	s << '}';
9477	return s;
9478}
9479
9480std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
9481{
9482	s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
9483	s << "\tsType = " << value.sType << '\n';
9484	s << "\tpNext = " << value.pNext << '\n';
9485	s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
9486	s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
9487	s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
9488	s << "\ttemplateType = " << value.templateType << '\n';
9489	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
9490	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
9491	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
9492	s << "\tset = " << value.set << '\n';
9493	s << '}';
9494	return s;
9495}
9496
9497std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
9498{
9499	s << "VkXYColorEXT = {\n";
9500	s << "\tx = " << value.x << '\n';
9501	s << "\ty = " << value.y << '\n';
9502	s << '}';
9503	return s;
9504}
9505
9506std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
9507{
9508	s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
9509	s << "\tsType = " << value.sType << '\n';
9510	s << "\tpNext = " << value.pNext << '\n';
9511	s << "\tpresentId = " << value.presentId << '\n';
9512	s << '}';
9513	return s;
9514}
9515
9516std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
9517{
9518	s << "VkPresentIdKHR = {\n";
9519	s << "\tsType = " << value.sType << '\n';
9520	s << "\tpNext = " << value.pNext << '\n';
9521	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9522	s << "\tpPresentIds = " << value.pPresentIds << '\n';
9523	s << '}';
9524	return s;
9525}
9526
9527std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
9528{
9529	s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
9530	s << "\tsType = " << value.sType << '\n';
9531	s << "\tpNext = " << value.pNext << '\n';
9532	s << "\tpresentWait = " << value.presentWait << '\n';
9533	s << '}';
9534	return s;
9535}
9536
9537std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
9538{
9539	s << "VkHdrMetadataEXT = {\n";
9540	s << "\tsType = " << value.sType << '\n';
9541	s << "\tpNext = " << value.pNext << '\n';
9542	s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
9543	s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
9544	s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
9545	s << "\twhitePoint = " << value.whitePoint << '\n';
9546	s << "\tmaxLuminance = " << value.maxLuminance << '\n';
9547	s << "\tminLuminance = " << value.minLuminance << '\n';
9548	s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
9549	s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
9550	s << '}';
9551	return s;
9552}
9553
9554std::ostream& operator<< (std::ostream& s, const VkHdrVividDynamicMetadataHUAWEI& value)
9555{
9556	s << "VkHdrVividDynamicMetadataHUAWEI = {\n";
9557	s << "\tsType = " << value.sType << '\n';
9558	s << "\tpNext = " << value.pNext << '\n';
9559	s << "\tdynamicMetadataSize = " << value.dynamicMetadataSize << '\n';
9560	s << "\tpDynamicMetadata = " << value.pDynamicMetadata << '\n';
9561	s << '}';
9562	return s;
9563}
9564
9565std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
9566{
9567	s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
9568	s << "\tsType = " << value.sType << '\n';
9569	s << "\tpNext = " << value.pNext << '\n';
9570	s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
9571	s << '}';
9572	return s;
9573}
9574
9575std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
9576{
9577	s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
9578	s << "\tsType = " << value.sType << '\n';
9579	s << "\tpNext = " << value.pNext << '\n';
9580	s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
9581	s << '}';
9582	return s;
9583}
9584
9585std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
9586{
9587	s << "VkRefreshCycleDurationGOOGLE = {\n";
9588	s << "\trefreshDuration = " << value.refreshDuration << '\n';
9589	s << '}';
9590	return s;
9591}
9592
9593std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
9594{
9595	s << "VkPastPresentationTimingGOOGLE = {\n";
9596	s << "\tpresentID = " << value.presentID << '\n';
9597	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9598	s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
9599	s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
9600	s << "\tpresentMargin = " << value.presentMargin << '\n';
9601	s << '}';
9602	return s;
9603}
9604
9605std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
9606{
9607	s << "VkPresentTimesInfoGOOGLE = {\n";
9608	s << "\tsType = " << value.sType << '\n';
9609	s << "\tpNext = " << value.pNext << '\n';
9610	s << "\tswapchainCount = " << value.swapchainCount << '\n';
9611	s << "\tpTimes = " << value.pTimes << '\n';
9612	s << '}';
9613	return s;
9614}
9615
9616std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
9617{
9618	s << "VkPresentTimeGOOGLE = {\n";
9619	s << "\tpresentID = " << value.presentID << '\n';
9620	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9621	s << '}';
9622	return s;
9623}
9624
9625std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
9626{
9627	s << "VkIOSSurfaceCreateInfoMVK = {\n";
9628	s << "\tsType = " << value.sType << '\n';
9629	s << "\tpNext = " << value.pNext << '\n';
9630	s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
9631	s << "\tpView = " << value.pView << '\n';
9632	s << '}';
9633	return s;
9634}
9635
9636std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
9637{
9638	s << "VkMacOSSurfaceCreateInfoMVK = {\n";
9639	s << "\tsType = " << value.sType << '\n';
9640	s << "\tpNext = " << value.pNext << '\n';
9641	s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
9642	s << "\tpView = " << value.pView << '\n';
9643	s << '}';
9644	return s;
9645}
9646
9647std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
9648{
9649	s << "VkMetalSurfaceCreateInfoEXT = {\n";
9650	s << "\tsType = " << value.sType << '\n';
9651	s << "\tpNext = " << value.pNext << '\n';
9652	s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
9653	s << "\tpLayer = " << value.pLayer << '\n';
9654	s << '}';
9655	return s;
9656}
9657
9658std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
9659{
9660	s << "VkViewportWScalingNV = {\n";
9661	s << "\txcoeff = " << value.xcoeff << '\n';
9662	s << "\tycoeff = " << value.ycoeff << '\n';
9663	s << '}';
9664	return s;
9665}
9666
9667std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
9668{
9669	s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
9670	s << "\tsType = " << value.sType << '\n';
9671	s << "\tpNext = " << value.pNext << '\n';
9672	s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
9673	s << "\tviewportCount = " << value.viewportCount << '\n';
9674	s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
9675	s << '}';
9676	return s;
9677}
9678
9679std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
9680{
9681	s << "VkViewportSwizzleNV = {\n";
9682	s << "\tx = " << value.x << '\n';
9683	s << "\ty = " << value.y << '\n';
9684	s << "\tz = " << value.z << '\n';
9685	s << "\tw = " << value.w << '\n';
9686	s << '}';
9687	return s;
9688}
9689
9690std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
9691{
9692	s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
9693	s << "\tsType = " << value.sType << '\n';
9694	s << "\tpNext = " << value.pNext << '\n';
9695	s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
9696	s << "\tviewportCount = " << value.viewportCount << '\n';
9697	s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
9698	s << '}';
9699	return s;
9700}
9701
9702std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
9703{
9704	s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
9705	s << "\tsType = " << value.sType << '\n';
9706	s << "\tpNext = " << value.pNext << '\n';
9707	s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
9708	s << '}';
9709	return s;
9710}
9711
9712std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
9713{
9714	s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
9715	s << "\tsType = " << value.sType << '\n';
9716	s << "\tpNext = " << value.pNext << '\n';
9717	s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
9718	s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
9719	s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
9720	s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
9721	s << '}';
9722	return s;
9723}
9724
9725std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
9726{
9727	s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
9728	s << "\tsType = " << value.sType << '\n';
9729	s << "\tpNext = " << value.pNext << '\n';
9730	s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
9731	s << '}';
9732	return s;
9733}
9734
9735std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
9736{
9737	s << "VkInputAttachmentAspectReference = {\n";
9738	s << "\tsubpass = " << value.subpass << '\n';
9739	s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
9740	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
9741	s << '}';
9742	return s;
9743}
9744
9745std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
9746{
9747	s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
9748	s << "\tsType = " << value.sType << '\n';
9749	s << "\tpNext = " << value.pNext << '\n';
9750	s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
9751	s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
9752	s << '}';
9753	return s;
9754}
9755
9756std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
9757{
9758	s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
9759	s << "\tsType = " << value.sType << '\n';
9760	s << "\tpNext = " << value.pNext << '\n';
9761	s << "\tsurface = " << value.surface << '\n';
9762	s << '}';
9763	return s;
9764}
9765
9766std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
9767{
9768	s << "VkSurfaceCapabilities2KHR = {\n";
9769	s << "\tsType = " << value.sType << '\n';
9770	s << "\tpNext = " << value.pNext << '\n';
9771	s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
9772	s << '}';
9773	return s;
9774}
9775
9776std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
9777{
9778	s << "VkSurfaceFormat2KHR = {\n";
9779	s << "\tsType = " << value.sType << '\n';
9780	s << "\tpNext = " << value.pNext << '\n';
9781	s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
9782	s << '}';
9783	return s;
9784}
9785
9786std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
9787{
9788	s << "VkDisplayProperties2KHR = {\n";
9789	s << "\tsType = " << value.sType << '\n';
9790	s << "\tpNext = " << value.pNext << '\n';
9791	s << "\tdisplayProperties = " << value.displayProperties << '\n';
9792	s << '}';
9793	return s;
9794}
9795
9796std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
9797{
9798	s << "VkDisplayPlaneProperties2KHR = {\n";
9799	s << "\tsType = " << value.sType << '\n';
9800	s << "\tpNext = " << value.pNext << '\n';
9801	s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
9802	s << '}';
9803	return s;
9804}
9805
9806std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
9807{
9808	s << "VkDisplayModeProperties2KHR = {\n";
9809	s << "\tsType = " << value.sType << '\n';
9810	s << "\tpNext = " << value.pNext << '\n';
9811	s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
9812	s << '}';
9813	return s;
9814}
9815
9816std::ostream& operator<< (std::ostream& s, const VkDisplayModeStereoPropertiesNV& value)
9817{
9818	s << "VkDisplayModeStereoPropertiesNV = {\n";
9819	s << "\tsType = " << value.sType << '\n';
9820	s << "\tpNext = " << value.pNext << '\n';
9821	s << "\thdmi3DSupported = " << value.hdmi3DSupported << '\n';
9822	s << '}';
9823	return s;
9824}
9825
9826std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
9827{
9828	s << "VkDisplayPlaneInfo2KHR = {\n";
9829	s << "\tsType = " << value.sType << '\n';
9830	s << "\tpNext = " << value.pNext << '\n';
9831	s << "\tmode = " << value.mode << '\n';
9832	s << "\tplaneIndex = " << value.planeIndex << '\n';
9833	s << '}';
9834	return s;
9835}
9836
9837std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
9838{
9839	s << "VkDisplayPlaneCapabilities2KHR = {\n";
9840	s << "\tsType = " << value.sType << '\n';
9841	s << "\tpNext = " << value.pNext << '\n';
9842	s << "\tcapabilities = " << value.capabilities << '\n';
9843	s << '}';
9844	return s;
9845}
9846
9847std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
9848{
9849	s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
9850	s << "\tsType = " << value.sType << '\n';
9851	s << "\tpNext = " << value.pNext << '\n';
9852	s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
9853	s << '}';
9854	return s;
9855}
9856
9857std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
9858{
9859	s << "VkPhysicalDevice16BitStorageFeatures = {\n";
9860	s << "\tsType = " << value.sType << '\n';
9861	s << "\tpNext = " << value.pNext << '\n';
9862	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
9863	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
9864	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
9865	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
9866	s << '}';
9867	return s;
9868}
9869
9870std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
9871{
9872	s << "VkPhysicalDeviceSubgroupProperties = {\n";
9873	s << "\tsType = " << value.sType << '\n';
9874	s << "\tpNext = " << value.pNext << '\n';
9875	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
9876	s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
9877	s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
9878	s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
9879	s << '}';
9880	return s;
9881}
9882
9883std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
9884{
9885	s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
9886	s << "\tsType = " << value.sType << '\n';
9887	s << "\tpNext = " << value.pNext << '\n';
9888	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
9889	s << '}';
9890	return s;
9891}
9892
9893std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
9894{
9895	s << "VkBufferMemoryRequirementsInfo2 = {\n";
9896	s << "\tsType = " << value.sType << '\n';
9897	s << "\tpNext = " << value.pNext << '\n';
9898	s << "\tbuffer = " << value.buffer << '\n';
9899	s << '}';
9900	return s;
9901}
9902
9903std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
9904{
9905	s << "VkDeviceBufferMemoryRequirements = {\n";
9906	s << "\tsType = " << value.sType << '\n';
9907	s << "\tpNext = " << value.pNext << '\n';
9908	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
9909	s << '}';
9910	return s;
9911}
9912
9913std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
9914{
9915	s << "VkImageMemoryRequirementsInfo2 = {\n";
9916	s << "\tsType = " << value.sType << '\n';
9917	s << "\tpNext = " << value.pNext << '\n';
9918	s << "\timage = " << value.image << '\n';
9919	s << '}';
9920	return s;
9921}
9922
9923std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
9924{
9925	s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
9926	s << "\tsType = " << value.sType << '\n';
9927	s << "\tpNext = " << value.pNext << '\n';
9928	s << "\timage = " << value.image << '\n';
9929	s << '}';
9930	return s;
9931}
9932
9933std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
9934{
9935	s << "VkDeviceImageMemoryRequirements = {\n";
9936	s << "\tsType = " << value.sType << '\n';
9937	s << "\tpNext = " << value.pNext << '\n';
9938	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
9939	s << "\tplaneAspect = " << value.planeAspect << '\n';
9940	s << '}';
9941	return s;
9942}
9943
9944std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
9945{
9946	s << "VkMemoryRequirements2 = {\n";
9947	s << "\tsType = " << value.sType << '\n';
9948	s << "\tpNext = " << value.pNext << '\n';
9949	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
9950	s << '}';
9951	return s;
9952}
9953
9954std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
9955{
9956	s << "VkSparseImageMemoryRequirements2 = {\n";
9957	s << "\tsType = " << value.sType << '\n';
9958	s << "\tpNext = " << value.pNext << '\n';
9959	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
9960	s << '}';
9961	return s;
9962}
9963
9964std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
9965{
9966	s << "VkPhysicalDevicePointClippingProperties = {\n";
9967	s << "\tsType = " << value.sType << '\n';
9968	s << "\tpNext = " << value.pNext << '\n';
9969	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
9970	s << '}';
9971	return s;
9972}
9973
9974std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
9975{
9976	s << "VkMemoryDedicatedRequirements = {\n";
9977	s << "\tsType = " << value.sType << '\n';
9978	s << "\tpNext = " << value.pNext << '\n';
9979	s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
9980	s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
9981	s << '}';
9982	return s;
9983}
9984
9985std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
9986{
9987	s << "VkMemoryDedicatedAllocateInfo = {\n";
9988	s << "\tsType = " << value.sType << '\n';
9989	s << "\tpNext = " << value.pNext << '\n';
9990	s << "\timage = " << value.image << '\n';
9991	s << "\tbuffer = " << value.buffer << '\n';
9992	s << '}';
9993	return s;
9994}
9995
9996std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
9997{
9998	s << "VkImageViewUsageCreateInfo = {\n";
9999	s << "\tsType = " << value.sType << '\n';
10000	s << "\tpNext = " << value.pNext << '\n';
10001	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
10002	s << '}';
10003	return s;
10004}
10005
10006std::ostream& operator<< (std::ostream& s, const VkImageViewSlicedCreateInfoEXT& value)
10007{
10008	s << "VkImageViewSlicedCreateInfoEXT = {\n";
10009	s << "\tsType = " << value.sType << '\n';
10010	s << "\tpNext = " << value.pNext << '\n';
10011	s << "\tsliceOffset = " << value.sliceOffset << '\n';
10012	s << "\tsliceCount = " << value.sliceCount << '\n';
10013	s << '}';
10014	return s;
10015}
10016
10017std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
10018{
10019	s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
10020	s << "\tsType = " << value.sType << '\n';
10021	s << "\tpNext = " << value.pNext << '\n';
10022	s << "\tdomainOrigin = " << value.domainOrigin << '\n';
10023	s << '}';
10024	return s;
10025}
10026
10027std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
10028{
10029	s << "VkSamplerYcbcrConversionInfo = {\n";
10030	s << "\tsType = " << value.sType << '\n';
10031	s << "\tpNext = " << value.pNext << '\n';
10032	s << "\tconversion = " << value.conversion << '\n';
10033	s << '}';
10034	return s;
10035}
10036
10037std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
10038{
10039	s << "VkSamplerYcbcrConversionCreateInfo = {\n";
10040	s << "\tsType = " << value.sType << '\n';
10041	s << "\tpNext = " << value.pNext << '\n';
10042	s << "\tformat = " << value.format << '\n';
10043	s << "\tycbcrModel = " << value.ycbcrModel << '\n';
10044	s << "\tycbcrRange = " << value.ycbcrRange << '\n';
10045	s << "\tcomponents = " << value.components << '\n';
10046	s << "\txChromaOffset = " << value.xChromaOffset << '\n';
10047	s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
10048	s << "\tchromaFilter = " << value.chromaFilter << '\n';
10049	s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
10050	s << '}';
10051	return s;
10052}
10053
10054std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
10055{
10056	s << "VkBindImagePlaneMemoryInfo = {\n";
10057	s << "\tsType = " << value.sType << '\n';
10058	s << "\tpNext = " << value.pNext << '\n';
10059	s << "\tplaneAspect = " << value.planeAspect << '\n';
10060	s << '}';
10061	return s;
10062}
10063
10064std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
10065{
10066	s << "VkImagePlaneMemoryRequirementsInfo = {\n";
10067	s << "\tsType = " << value.sType << '\n';
10068	s << "\tpNext = " << value.pNext << '\n';
10069	s << "\tplaneAspect = " << value.planeAspect << '\n';
10070	s << '}';
10071	return s;
10072}
10073
10074std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
10075{
10076	s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
10077	s << "\tsType = " << value.sType << '\n';
10078	s << "\tpNext = " << value.pNext << '\n';
10079	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
10080	s << '}';
10081	return s;
10082}
10083
10084std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
10085{
10086	s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
10087	s << "\tsType = " << value.sType << '\n';
10088	s << "\tpNext = " << value.pNext << '\n';
10089	s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
10090	s << '}';
10091	return s;
10092}
10093
10094std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
10095{
10096	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
10097	s << "\tsType = " << value.sType << '\n';
10098	s << "\tpNext = " << value.pNext << '\n';
10099	s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
10100	s << '}';
10101	return s;
10102}
10103
10104std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
10105{
10106	s << "VkConditionalRenderingBeginInfoEXT = {\n";
10107	s << "\tsType = " << value.sType << '\n';
10108	s << "\tpNext = " << value.pNext << '\n';
10109	s << "\tbuffer = " << value.buffer << '\n';
10110	s << "\toffset = " << value.offset << '\n';
10111	s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
10112	s << '}';
10113	return s;
10114}
10115
10116std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
10117{
10118	s << "VkProtectedSubmitInfo = {\n";
10119	s << "\tsType = " << value.sType << '\n';
10120	s << "\tpNext = " << value.pNext << '\n';
10121	s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
10122	s << '}';
10123	return s;
10124}
10125
10126std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
10127{
10128	s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
10129	s << "\tsType = " << value.sType << '\n';
10130	s << "\tpNext = " << value.pNext << '\n';
10131	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
10132	s << '}';
10133	return s;
10134}
10135
10136std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
10137{
10138	s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
10139	s << "\tsType = " << value.sType << '\n';
10140	s << "\tpNext = " << value.pNext << '\n';
10141	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
10142	s << '}';
10143	return s;
10144}
10145
10146std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
10147{
10148	s << "VkDeviceQueueInfo2 = {\n";
10149	s << "\tsType = " << value.sType << '\n';
10150	s << "\tpNext = " << value.pNext << '\n';
10151	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
10152	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
10153	s << "\tqueueIndex = " << value.queueIndex << '\n';
10154	s << '}';
10155	return s;
10156}
10157
10158std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
10159{
10160	s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
10161	s << "\tsType = " << value.sType << '\n';
10162	s << "\tpNext = " << value.pNext << '\n';
10163	s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
10164	s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
10165	s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
10166	s << '}';
10167	return s;
10168}
10169
10170std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
10171{
10172	s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
10173	s << "\tsType = " << value.sType << '\n';
10174	s << "\tpNext = " << value.pNext << '\n';
10175	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
10176	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
10177	s << '}';
10178	return s;
10179}
10180
10181std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
10182{
10183	s << "VkSampleLocationEXT = {\n";
10184	s << "\tx = " << value.x << '\n';
10185	s << "\ty = " << value.y << '\n';
10186	s << '}';
10187	return s;
10188}
10189
10190std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
10191{
10192	s << "VkSampleLocationsInfoEXT = {\n";
10193	s << "\tsType = " << value.sType << '\n';
10194	s << "\tpNext = " << value.pNext << '\n';
10195	s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
10196	s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
10197	s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
10198	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10199	s << '}';
10200	return s;
10201}
10202
10203std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
10204{
10205	s << "VkAttachmentSampleLocationsEXT = {\n";
10206	s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
10207	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10208	s << '}';
10209	return s;
10210}
10211
10212std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
10213{
10214	s << "VkSubpassSampleLocationsEXT = {\n";
10215	s << "\tsubpassIndex = " << value.subpassIndex << '\n';
10216	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10217	s << '}';
10218	return s;
10219}
10220
10221std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
10222{
10223	s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
10224	s << "\tsType = " << value.sType << '\n';
10225	s << "\tpNext = " << value.pNext << '\n';
10226	s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
10227	s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
10228	s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
10229	s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
10230	s << '}';
10231	return s;
10232}
10233
10234std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
10235{
10236	s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
10237	s << "\tsType = " << value.sType << '\n';
10238	s << "\tpNext = " << value.pNext << '\n';
10239	s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
10240	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10241	s << '}';
10242	return s;
10243}
10244
10245std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
10246{
10247	s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
10248	s << "\tsType = " << value.sType << '\n';
10249	s << "\tpNext = " << value.pNext << '\n';
10250	s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
10251	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10252	s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
10253	s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
10254	s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
10255	s << '}';
10256	return s;
10257}
10258
10259std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
10260{
10261	s << "VkMultisamplePropertiesEXT = {\n";
10262	s << "\tsType = " << value.sType << '\n';
10263	s << "\tpNext = " << value.pNext << '\n';
10264	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10265	s << '}';
10266	return s;
10267}
10268
10269std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
10270{
10271	s << "VkSamplerReductionModeCreateInfo = {\n";
10272	s << "\tsType = " << value.sType << '\n';
10273	s << "\tpNext = " << value.pNext << '\n';
10274	s << "\treductionMode = " << value.reductionMode << '\n';
10275	s << '}';
10276	return s;
10277}
10278
10279std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
10280{
10281	s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
10282	s << "\tsType = " << value.sType << '\n';
10283	s << "\tpNext = " << value.pNext << '\n';
10284	s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
10285	s << '}';
10286	return s;
10287}
10288
10289std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
10290{
10291	s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
10292	s << "\tsType = " << value.sType << '\n';
10293	s << "\tpNext = " << value.pNext << '\n';
10294	s << "\tmultiDraw = " << value.multiDraw << '\n';
10295	s << '}';
10296	return s;
10297}
10298
10299std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
10300{
10301	s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
10302	s << "\tsType = " << value.sType << '\n';
10303	s << "\tpNext = " << value.pNext << '\n';
10304	s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
10305	s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
10306	s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
10307	s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
10308	s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
10309	s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
10310	s << '}';
10311	return s;
10312}
10313
10314std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
10315{
10316	s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
10317	s << "\tsType = " << value.sType << '\n';
10318	s << "\tpNext = " << value.pNext << '\n';
10319	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
10320	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
10321	s << "\tblendOverlap = " << value.blendOverlap << '\n';
10322	s << '}';
10323	return s;
10324}
10325
10326std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
10327{
10328	s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
10329	s << "\tsType = " << value.sType << '\n';
10330	s << "\tpNext = " << value.pNext << '\n';
10331	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
10332	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
10333	s << '}';
10334	return s;
10335}
10336
10337std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
10338{
10339	s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
10340	s << "\tsType = " << value.sType << '\n';
10341	s << "\tpNext = " << value.pNext << '\n';
10342	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
10343	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
10344	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
10345	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
10346	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
10347	s << '}';
10348	return s;
10349}
10350
10351std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
10352{
10353	s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
10354	s << "\tsType = " << value.sType << '\n';
10355	s << "\tpNext = " << value.pNext << '\n';
10356	s << "\tdataSize = " << value.dataSize << '\n';
10357	s << "\tpData = " << value.pData << '\n';
10358	s << '}';
10359	return s;
10360}
10361
10362std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
10363{
10364	s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
10365	s << "\tsType = " << value.sType << '\n';
10366	s << "\tpNext = " << value.pNext << '\n';
10367	s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
10368	s << '}';
10369	return s;
10370}
10371
10372std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
10373{
10374	s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
10375	s << "\tsType = " << value.sType << '\n';
10376	s << "\tpNext = " << value.pNext << '\n';
10377	s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
10378	s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
10379	s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
10380	s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
10381	s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
10382	s << '}';
10383	return s;
10384}
10385
10386std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
10387{
10388	s << "VkImageFormatListCreateInfo = {\n";
10389	s << "\tsType = " << value.sType << '\n';
10390	s << "\tpNext = " << value.pNext << '\n';
10391	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
10392	s << "\tpViewFormats = " << value.pViewFormats << '\n';
10393	s << '}';
10394	return s;
10395}
10396
10397std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
10398{
10399	s << "VkValidationCacheCreateInfoEXT = {\n";
10400	s << "\tsType = " << value.sType << '\n';
10401	s << "\tpNext = " << value.pNext << '\n';
10402	s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
10403	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
10404	s << "\tpInitialData = " << value.pInitialData << '\n';
10405	s << '}';
10406	return s;
10407}
10408
10409std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
10410{
10411	s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
10412	s << "\tsType = " << value.sType << '\n';
10413	s << "\tpNext = " << value.pNext << '\n';
10414	s << "\tvalidationCache = " << value.validationCache << '\n';
10415	s << '}';
10416	return s;
10417}
10418
10419std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
10420{
10421	s << "VkPhysicalDeviceMaintenance3Properties = {\n";
10422	s << "\tsType = " << value.sType << '\n';
10423	s << "\tpNext = " << value.pNext << '\n';
10424	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
10425	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
10426	s << '}';
10427	return s;
10428}
10429
10430std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
10431{
10432	s << "VkPhysicalDeviceMaintenance4Features = {\n";
10433	s << "\tsType = " << value.sType << '\n';
10434	s << "\tpNext = " << value.pNext << '\n';
10435	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
10436	s << '}';
10437	return s;
10438}
10439
10440std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
10441{
10442	s << "VkPhysicalDeviceMaintenance4Properties = {\n";
10443	s << "\tsType = " << value.sType << '\n';
10444	s << "\tpNext = " << value.pNext << '\n';
10445	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
10446	s << '}';
10447	return s;
10448}
10449
10450std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance5Features& value)
10451{
10452	s << "VkPhysicalDeviceMaintenance5Features = {\n";
10453	s << "\tsType = " << value.sType << '\n';
10454	s << "\tpNext = " << value.pNext << '\n';
10455	s << "\tmaintenance5 = " << value.maintenance5 << '\n';
10456	s << '}';
10457	return s;
10458}
10459
10460std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance5Properties& value)
10461{
10462	s << "VkPhysicalDeviceMaintenance5Properties = {\n";
10463	s << "\tsType = " << value.sType << '\n';
10464	s << "\tpNext = " << value.pNext << '\n';
10465	s << "\tearlyFragmentMultisampleCoverageAfterSampleCounting = " << value.earlyFragmentMultisampleCoverageAfterSampleCounting << '\n';
10466	s << "\tearlyFragmentSampleMaskTestBeforeSampleCounting = " << value.earlyFragmentSampleMaskTestBeforeSampleCounting << '\n';
10467	s << "\tdepthStencilSwizzleOneSupport = " << value.depthStencilSwizzleOneSupport << '\n';
10468	s << "\tpolygonModePointSize = " << value.polygonModePointSize << '\n';
10469	s << "\tnonStrictSinglePixelWideLinesUseParallelogram = " << value.nonStrictSinglePixelWideLinesUseParallelogram << '\n';
10470	s << "\tnonStrictWideLinesUseParallelogram = " << value.nonStrictWideLinesUseParallelogram << '\n';
10471	s << '}';
10472	return s;
10473}
10474
10475std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance6Features& value)
10476{
10477	s << "VkPhysicalDeviceMaintenance6Features = {\n";
10478	s << "\tsType = " << value.sType << '\n';
10479	s << "\tpNext = " << value.pNext << '\n';
10480	s << "\tmaintenance6 = " << value.maintenance6 << '\n';
10481	s << '}';
10482	return s;
10483}
10484
10485std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance6Properties& value)
10486{
10487	s << "VkPhysicalDeviceMaintenance6Properties = {\n";
10488	s << "\tsType = " << value.sType << '\n';
10489	s << "\tpNext = " << value.pNext << '\n';
10490	s << "\tblockTexelViewCompatibleMultipleLayers = " << value.blockTexelViewCompatibleMultipleLayers << '\n';
10491	s << "\tmaxCombinedImageSamplerDescriptorCount = " << value.maxCombinedImageSamplerDescriptorCount << '\n';
10492	s << "\tfragmentShadingRateClampCombinerInputs = " << value.fragmentShadingRateClampCombinerInputs << '\n';
10493	s << '}';
10494	return s;
10495}
10496
10497std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance7FeaturesKHR& value)
10498{
10499	s << "VkPhysicalDeviceMaintenance7FeaturesKHR = {\n";
10500	s << "\tsType = " << value.sType << '\n';
10501	s << "\tpNext = " << value.pNext << '\n';
10502	s << "\tmaintenance7 = " << value.maintenance7 << '\n';
10503	s << '}';
10504	return s;
10505}
10506
10507std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance7PropertiesKHR& value)
10508{
10509	s << "VkPhysicalDeviceMaintenance7PropertiesKHR = {\n";
10510	s << "\tsType = " << value.sType << '\n';
10511	s << "\tpNext = " << value.pNext << '\n';
10512	s << "\trobustFragmentShadingRateAttachmentAccess = " << value.robustFragmentShadingRateAttachmentAccess << '\n';
10513	s << "\tseparateDepthStencilAttachmentAccess = " << value.separateDepthStencilAttachmentAccess << '\n';
10514	s << "\tmaxDescriptorSetTotalUniformBuffersDynamic = " << value.maxDescriptorSetTotalUniformBuffersDynamic << '\n';
10515	s << "\tmaxDescriptorSetTotalStorageBuffersDynamic = " << value.maxDescriptorSetTotalStorageBuffersDynamic << '\n';
10516	s << "\tmaxDescriptorSetTotalBuffersDynamic = " << value.maxDescriptorSetTotalBuffersDynamic << '\n';
10517	s << "\tmaxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic << '\n';
10518	s << "\tmaxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic << '\n';
10519	s << "\tmaxDescriptorSetUpdateAfterBindTotalBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindTotalBuffersDynamic << '\n';
10520	s << '}';
10521	return s;
10522}
10523
10524std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLayeredApiPropertiesListKHR& value)
10525{
10526	s << "VkPhysicalDeviceLayeredApiPropertiesListKHR = {\n";
10527	s << "\tsType = " << value.sType << '\n';
10528	s << "\tpNext = " << value.pNext << '\n';
10529	s << "\tlayeredApiCount = " << value.layeredApiCount << '\n';
10530	s << "\tpLayeredApis = " << value.pLayeredApis << '\n';
10531	s << '}';
10532	return s;
10533}
10534
10535std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLayeredApiPropertiesKHR& value)
10536{
10537	s << "VkPhysicalDeviceLayeredApiPropertiesKHR = {\n";
10538	s << "\tsType = " << value.sType << '\n';
10539	s << "\tpNext = " << value.pNext << '\n';
10540	s << "\tvendorID = " << value.vendorID << '\n';
10541	s << "\tdeviceID = " << value.deviceID << '\n';
10542	s << "\tlayeredAPI = " << value.layeredAPI << '\n';
10543	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
10544	s << '}';
10545	return s;
10546}
10547
10548std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLayeredApiVulkanPropertiesKHR& value)
10549{
10550	s << "VkPhysicalDeviceLayeredApiVulkanPropertiesKHR = {\n";
10551	s << "\tsType = " << value.sType << '\n';
10552	s << "\tpNext = " << value.pNext << '\n';
10553	s << "\tproperties = " << value.properties << '\n';
10554	s << '}';
10555	return s;
10556}
10557
10558std::ostream& operator<< (std::ostream& s, const VkRenderingAreaInfo& value)
10559{
10560	s << "VkRenderingAreaInfo = {\n";
10561	s << "\tsType = " << value.sType << '\n';
10562	s << "\tpNext = " << value.pNext << '\n';
10563	s << "\tviewMask = " << value.viewMask << '\n';
10564	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
10565	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
10566	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
10567	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
10568	s << '}';
10569	return s;
10570}
10571
10572std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
10573{
10574	s << "VkDescriptorSetLayoutSupport = {\n";
10575	s << "\tsType = " << value.sType << '\n';
10576	s << "\tpNext = " << value.pNext << '\n';
10577	s << "\tsupported = " << value.supported << '\n';
10578	s << '}';
10579	return s;
10580}
10581
10582std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
10583{
10584	s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
10585	s << "\tsType = " << value.sType << '\n';
10586	s << "\tpNext = " << value.pNext << '\n';
10587	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
10588	s << '}';
10589	return s;
10590}
10591
10592std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
10593{
10594	s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
10595	s << "\tsType = " << value.sType << '\n';
10596	s << "\tpNext = " << value.pNext << '\n';
10597	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
10598	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
10599	s << '}';
10600	return s;
10601}
10602
10603std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
10604{
10605	s << "VkPhysicalDeviceFloatControlsProperties = {\n";
10606	s << "\tsType = " << value.sType << '\n';
10607	s << "\tpNext = " << value.pNext << '\n';
10608	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
10609	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
10610	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
10611	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
10612	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
10613	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
10614	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
10615	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
10616	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
10617	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
10618	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
10619	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
10620	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
10621	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
10622	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
10623	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
10624	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
10625	s << '}';
10626	return s;
10627}
10628
10629std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
10630{
10631	s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
10632	s << "\tsType = " << value.sType << '\n';
10633	s << "\tpNext = " << value.pNext << '\n';
10634	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
10635	s << '}';
10636	return s;
10637}
10638
10639std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
10640{
10641	s << "VkShaderResourceUsageAMD = {\n";
10642	s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
10643	s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
10644	s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
10645	s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
10646	s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
10647	s << '}';
10648	return s;
10649}
10650
10651std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
10652{
10653	s << "VkShaderStatisticsInfoAMD = {\n";
10654	s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
10655	s << "\tresourceUsage = " << value.resourceUsage << '\n';
10656	s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
10657	s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
10658	s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
10659	s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
10660	s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
10661	s << '}';
10662	return s;
10663}
10664
10665std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfo& value)
10666{
10667	s << "VkDeviceQueueGlobalPriorityCreateInfo = {\n";
10668	s << "\tsType = " << value.sType << '\n';
10669	s << "\tpNext = " << value.pNext << '\n';
10670	s << "\tglobalPriority = " << value.globalPriority << '\n';
10671	s << '}';
10672	return s;
10673}
10674
10675std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeatures& value)
10676{
10677	s << "VkPhysicalDeviceGlobalPriorityQueryFeatures = {\n";
10678	s << "\tsType = " << value.sType << '\n';
10679	s << "\tpNext = " << value.pNext << '\n';
10680	s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
10681	s << '}';
10682	return s;
10683}
10684
10685std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityProperties& value)
10686{
10687	s << "VkQueueFamilyGlobalPriorityProperties = {\n";
10688	s << "\tsType = " << value.sType << '\n';
10689	s << "\tpNext = " << value.pNext << '\n';
10690	s << "\tpriorityCount = " << value.priorityCount << '\n';
10691	s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
10692	s << '}';
10693	return s;
10694}
10695
10696std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
10697{
10698	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
10699	s << "\tsType = " << value.sType << '\n';
10700	s << "\tpNext = " << value.pNext << '\n';
10701	s << "\tobjectType = " << value.objectType << '\n';
10702	s << "\tobjectHandle = " << value.objectHandle << '\n';
10703	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
10704	s << '}';
10705	return s;
10706}
10707
10708std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
10709{
10710	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
10711	s << "\tsType = " << value.sType << '\n';
10712	s << "\tpNext = " << value.pNext << '\n';
10713	s << "\tobjectType = " << value.objectType << '\n';
10714	s << "\tobjectHandle = " << value.objectHandle << '\n';
10715	s << "\ttagName = " << value.tagName << '\n';
10716	s << "\ttagSize = " << value.tagSize << '\n';
10717	s << "\tpTag = " << value.pTag << '\n';
10718	s << '}';
10719	return s;
10720}
10721
10722std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
10723{
10724	s << "VkDebugUtilsLabelEXT = {\n";
10725	s << "\tsType = " << value.sType << '\n';
10726	s << "\tpNext = " << value.pNext << '\n';
10727	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
10728	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
10729	s << '}';
10730	return s;
10731}
10732
10733std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
10734{
10735	s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
10736	s << "\tsType = " << value.sType << '\n';
10737	s << "\tpNext = " << value.pNext << '\n';
10738	s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
10739	s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
10740	s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
10741	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10742	s << "\tpUserData = " << value.pUserData << '\n';
10743	s << '}';
10744	return s;
10745}
10746
10747std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
10748{
10749	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
10750	s << "\tsType = " << value.sType << '\n';
10751	s << "\tpNext = " << value.pNext << '\n';
10752	s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
10753	s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
10754	s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
10755	s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
10756	s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
10757	s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
10758	s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
10759	s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
10760	s << "\tobjectCount = " << value.objectCount << '\n';
10761	s << "\tpObjects = " << value.pObjects << '\n';
10762	s << '}';
10763	return s;
10764}
10765
10766std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
10767{
10768	s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
10769	s << "\tsType = " << value.sType << '\n';
10770	s << "\tpNext = " << value.pNext << '\n';
10771	s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
10772	s << '}';
10773	return s;
10774}
10775
10776std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
10777{
10778	s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
10779	s << "\tsType = " << value.sType << '\n';
10780	s << "\tpNext = " << value.pNext << '\n';
10781	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10782	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10783	s << "\tpUserData = " << value.pUserData << '\n';
10784	s << '}';
10785	return s;
10786}
10787
10788std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
10789{
10790	s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
10791	s << "\tsType = " << value.sType << '\n';
10792	s << "\tpNext = " << value.pNext << '\n';
10793	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10794	s << "\ttype = " << value.type << '\n';
10795	s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
10796	s << "\tsize = " << value.size << '\n';
10797	s << "\tobjectType = " << value.objectType << '\n';
10798	s << "\tobjectHandle = " << value.objectHandle << '\n';
10799	s << "\theapIndex = " << value.heapIndex << '\n';
10800	s << '}';
10801	return s;
10802}
10803
10804std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
10805{
10806	s << "VkImportMemoryHostPointerInfoEXT = {\n";
10807	s << "\tsType = " << value.sType << '\n';
10808	s << "\tpNext = " << value.pNext << '\n';
10809	s << "\thandleType = " << value.handleType << '\n';
10810	s << "\tpHostPointer = " << value.pHostPointer << '\n';
10811	s << '}';
10812	return s;
10813}
10814
10815std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
10816{
10817	s << "VkMemoryHostPointerPropertiesEXT = {\n";
10818	s << "\tsType = " << value.sType << '\n';
10819	s << "\tpNext = " << value.pNext << '\n';
10820	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10821	s << '}';
10822	return s;
10823}
10824
10825std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
10826{
10827	s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
10828	s << "\tsType = " << value.sType << '\n';
10829	s << "\tpNext = " << value.pNext << '\n';
10830	s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
10831	s << '}';
10832	return s;
10833}
10834
10835std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
10836{
10837	s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
10838	s << "\tsType = " << value.sType << '\n';
10839	s << "\tpNext = " << value.pNext << '\n';
10840	s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
10841	s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
10842	s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
10843	s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
10844	s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
10845	s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
10846	s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
10847	s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
10848	s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
10849	s << '}';
10850	return s;
10851}
10852
10853std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoKHR& value)
10854{
10855	s << "VkCalibratedTimestampInfoKHR = {\n";
10856	s << "\tsType = " << value.sType << '\n';
10857	s << "\tpNext = " << value.pNext << '\n';
10858	s << "\ttimeDomain = " << value.timeDomain << '\n';
10859	s << '}';
10860	return s;
10861}
10862
10863std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
10864{
10865	s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
10866	s << "\tsType = " << value.sType << '\n';
10867	s << "\tpNext = " << value.pNext << '\n';
10868	s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
10869	s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
10870	s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
10871	s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
10872	s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
10873	s << "\twavefrontSize = " << value.wavefrontSize << '\n';
10874	s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
10875	s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
10876	s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
10877	s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
10878	s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
10879	s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
10880	s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
10881	s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
10882	s << '}';
10883	return s;
10884}
10885
10886std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
10887{
10888	s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
10889	s << "\tsType = " << value.sType << '\n';
10890	s << "\tpNext = " << value.pNext << '\n';
10891	s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
10892	s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
10893	s << '}';
10894	return s;
10895}
10896
10897std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
10898{
10899	s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
10900	s << "\tsType = " << value.sType << '\n';
10901	s << "\tpNext = " << value.pNext << '\n';
10902	s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
10903	s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
10904	s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
10905	s << '}';
10906	return s;
10907}
10908
10909std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
10910{
10911	s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
10912	s << "\tsType = " << value.sType << '\n';
10913	s << "\tpNext = " << value.pNext << '\n';
10914	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
10915	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
10916	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
10917	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
10918	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
10919	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
10920	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
10921	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
10922	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
10923	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
10924	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
10925	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
10926	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
10927	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
10928	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
10929	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
10930	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
10931	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
10932	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
10933	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
10934	s << '}';
10935	return s;
10936}
10937
10938std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
10939{
10940	s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
10941	s << "\tsType = " << value.sType << '\n';
10942	s << "\tpNext = " << value.pNext << '\n';
10943	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
10944	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
10945	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
10946	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
10947	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
10948	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
10949	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
10950	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
10951	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
10952	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
10953	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
10954	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
10955	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
10956	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
10957	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
10958	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
10959	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
10960	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
10961	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
10962	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
10963	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
10964	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
10965	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
10966	s << '}';
10967	return s;
10968}
10969
10970std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
10971{
10972	s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
10973	s << "\tsType = " << value.sType << '\n';
10974	s << "\tpNext = " << value.pNext << '\n';
10975	s << "\tbindingCount = " << value.bindingCount << '\n';
10976	s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
10977	s << '}';
10978	return s;
10979}
10980
10981std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
10982{
10983	s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
10984	s << "\tsType = " << value.sType << '\n';
10985	s << "\tpNext = " << value.pNext << '\n';
10986	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
10987	s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
10988	s << '}';
10989	return s;
10990}
10991
10992std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
10993{
10994	s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
10995	s << "\tsType = " << value.sType << '\n';
10996	s << "\tpNext = " << value.pNext << '\n';
10997	s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
10998	s << '}';
10999	return s;
11000}
11001
11002std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
11003{
11004	s << "VkAttachmentDescription2 = {\n";
11005	s << "\tsType = " << value.sType << '\n';
11006	s << "\tpNext = " << value.pNext << '\n';
11007	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
11008	s << "\tformat = " << value.format << '\n';
11009	s << "\tsamples = " << value.samples << '\n';
11010	s << "\tloadOp = " << value.loadOp << '\n';
11011	s << "\tstoreOp = " << value.storeOp << '\n';
11012	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
11013	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
11014	s << "\tinitialLayout = " << value.initialLayout << '\n';
11015	s << "\tfinalLayout = " << value.finalLayout << '\n';
11016	s << '}';
11017	return s;
11018}
11019
11020std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
11021{
11022	s << "VkAttachmentReference2 = {\n";
11023	s << "\tsType = " << value.sType << '\n';
11024	s << "\tpNext = " << value.pNext << '\n';
11025	s << "\tattachment = " << value.attachment << '\n';
11026	s << "\tlayout = " << value.layout << '\n';
11027	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
11028	s << '}';
11029	return s;
11030}
11031
11032std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
11033{
11034	s << "VkSubpassDescription2 = {\n";
11035	s << "\tsType = " << value.sType << '\n';
11036	s << "\tpNext = " << value.pNext << '\n';
11037	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
11038	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11039	s << "\tviewMask = " << value.viewMask << '\n';
11040	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
11041	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
11042	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
11043	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
11044	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
11045	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
11046	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
11047	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
11048	s << '}';
11049	return s;
11050}
11051
11052std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
11053{
11054	s << "VkSubpassDependency2 = {\n";
11055	s << "\tsType = " << value.sType << '\n';
11056	s << "\tpNext = " << value.pNext << '\n';
11057	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
11058	s << "\tdstSubpass = " << value.dstSubpass << '\n';
11059	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
11060	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
11061	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
11062	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
11063	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
11064	s << "\tviewOffset = " << value.viewOffset << '\n';
11065	s << '}';
11066	return s;
11067}
11068
11069std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
11070{
11071	s << "VkRenderPassCreateInfo2 = {\n";
11072	s << "\tsType = " << value.sType << '\n';
11073	s << "\tpNext = " << value.pNext << '\n';
11074	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
11075	s << "\tattachmentCount = " << value.attachmentCount << '\n';
11076	s << "\tpAttachments = " << value.pAttachments << '\n';
11077	s << "\tsubpassCount = " << value.subpassCount << '\n';
11078	s << "\tpSubpasses = " << value.pSubpasses << '\n';
11079	s << "\tdependencyCount = " << value.dependencyCount << '\n';
11080	s << "\tpDependencies = " << value.pDependencies << '\n';
11081	s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
11082	s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
11083	s << '}';
11084	return s;
11085}
11086
11087std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
11088{
11089	s << "VkSubpassBeginInfo = {\n";
11090	s << "\tsType = " << value.sType << '\n';
11091	s << "\tpNext = " << value.pNext << '\n';
11092	s << "\tcontents = " << value.contents << '\n';
11093	s << '}';
11094	return s;
11095}
11096
11097std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
11098{
11099	s << "VkSubpassEndInfo = {\n";
11100	s << "\tsType = " << value.sType << '\n';
11101	s << "\tpNext = " << value.pNext << '\n';
11102	s << '}';
11103	return s;
11104}
11105
11106std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
11107{
11108	s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
11109	s << "\tsType = " << value.sType << '\n';
11110	s << "\tpNext = " << value.pNext << '\n';
11111	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
11112	s << '}';
11113	return s;
11114}
11115
11116std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
11117{
11118	s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
11119	s << "\tsType = " << value.sType << '\n';
11120	s << "\tpNext = " << value.pNext << '\n';
11121	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
11122	s << '}';
11123	return s;
11124}
11125
11126std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
11127{
11128	s << "VkSemaphoreTypeCreateInfo = {\n";
11129	s << "\tsType = " << value.sType << '\n';
11130	s << "\tpNext = " << value.pNext << '\n';
11131	s << "\tsemaphoreType = " << value.semaphoreType << '\n';
11132	s << "\tinitialValue = " << value.initialValue << '\n';
11133	s << '}';
11134	return s;
11135}
11136
11137std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
11138{
11139	s << "VkTimelineSemaphoreSubmitInfo = {\n";
11140	s << "\tsType = " << value.sType << '\n';
11141	s << "\tpNext = " << value.pNext << '\n';
11142	s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
11143	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
11144	s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
11145	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
11146	s << '}';
11147	return s;
11148}
11149
11150std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
11151{
11152	s << "VkSemaphoreWaitInfo = {\n";
11153	s << "\tsType = " << value.sType << '\n';
11154	s << "\tpNext = " << value.pNext << '\n';
11155	s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
11156	s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
11157	s << "\tpSemaphores = " << value.pSemaphores << '\n';
11158	s << "\tpValues = " << value.pValues << '\n';
11159	s << '}';
11160	return s;
11161}
11162
11163std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
11164{
11165	s << "VkSemaphoreSignalInfo = {\n";
11166	s << "\tsType = " << value.sType << '\n';
11167	s << "\tpNext = " << value.pNext << '\n';
11168	s << "\tsemaphore = " << value.semaphore << '\n';
11169	s << "\tvalue = " << value.value << '\n';
11170	s << '}';
11171	return s;
11172}
11173
11174std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescription& value)
11175{
11176	s << "VkVertexInputBindingDivisorDescription = {\n";
11177	s << "\tbinding = " << value.binding << '\n';
11178	s << "\tdivisor = " << value.divisor << '\n';
11179	s << '}';
11180	return s;
11181}
11182
11183std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfo& value)
11184{
11185	s << "VkPipelineVertexInputDivisorStateCreateInfo = {\n";
11186	s << "\tsType = " << value.sType << '\n';
11187	s << "\tpNext = " << value.pNext << '\n';
11188	s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
11189	s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
11190	s << '}';
11191	return s;
11192}
11193
11194std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
11195{
11196	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
11197	s << "\tsType = " << value.sType << '\n';
11198	s << "\tpNext = " << value.pNext << '\n';
11199	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
11200	s << '}';
11201	return s;
11202}
11203
11204std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorProperties& value)
11205{
11206	s << "VkPhysicalDeviceVertexAttributeDivisorProperties = {\n";
11207	s << "\tsType = " << value.sType << '\n';
11208	s << "\tpNext = " << value.pNext << '\n';
11209	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
11210	s << "\tsupportsNonZeroFirstInstance = " << value.supportsNonZeroFirstInstance << '\n';
11211	s << '}';
11212	return s;
11213}
11214
11215std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
11216{
11217	s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
11218	s << "\tsType = " << value.sType << '\n';
11219	s << "\tpNext = " << value.pNext << '\n';
11220	s << "\tpciDomain = " << value.pciDomain << '\n';
11221	s << "\tpciBus = " << value.pciBus << '\n';
11222	s << "\tpciDevice = " << value.pciDevice << '\n';
11223	s << "\tpciFunction = " << value.pciFunction << '\n';
11224	s << '}';
11225	return s;
11226}
11227
11228std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
11229{
11230	s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
11231	s << "\tsType = " << value.sType << '\n';
11232	s << "\tpNext = " << value.pNext << '\n';
11233	s << "\tbuffer = " << value.buffer << '\n';
11234	s << '}';
11235	return s;
11236}
11237
11238std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
11239{
11240	s << "VkAndroidHardwareBufferUsageANDROID = {\n";
11241	s << "\tsType = " << value.sType << '\n';
11242	s << "\tpNext = " << value.pNext << '\n';
11243	s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
11244	s << '}';
11245	return s;
11246}
11247
11248std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
11249{
11250	s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
11251	s << "\tsType = " << value.sType << '\n';
11252	s << "\tpNext = " << value.pNext << '\n';
11253	s << "\tallocationSize = " << value.allocationSize << '\n';
11254	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
11255	s << '}';
11256	return s;
11257}
11258
11259std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
11260{
11261	s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
11262	s << "\tsType = " << value.sType << '\n';
11263	s << "\tpNext = " << value.pNext << '\n';
11264	s << "\tmemory = " << value.memory << '\n';
11265	s << '}';
11266	return s;
11267}
11268
11269std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
11270{
11271	s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
11272	s << "\tsType = " << value.sType << '\n';
11273	s << "\tpNext = " << value.pNext << '\n';
11274	s << "\tformat = " << value.format << '\n';
11275	s << "\texternalFormat = " << value.externalFormat << '\n';
11276	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
11277	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
11278	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
11279	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
11280	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
11281	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
11282	s << '}';
11283	return s;
11284}
11285
11286std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
11287{
11288	s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
11289	s << "\tsType = " << value.sType << '\n';
11290	s << "\tpNext = " << value.pNext << '\n';
11291	s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
11292	s << '}';
11293	return s;
11294}
11295
11296std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
11297{
11298	s << "VkExternalFormatANDROID = {\n";
11299	s << "\tsType = " << value.sType << '\n';
11300	s << "\tpNext = " << value.pNext << '\n';
11301	s << "\texternalFormat = " << value.externalFormat << '\n';
11302	s << '}';
11303	return s;
11304}
11305
11306std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
11307{
11308	s << "VkPhysicalDevice8BitStorageFeatures = {\n";
11309	s << "\tsType = " << value.sType << '\n';
11310	s << "\tpNext = " << value.pNext << '\n';
11311	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
11312	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
11313	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
11314	s << '}';
11315	return s;
11316}
11317
11318std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
11319{
11320	s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
11321	s << "\tsType = " << value.sType << '\n';
11322	s << "\tpNext = " << value.pNext << '\n';
11323	s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
11324	s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
11325	s << '}';
11326	return s;
11327}
11328
11329std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
11330{
11331	s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
11332	s << "\tsType = " << value.sType << '\n';
11333	s << "\tpNext = " << value.pNext << '\n';
11334	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
11335	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
11336	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
11337	s << '}';
11338	return s;
11339}
11340
11341std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
11342{
11343	s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
11344	s << "\tsType = " << value.sType << '\n';
11345	s << "\tpNext = " << value.pNext << '\n';
11346	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
11347	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
11348	s << '}';
11349	return s;
11350}
11351
11352std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
11353{
11354	s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
11355	s << "\tsType = " << value.sType << '\n';
11356	s << "\tpNext = " << value.pNext << '\n';
11357	s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
11358	s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
11359	s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
11360	s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
11361	s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
11362	s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
11363	s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
11364	s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
11365	s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
11366	s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
11367	s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
11368	s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
11369	s << '}';
11370	return s;
11371}
11372
11373std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
11374{
11375	s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
11376	s << "\tsType = " << value.sType << '\n';
11377	s << "\tpNext = " << value.pNext << '\n';
11378	s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
11379	s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
11380	s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
11381	s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
11382	s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
11383	s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
11384	s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
11385	s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
11386	s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
11387	s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
11388	s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
11389	s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
11390	s << '}';
11391	return s;
11392}
11393
11394std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeatures& value)
11395{
11396	s << "VkPhysicalDeviceVertexAttributeDivisorFeatures = {\n";
11397	s << "\tsType = " << value.sType << '\n';
11398	s << "\tpNext = " << value.pNext << '\n';
11399	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
11400	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
11401	s << '}';
11402	return s;
11403}
11404
11405std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
11406{
11407	s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
11408	s << "\tsType = " << value.sType << '\n';
11409	s << "\tpNext = " << value.pNext << '\n';
11410	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
11411	s << '}';
11412	return s;
11413}
11414
11415std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
11416{
11417	s << "VkCheckpointDataNV = {\n";
11418	s << "\tsType = " << value.sType << '\n';
11419	s << "\tpNext = " << value.pNext << '\n';
11420	s << "\tstage = " << value.stage << '\n';
11421	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
11422	s << '}';
11423	return s;
11424}
11425
11426std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
11427{
11428	s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
11429	s << "\tsType = " << value.sType << '\n';
11430	s << "\tpNext = " << value.pNext << '\n';
11431	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
11432	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
11433	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
11434	s << "\tindependentResolve = " << value.independentResolve << '\n';
11435	s << '}';
11436	return s;
11437}
11438
11439std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
11440{
11441	s << "VkSubpassDescriptionDepthStencilResolve = {\n";
11442	s << "\tsType = " << value.sType << '\n';
11443	s << "\tpNext = " << value.pNext << '\n';
11444	s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
11445	s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
11446	s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
11447	s << '}';
11448	return s;
11449}
11450
11451std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
11452{
11453	s << "VkImageViewASTCDecodeModeEXT = {\n";
11454	s << "\tsType = " << value.sType << '\n';
11455	s << "\tpNext = " << value.pNext << '\n';
11456	s << "\tdecodeMode = " << value.decodeMode << '\n';
11457	s << '}';
11458	return s;
11459}
11460
11461std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
11462{
11463	s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
11464	s << "\tsType = " << value.sType << '\n';
11465	s << "\tpNext = " << value.pNext << '\n';
11466	s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
11467	s << '}';
11468	return s;
11469}
11470
11471std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
11472{
11473	s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
11474	s << "\tsType = " << value.sType << '\n';
11475	s << "\tpNext = " << value.pNext << '\n';
11476	s << "\ttransformFeedback = " << value.transformFeedback << '\n';
11477	s << "\tgeometryStreams = " << value.geometryStreams << '\n';
11478	s << '}';
11479	return s;
11480}
11481
11482std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
11483{
11484	s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
11485	s << "\tsType = " << value.sType << '\n';
11486	s << "\tpNext = " << value.pNext << '\n';
11487	s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
11488	s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
11489	s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
11490	s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
11491	s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
11492	s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
11493	s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
11494	s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
11495	s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
11496	s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
11497	s << '}';
11498	return s;
11499}
11500
11501std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
11502{
11503	s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
11504	s << "\tsType = " << value.sType << '\n';
11505	s << "\tpNext = " << value.pNext << '\n';
11506	s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
11507	s << "\trasterizationStream = " << value.rasterizationStream << '\n';
11508	s << '}';
11509	return s;
11510}
11511
11512std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
11513{
11514	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
11515	s << "\tsType = " << value.sType << '\n';
11516	s << "\tpNext = " << value.pNext << '\n';
11517	s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
11518	s << '}';
11519	return s;
11520}
11521
11522std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
11523{
11524	s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
11525	s << "\tsType = " << value.sType << '\n';
11526	s << "\tpNext = " << value.pNext << '\n';
11527	s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
11528	s << '}';
11529	return s;
11530}
11531
11532std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
11533{
11534	s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
11535	s << "\tsType = " << value.sType << '\n';
11536	s << "\tpNext = " << value.pNext << '\n';
11537	s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
11538	s << '}';
11539	return s;
11540}
11541
11542std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
11543{
11544	s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
11545	s << "\tsType = " << value.sType << '\n';
11546	s << "\tpNext = " << value.pNext << '\n';
11547	s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
11548	s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
11549	s << '}';
11550	return s;
11551}
11552
11553std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
11554{
11555	s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
11556	s << "\tsType = " << value.sType << '\n';
11557	s << "\tpNext = " << value.pNext << '\n';
11558	s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
11559	s << '}';
11560	return s;
11561}
11562
11563std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR& value)
11564{
11565	s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR = {\n";
11566	s << "\tsType = " << value.sType << '\n';
11567	s << "\tpNext = " << value.pNext << '\n';
11568	s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
11569	s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
11570	s << '}';
11571	return s;
11572}
11573
11574std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR& value)
11575{
11576	s << "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR = {\n";
11577	s << "\tsType = " << value.sType << '\n';
11578	s << "\tpNext = " << value.pNext << '\n';
11579	s << "\tmeshAndTaskShaderDerivatives = " << value.meshAndTaskShaderDerivatives << '\n';
11580	s << '}';
11581	return s;
11582}
11583
11584std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
11585{
11586	s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
11587	s << "\tsType = " << value.sType << '\n';
11588	s << "\tpNext = " << value.pNext << '\n';
11589	s << "\timageFootprint = " << value.imageFootprint << '\n';
11590	s << '}';
11591	return s;
11592}
11593
11594std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
11595{
11596	s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
11597	s << "\tsType = " << value.sType << '\n';
11598	s << "\tpNext = " << value.pNext << '\n';
11599	s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
11600	s << '}';
11601	return s;
11602}
11603
11604std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectFeaturesNV& value)
11605{
11606	s << "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV = {\n";
11607	s << "\tsType = " << value.sType << '\n';
11608	s << "\tpNext = " << value.pNext << '\n';
11609	s << "\tindirectCopy = " << value.indirectCopy << '\n';
11610	s << '}';
11611	return s;
11612}
11613
11614std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCopyMemoryIndirectPropertiesNV& value)
11615{
11616	s << "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV = {\n";
11617	s << "\tsType = " << value.sType << '\n';
11618	s << "\tpNext = " << value.pNext << '\n';
11619	s << "\tsupportedQueues = " << getQueueFlagsStr(value.supportedQueues) << '\n';
11620	s << '}';
11621	return s;
11622}
11623
11624std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionFeaturesNV& value)
11625{
11626	s << "VkPhysicalDeviceMemoryDecompressionFeaturesNV = {\n";
11627	s << "\tsType = " << value.sType << '\n';
11628	s << "\tpNext = " << value.pNext << '\n';
11629	s << "\tmemoryDecompression = " << value.memoryDecompression << '\n';
11630	s << '}';
11631	return s;
11632}
11633
11634std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryDecompressionPropertiesNV& value)
11635{
11636	s << "VkPhysicalDeviceMemoryDecompressionPropertiesNV = {\n";
11637	s << "\tsType = " << value.sType << '\n';
11638	s << "\tpNext = " << value.pNext << '\n';
11639	s << "\tdecompressionMethods = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethods) << '\n';
11640	s << "\tmaxDecompressionIndirectCount = " << value.maxDecompressionIndirectCount << '\n';
11641	s << '}';
11642	return s;
11643}
11644
11645std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
11646{
11647	s << "VkShadingRatePaletteNV = {\n";
11648	s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
11649	s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
11650	s << '}';
11651	return s;
11652}
11653
11654std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
11655{
11656	s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
11657	s << "\tsType = " << value.sType << '\n';
11658	s << "\tpNext = " << value.pNext << '\n';
11659	s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
11660	s << "\tviewportCount = " << value.viewportCount << '\n';
11661	s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
11662	s << '}';
11663	return s;
11664}
11665
11666std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
11667{
11668	s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
11669	s << "\tsType = " << value.sType << '\n';
11670	s << "\tpNext = " << value.pNext << '\n';
11671	s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
11672	s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
11673	s << '}';
11674	return s;
11675}
11676
11677std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
11678{
11679	s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
11680	s << "\tsType = " << value.sType << '\n';
11681	s << "\tpNext = " << value.pNext << '\n';
11682	s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
11683	s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
11684	s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
11685	s << '}';
11686	return s;
11687}
11688
11689std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
11690{
11691	s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
11692	s << "\tsType = " << value.sType << '\n';
11693	s << "\tpNext = " << value.pNext << '\n';
11694	s << "\tinvocationMask = " << value.invocationMask << '\n';
11695	s << '}';
11696	return s;
11697}
11698
11699std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
11700{
11701	s << "VkCoarseSampleLocationNV = {\n";
11702	s << "\tpixelX = " << value.pixelX << '\n';
11703	s << "\tpixelY = " << value.pixelY << '\n';
11704	s << "\tsample = " << value.sample << '\n';
11705	s << '}';
11706	return s;
11707}
11708
11709std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
11710{
11711	s << "VkCoarseSampleOrderCustomNV = {\n";
11712	s << "\tshadingRate = " << value.shadingRate << '\n';
11713	s << "\tsampleCount = " << value.sampleCount << '\n';
11714	s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
11715	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
11716	s << '}';
11717	return s;
11718}
11719
11720std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
11721{
11722	s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
11723	s << "\tsType = " << value.sType << '\n';
11724	s << "\tpNext = " << value.pNext << '\n';
11725	s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
11726	s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
11727	s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
11728	s << '}';
11729	return s;
11730}
11731
11732std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
11733{
11734	s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
11735	s << "\tsType = " << value.sType << '\n';
11736	s << "\tpNext = " << value.pNext << '\n';
11737	s << "\ttaskShader = " << value.taskShader << '\n';
11738	s << "\tmeshShader = " << value.meshShader << '\n';
11739	s << '}';
11740	return s;
11741}
11742
11743std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
11744{
11745	s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
11746	s << "\tsType = " << value.sType << '\n';
11747	s << "\tpNext = " << value.pNext << '\n';
11748	s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
11749	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
11750	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
11751	s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
11752	s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
11753	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
11754	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
11755	s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
11756	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
11757	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
11758	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
11759	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
11760	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
11761	s << '}';
11762	return s;
11763}
11764
11765std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
11766{
11767	s << "VkDrawMeshTasksIndirectCommandNV = {\n";
11768	s << "\ttaskCount = " << value.taskCount << '\n';
11769	s << "\tfirstTask = " << value.firstTask << '\n';
11770	s << '}';
11771	return s;
11772}
11773
11774std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesEXT& value)
11775{
11776	s << "VkPhysicalDeviceMeshShaderFeaturesEXT = {\n";
11777	s << "\tsType = " << value.sType << '\n';
11778	s << "\tpNext = " << value.pNext << '\n';
11779	s << "\ttaskShader = " << value.taskShader << '\n';
11780	s << "\tmeshShader = " << value.meshShader << '\n';
11781	s << "\tmultiviewMeshShader = " << value.multiviewMeshShader << '\n';
11782	s << "\tprimitiveFragmentShadingRateMeshShader = " << value.primitiveFragmentShadingRateMeshShader << '\n';
11783	s << "\tmeshShaderQueries = " << value.meshShaderQueries << '\n';
11784	s << '}';
11785	return s;
11786}
11787
11788std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesEXT& value)
11789{
11790	s << "VkPhysicalDeviceMeshShaderPropertiesEXT = {\n";
11791	s << "\tsType = " << value.sType << '\n';
11792	s << "\tpNext = " << value.pNext << '\n';
11793	s << "\tmaxTaskWorkGroupTotalCount = " << value.maxTaskWorkGroupTotalCount << '\n';
11794	s << "\tmaxTaskWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupCount), DE_ARRAY_END(value.maxTaskWorkGroupCount)) << '\n';
11795	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
11796	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
11797	s << "\tmaxTaskPayloadSize = " << value.maxTaskPayloadSize << '\n';
11798	s << "\tmaxTaskSharedMemorySize = " << value.maxTaskSharedMemorySize << '\n';
11799	s << "\tmaxTaskPayloadAndSharedMemorySize = " << value.maxTaskPayloadAndSharedMemorySize << '\n';
11800	s << "\tmaxMeshWorkGroupTotalCount = " << value.maxMeshWorkGroupTotalCount << '\n';
11801	s << "\tmaxMeshWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupCount), DE_ARRAY_END(value.maxMeshWorkGroupCount)) << '\n';
11802	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
11803	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
11804	s << "\tmaxMeshSharedMemorySize = " << value.maxMeshSharedMemorySize << '\n';
11805	s << "\tmaxMeshPayloadAndSharedMemorySize = " << value.maxMeshPayloadAndSharedMemorySize << '\n';
11806	s << "\tmaxMeshOutputMemorySize = " << value.maxMeshOutputMemorySize << '\n';
11807	s << "\tmaxMeshPayloadAndOutputMemorySize = " << value.maxMeshPayloadAndOutputMemorySize << '\n';
11808	s << "\tmaxMeshOutputComponents = " << value.maxMeshOutputComponents << '\n';
11809	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
11810	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
11811	s << "\tmaxMeshOutputLayers = " << value.maxMeshOutputLayers << '\n';
11812	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
11813	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
11814	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
11815	s << "\tmaxPreferredTaskWorkGroupInvocations = " << value.maxPreferredTaskWorkGroupInvocations << '\n';
11816	s << "\tmaxPreferredMeshWorkGroupInvocations = " << value.maxPreferredMeshWorkGroupInvocations << '\n';
11817	s << "\tprefersLocalInvocationVertexOutput = " << value.prefersLocalInvocationVertexOutput << '\n';
11818	s << "\tprefersLocalInvocationPrimitiveOutput = " << value.prefersLocalInvocationPrimitiveOutput << '\n';
11819	s << "\tprefersCompactVertexOutput = " << value.prefersCompactVertexOutput << '\n';
11820	s << "\tprefersCompactPrimitiveOutput = " << value.prefersCompactPrimitiveOutput << '\n';
11821	s << '}';
11822	return s;
11823}
11824
11825std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandEXT& value)
11826{
11827	s << "VkDrawMeshTasksIndirectCommandEXT = {\n";
11828	s << "\tgroupCountX = " << value.groupCountX << '\n';
11829	s << "\tgroupCountY = " << value.groupCountY << '\n';
11830	s << "\tgroupCountZ = " << value.groupCountZ << '\n';
11831	s << '}';
11832	return s;
11833}
11834
11835std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
11836{
11837	s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
11838	s << "\tsType = " << value.sType << '\n';
11839	s << "\tpNext = " << value.pNext << '\n';
11840	s << "\ttype = " << value.type << '\n';
11841	s << "\tgeneralShader = " << value.generalShader << '\n';
11842	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11843	s << "\tanyHitShader = " << value.anyHitShader << '\n';
11844	s << "\tintersectionShader = " << value.intersectionShader << '\n';
11845	s << '}';
11846	return s;
11847}
11848
11849std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
11850{
11851	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
11852	s << "\tsType = " << value.sType << '\n';
11853	s << "\tpNext = " << value.pNext << '\n';
11854	s << "\ttype = " << value.type << '\n';
11855	s << "\tgeneralShader = " << value.generalShader << '\n';
11856	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11857	s << "\tanyHitShader = " << value.anyHitShader << '\n';
11858	s << "\tintersectionShader = " << value.intersectionShader << '\n';
11859	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
11860	s << '}';
11861	return s;
11862}
11863
11864std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
11865{
11866	s << "VkRayTracingPipelineCreateInfoNV = {\n";
11867	s << "\tsType = " << value.sType << '\n';
11868	s << "\tpNext = " << value.pNext << '\n';
11869	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11870	s << "\tstageCount = " << value.stageCount << '\n';
11871	s << "\tpStages = " << value.pStages << '\n';
11872	s << "\tgroupCount = " << value.groupCount << '\n';
11873	s << "\tpGroups = " << value.pGroups << '\n';
11874	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
11875	s << "\tlayout = " << value.layout << '\n';
11876	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11877	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11878	s << '}';
11879	return s;
11880}
11881
11882std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
11883{
11884	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
11885	s << "\tsType = " << value.sType << '\n';
11886	s << "\tpNext = " << value.pNext << '\n';
11887	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11888	s << "\tstageCount = " << value.stageCount << '\n';
11889	s << "\tpStages = " << value.pStages << '\n';
11890	s << "\tgroupCount = " << value.groupCount << '\n';
11891	s << "\tpGroups = " << value.pGroups << '\n';
11892	s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
11893	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
11894	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
11895	s << "\tpDynamicState = " << value.pDynamicState << '\n';
11896	s << "\tlayout = " << value.layout << '\n';
11897	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11898	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11899	s << '}';
11900	return s;
11901}
11902
11903std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
11904{
11905	s << "VkGeometryTrianglesNV = {\n";
11906	s << "\tsType = " << value.sType << '\n';
11907	s << "\tpNext = " << value.pNext << '\n';
11908	s << "\tvertexData = " << value.vertexData << '\n';
11909	s << "\tvertexOffset = " << value.vertexOffset << '\n';
11910	s << "\tvertexCount = " << value.vertexCount << '\n';
11911	s << "\tvertexStride = " << value.vertexStride << '\n';
11912	s << "\tvertexFormat = " << value.vertexFormat << '\n';
11913	s << "\tindexData = " << value.indexData << '\n';
11914	s << "\tindexOffset = " << value.indexOffset << '\n';
11915	s << "\tindexCount = " << value.indexCount << '\n';
11916	s << "\tindexType = " << value.indexType << '\n';
11917	s << "\ttransformData = " << value.transformData << '\n';
11918	s << "\ttransformOffset = " << value.transformOffset << '\n';
11919	s << '}';
11920	return s;
11921}
11922
11923std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
11924{
11925	s << "VkGeometryAABBNV = {\n";
11926	s << "\tsType = " << value.sType << '\n';
11927	s << "\tpNext = " << value.pNext << '\n';
11928	s << "\taabbData = " << value.aabbData << '\n';
11929	s << "\tnumAABBs = " << value.numAABBs << '\n';
11930	s << "\tstride = " << value.stride << '\n';
11931	s << "\toffset = " << value.offset << '\n';
11932	s << '}';
11933	return s;
11934}
11935
11936std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
11937{
11938	s << "VkGeometryDataNV = {\n";
11939	s << "\ttriangles = " << value.triangles << '\n';
11940	s << "\taabbs = " << value.aabbs << '\n';
11941	s << '}';
11942	return s;
11943}
11944
11945std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
11946{
11947	s << "VkGeometryNV = {\n";
11948	s << "\tsType = " << value.sType << '\n';
11949	s << "\tpNext = " << value.pNext << '\n';
11950	s << "\tgeometryType = " << value.geometryType << '\n';
11951	s << "\tgeometry = " << value.geometry << '\n';
11952	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
11953	s << '}';
11954	return s;
11955}
11956
11957std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
11958{
11959	s << "VkAccelerationStructureInfoNV = {\n";
11960	s << "\tsType = " << value.sType << '\n';
11961	s << "\tpNext = " << value.pNext << '\n';
11962	s << "\ttype = " << value.type << '\n';
11963	s << "\tflags = " << value.flags << '\n';
11964	s << "\tinstanceCount = " << value.instanceCount << '\n';
11965	s << "\tgeometryCount = " << value.geometryCount << '\n';
11966	s << "\tpGeometries = " << value.pGeometries << '\n';
11967	s << '}';
11968	return s;
11969}
11970
11971std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
11972{
11973	s << "VkAccelerationStructureCreateInfoNV = {\n";
11974	s << "\tsType = " << value.sType << '\n';
11975	s << "\tpNext = " << value.pNext << '\n';
11976	s << "\tcompactedSize = " << value.compactedSize << '\n';
11977	s << "\tinfo = " << value.info << '\n';
11978	s << '}';
11979	return s;
11980}
11981
11982std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
11983{
11984	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
11985	s << "\tsType = " << value.sType << '\n';
11986	s << "\tpNext = " << value.pNext << '\n';
11987	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11988	s << "\tmemory = " << value.memory << '\n';
11989	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
11990	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
11991	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
11992	s << '}';
11993	return s;
11994}
11995
11996std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
11997{
11998	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
11999	s << "\tsType = " << value.sType << '\n';
12000	s << "\tpNext = " << value.pNext << '\n';
12001	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
12002	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
12003	s << '}';
12004	return s;
12005}
12006
12007std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
12008{
12009	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
12010	s << "\tsType = " << value.sType << '\n';
12011	s << "\tpNext = " << value.pNext << '\n';
12012	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
12013	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
12014	s << '}';
12015	return s;
12016}
12017
12018std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
12019{
12020	s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
12021	s << "\tsType = " << value.sType << '\n';
12022	s << "\tpNext = " << value.pNext << '\n';
12023	s << "\ttype = " << value.type << '\n';
12024	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12025	s << '}';
12026	return s;
12027}
12028
12029std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
12030{
12031	s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
12032	s << "\tsType = " << value.sType << '\n';
12033	s << "\tpNext = " << value.pNext << '\n';
12034	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12035	s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
12036	s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
12037	s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
12038	s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
12039	s << '}';
12040	return s;
12041}
12042
12043std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
12044{
12045	s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
12046	s << "\tsType = " << value.sType << '\n';
12047	s << "\tpNext = " << value.pNext << '\n';
12048	s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
12049	s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
12050	s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
12051	s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
12052	s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
12053	s << '}';
12054	return s;
12055}
12056
12057std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
12058{
12059	s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
12060	s << "\tsType = " << value.sType << '\n';
12061	s << "\tpNext = " << value.pNext << '\n';
12062	s << "\trayQuery = " << value.rayQuery << '\n';
12063	s << '}';
12064	return s;
12065}
12066
12067std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
12068{
12069	s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
12070	s << "\tsType = " << value.sType << '\n';
12071	s << "\tpNext = " << value.pNext << '\n';
12072	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
12073	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
12074	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
12075	s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
12076	s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
12077	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
12078	s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
12079	s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
12080	s << '}';
12081	return s;
12082}
12083
12084std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
12085{
12086	s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
12087	s << "\tsType = " << value.sType << '\n';
12088	s << "\tpNext = " << value.pNext << '\n';
12089	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
12090	s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
12091	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
12092	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
12093	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
12094	s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
12095	s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
12096	s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
12097	s << '}';
12098	return s;
12099}
12100
12101std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
12102{
12103	s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
12104	s << "\tsType = " << value.sType << '\n';
12105	s << "\tpNext = " << value.pNext << '\n';
12106	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
12107	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
12108	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
12109	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
12110	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
12111	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
12112	s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
12113	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
12114	s << '}';
12115	return s;
12116}
12117
12118std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
12119{
12120	s << "VkStridedDeviceAddressRegionKHR = {\n";
12121	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12122	s << "\tstride = " << value.stride << '\n';
12123	s << "\tsize = " << value.size << '\n';
12124	s << '}';
12125	return s;
12126}
12127
12128std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
12129{
12130	s << "VkTraceRaysIndirectCommandKHR = {\n";
12131	s << "\twidth = " << value.width << '\n';
12132	s << "\theight = " << value.height << '\n';
12133	s << "\tdepth = " << value.depth << '\n';
12134	s << '}';
12135	return s;
12136}
12137
12138std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
12139{
12140	s << "VkTraceRaysIndirectCommand2KHR = {\n";
12141	s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
12142	s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
12143	s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
12144	s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
12145	s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
12146	s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
12147	s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
12148	s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
12149	s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
12150	s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
12151	s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
12152	s << "\twidth = " << value.width << '\n';
12153	s << "\theight = " << value.height << '\n';
12154	s << "\tdepth = " << value.depth << '\n';
12155	s << '}';
12156	return s;
12157}
12158
12159std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
12160{
12161	s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
12162	s << "\tsType = " << value.sType << '\n';
12163	s << "\tpNext = " << value.pNext << '\n';
12164	s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
12165	s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
12166	s << '}';
12167	return s;
12168}
12169
12170std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
12171{
12172	s << "VkDrmFormatModifierPropertiesListEXT = {\n";
12173	s << "\tsType = " << value.sType << '\n';
12174	s << "\tpNext = " << value.pNext << '\n';
12175	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
12176	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
12177	s << '}';
12178	return s;
12179}
12180
12181std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
12182{
12183	s << "VkDrmFormatModifierPropertiesEXT = {\n";
12184	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
12185	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
12186	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
12187	s << '}';
12188	return s;
12189}
12190
12191std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
12192{
12193	s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
12194	s << "\tsType = " << value.sType << '\n';
12195	s << "\tpNext = " << value.pNext << '\n';
12196	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
12197	s << "\tsharingMode = " << value.sharingMode << '\n';
12198	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
12199	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
12200	s << '}';
12201	return s;
12202}
12203
12204std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
12205{
12206	s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
12207	s << "\tsType = " << value.sType << '\n';
12208	s << "\tpNext = " << value.pNext << '\n';
12209	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
12210	s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
12211	s << '}';
12212	return s;
12213}
12214
12215std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
12216{
12217	s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
12218	s << "\tsType = " << value.sType << '\n';
12219	s << "\tpNext = " << value.pNext << '\n';
12220	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
12221	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
12222	s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
12223	s << '}';
12224	return s;
12225}
12226
12227std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
12228{
12229	s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
12230	s << "\tsType = " << value.sType << '\n';
12231	s << "\tpNext = " << value.pNext << '\n';
12232	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
12233	s << '}';
12234	return s;
12235}
12236
12237std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
12238{
12239	s << "VkImageStencilUsageCreateInfo = {\n";
12240	s << "\tsType = " << value.sType << '\n';
12241	s << "\tpNext = " << value.pNext << '\n';
12242	s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
12243	s << '}';
12244	return s;
12245}
12246
12247std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
12248{
12249	s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
12250	s << "\tsType = " << value.sType << '\n';
12251	s << "\tpNext = " << value.pNext << '\n';
12252	s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
12253	s << '}';
12254	return s;
12255}
12256
12257std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
12258{
12259	s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
12260	s << "\tsType = " << value.sType << '\n';
12261	s << "\tpNext = " << value.pNext << '\n';
12262	s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
12263	s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
12264	s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
12265	s << '}';
12266	return s;
12267}
12268
12269std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
12270{
12271	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
12272	s << "\tsType = " << value.sType << '\n';
12273	s << "\tpNext = " << value.pNext << '\n';
12274	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
12275	s << '}';
12276	return s;
12277}
12278
12279std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
12280{
12281	s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
12282	s << "\tsType = " << value.sType << '\n';
12283	s << "\tpNext = " << value.pNext << '\n';
12284	s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
12285	s << '}';
12286	return s;
12287}
12288
12289std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
12290{
12291	s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
12292	s << "\tsType = " << value.sType << '\n';
12293	s << "\tpNext = " << value.pNext << '\n';
12294	s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
12295	s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
12296	s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
12297	s << '}';
12298	return s;
12299}
12300
12301std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
12302{
12303	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
12304	s << "\tsType = " << value.sType << '\n';
12305	s << "\tpNext = " << value.pNext << '\n';
12306	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
12307	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
12308	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
12309	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
12310	s << '}';
12311	return s;
12312}
12313
12314std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
12315{
12316	s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
12317	s << "\tsType = " << value.sType << '\n';
12318	s << "\tpNext = " << value.pNext << '\n';
12319	s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
12320	s << '}';
12321	return s;
12322}
12323
12324std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
12325{
12326	s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
12327	s << "\tsType = " << value.sType << '\n';
12328	s << "\tpNext = " << value.pNext << '\n';
12329	s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
12330	s << '}';
12331	return s;
12332}
12333
12334std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
12335{
12336	s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
12337	s << "\tsType = " << value.sType << '\n';
12338	s << "\tpNext = " << value.pNext << '\n';
12339	s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
12340	s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
12341	s << '}';
12342	return s;
12343}
12344
12345std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
12346{
12347	s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
12348	s << "\tsType = " << value.sType << '\n';
12349	s << "\tpNext = " << value.pNext << '\n';
12350	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
12351	s << '}';
12352	return s;
12353}
12354
12355std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
12356{
12357	s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
12358	s << "\tsType = " << value.sType << '\n';
12359	s << "\tpNext = " << value.pNext << '\n';
12360	s << "\tsupportsProtected = " << value.supportsProtected << '\n';
12361	s << '}';
12362	return s;
12363}
12364
12365std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
12366{
12367	s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
12368	s << "\tsType = " << value.sType << '\n';
12369	s << "\tpNext = " << value.pNext << '\n';
12370	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
12371	s << '}';
12372	return s;
12373}
12374
12375std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
12376{
12377	s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
12378	s << "\tsType = " << value.sType << '\n';
12379	s << "\tpNext = " << value.pNext << '\n';
12380	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
12381	s << '}';
12382	return s;
12383}
12384
12385std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
12386{
12387	s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
12388	s << "\tsType = " << value.sType << '\n';
12389	s << "\tpNext = " << value.pNext << '\n';
12390	s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
12391	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
12392	s << '}';
12393	return s;
12394}
12395
12396std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
12397{
12398	s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
12399	s << "\tsType = " << value.sType << '\n';
12400	s << "\tpNext = " << value.pNext << '\n';
12401	s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
12402	s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
12403	s << '}';
12404	return s;
12405}
12406
12407std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
12408{
12409	s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
12410	s << "\tsType = " << value.sType << '\n';
12411	s << "\tpNext = " << value.pNext << '\n';
12412	s << "\tmemoryPriority = " << value.memoryPriority << '\n';
12413	s << '}';
12414	return s;
12415}
12416
12417std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
12418{
12419	s << "VkMemoryPriorityAllocateInfoEXT = {\n";
12420	s << "\tsType = " << value.sType << '\n';
12421	s << "\tpNext = " << value.pNext << '\n';
12422	s << "\tpriority = " << value.priority << '\n';
12423	s << '}';
12424	return s;
12425}
12426
12427std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
12428{
12429	s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
12430	s << "\tsType = " << value.sType << '\n';
12431	s << "\tpNext = " << value.pNext << '\n';
12432	s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
12433	s << '}';
12434	return s;
12435}
12436
12437std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
12438{
12439	s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
12440	s << "\tsType = " << value.sType << '\n';
12441	s << "\tpNext = " << value.pNext << '\n';
12442	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
12443	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
12444	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
12445	s << '}';
12446	return s;
12447}
12448
12449std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
12450{
12451	s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
12452	s << "\tsType = " << value.sType << '\n';
12453	s << "\tpNext = " << value.pNext << '\n';
12454	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
12455	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
12456	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
12457	s << '}';
12458	return s;
12459}
12460
12461std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
12462{
12463	s << "VkBufferDeviceAddressInfo = {\n";
12464	s << "\tsType = " << value.sType << '\n';
12465	s << "\tpNext = " << value.pNext << '\n';
12466	s << "\tbuffer = " << value.buffer << '\n';
12467	s << '}';
12468	return s;
12469}
12470
12471std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
12472{
12473	s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
12474	s << "\tsType = " << value.sType << '\n';
12475	s << "\tpNext = " << value.pNext << '\n';
12476	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
12477	s << '}';
12478	return s;
12479}
12480
12481std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
12482{
12483	s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
12484	s << "\tsType = " << value.sType << '\n';
12485	s << "\tpNext = " << value.pNext << '\n';
12486	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12487	s << '}';
12488	return s;
12489}
12490
12491std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
12492{
12493	s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
12494	s << "\tsType = " << value.sType << '\n';
12495	s << "\tpNext = " << value.pNext << '\n';
12496	s << "\timageViewType = " << value.imageViewType << '\n';
12497	s << '}';
12498	return s;
12499}
12500
12501std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
12502{
12503	s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
12504	s << "\tsType = " << value.sType << '\n';
12505	s << "\tpNext = " << value.pNext << '\n';
12506	s << "\tfilterCubic = " << value.filterCubic << '\n';
12507	s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
12508	s << '}';
12509	return s;
12510}
12511
12512std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
12513{
12514	s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
12515	s << "\tsType = " << value.sType << '\n';
12516	s << "\tpNext = " << value.pNext << '\n';
12517	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
12518	s << '}';
12519	return s;
12520}
12521
12522std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
12523{
12524	s << "VkFramebufferAttachmentsCreateInfo = {\n";
12525	s << "\tsType = " << value.sType << '\n';
12526	s << "\tpNext = " << value.pNext << '\n';
12527	s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
12528	s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
12529	s << '}';
12530	return s;
12531}
12532
12533std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
12534{
12535	s << "VkFramebufferAttachmentImageInfo = {\n";
12536	s << "\tsType = " << value.sType << '\n';
12537	s << "\tpNext = " << value.pNext << '\n';
12538	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
12539	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
12540	s << "\twidth = " << value.width << '\n';
12541	s << "\theight = " << value.height << '\n';
12542	s << "\tlayerCount = " << value.layerCount << '\n';
12543	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
12544	s << "\tpViewFormats = " << value.pViewFormats << '\n';
12545	s << '}';
12546	return s;
12547}
12548
12549std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
12550{
12551	s << "VkRenderPassAttachmentBeginInfo = {\n";
12552	s << "\tsType = " << value.sType << '\n';
12553	s << "\tpNext = " << value.pNext << '\n';
12554	s << "\tattachmentCount = " << value.attachmentCount << '\n';
12555	s << "\tpAttachments = " << value.pAttachments << '\n';
12556	s << '}';
12557	return s;
12558}
12559
12560std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
12561{
12562	s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
12563	s << "\tsType = " << value.sType << '\n';
12564	s << "\tpNext = " << value.pNext << '\n';
12565	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
12566	s << '}';
12567	return s;
12568}
12569
12570std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
12571{
12572	s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
12573	s << "\tsType = " << value.sType << '\n';
12574	s << "\tpNext = " << value.pNext << '\n';
12575	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
12576	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
12577	s << '}';
12578	return s;
12579}
12580
12581std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
12582{
12583	s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
12584	s << "\tsType = " << value.sType << '\n';
12585	s << "\tpNext = " << value.pNext << '\n';
12586	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
12587	s << '}';
12588	return s;
12589}
12590
12591std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
12592{
12593	s << "VkCooperativeMatrixPropertiesNV = {\n";
12594	s << "\tsType = " << value.sType << '\n';
12595	s << "\tpNext = " << value.pNext << '\n';
12596	s << "\tMSize = " << value.MSize << '\n';
12597	s << "\tNSize = " << value.NSize << '\n';
12598	s << "\tKSize = " << value.KSize << '\n';
12599	s << "\tAType = " << value.AType << '\n';
12600	s << "\tBType = " << value.BType << '\n';
12601	s << "\tCType = " << value.CType << '\n';
12602	s << "\tDType = " << value.DType << '\n';
12603	s << "\tscope = " << value.scope << '\n';
12604	s << '}';
12605	return s;
12606}
12607
12608std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
12609{
12610	s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
12611	s << "\tsType = " << value.sType << '\n';
12612	s << "\tpNext = " << value.pNext << '\n';
12613	s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
12614	s << '}';
12615	return s;
12616}
12617
12618std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
12619{
12620	s << "VkImageViewHandleInfoNVX = {\n";
12621	s << "\tsType = " << value.sType << '\n';
12622	s << "\tpNext = " << value.pNext << '\n';
12623	s << "\timageView = " << value.imageView << '\n';
12624	s << "\tdescriptorType = " << value.descriptorType << '\n';
12625	s << "\tsampler = " << value.sampler << '\n';
12626	s << '}';
12627	return s;
12628}
12629
12630std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
12631{
12632	s << "VkImageViewAddressPropertiesNVX = {\n";
12633	s << "\tsType = " << value.sType << '\n';
12634	s << "\tpNext = " << value.pNext << '\n';
12635	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12636	s << "\tsize = " << value.size << '\n';
12637	s << '}';
12638	return s;
12639}
12640
12641std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
12642{
12643	s << "VkPresentFrameTokenGGP = {\n";
12644	s << "\tsType = " << value.sType << '\n';
12645	s << "\tpNext = " << value.pNext << '\n';
12646	s << "\tframeToken = " << value.frameToken << '\n';
12647	s << '}';
12648	return s;
12649}
12650
12651std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
12652{
12653	s << "VkPipelineCreationFeedback = {\n";
12654	s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
12655	s << "\tduration = " << value.duration << '\n';
12656	s << '}';
12657	return s;
12658}
12659
12660std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
12661{
12662	s << "VkPipelineCreationFeedbackCreateInfo = {\n";
12663	s << "\tsType = " << value.sType << '\n';
12664	s << "\tpNext = " << value.pNext << '\n';
12665	s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
12666	s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
12667	s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
12668	s << '}';
12669	return s;
12670}
12671
12672std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
12673{
12674	s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
12675	s << "\tsType = " << value.sType << '\n';
12676	s << "\tpNext = " << value.pNext << '\n';
12677	s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
12678	s << '}';
12679	return s;
12680}
12681
12682std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
12683{
12684	s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
12685	s << "\tsType = " << value.sType << '\n';
12686	s << "\tpNext = " << value.pNext << '\n';
12687	s << "\thmonitor = " << value.hmonitor << '\n';
12688	s << '}';
12689	return s;
12690}
12691
12692std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
12693{
12694	s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
12695	s << "\tsType = " << value.sType << '\n';
12696	s << "\tpNext = " << value.pNext << '\n';
12697	s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
12698	s << '}';
12699	return s;
12700}
12701
12702std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentBarrierFeaturesNV& value)
12703{
12704	s << "VkPhysicalDevicePresentBarrierFeaturesNV = {\n";
12705	s << "\tsType = " << value.sType << '\n';
12706	s << "\tpNext = " << value.pNext << '\n';
12707	s << "\tpresentBarrier = " << value.presentBarrier << '\n';
12708	s << '}';
12709	return s;
12710}
12711
12712std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesPresentBarrierNV& value)
12713{
12714	s << "VkSurfaceCapabilitiesPresentBarrierNV = {\n";
12715	s << "\tsType = " << value.sType << '\n';
12716	s << "\tpNext = " << value.pNext << '\n';
12717	s << "\tpresentBarrierSupported = " << value.presentBarrierSupported << '\n';
12718	s << '}';
12719	return s;
12720}
12721
12722std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentBarrierCreateInfoNV& value)
12723{
12724	s << "VkSwapchainPresentBarrierCreateInfoNV = {\n";
12725	s << "\tsType = " << value.sType << '\n';
12726	s << "\tpNext = " << value.pNext << '\n';
12727	s << "\tpresentBarrierEnable = " << value.presentBarrierEnable << '\n';
12728	s << '}';
12729	return s;
12730}
12731
12732std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
12733{
12734	s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
12735	s << "\tsType = " << value.sType << '\n';
12736	s << "\tpNext = " << value.pNext << '\n';
12737	s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
12738	s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
12739	s << '}';
12740	return s;
12741}
12742
12743std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
12744{
12745	s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
12746	s << "\tsType = " << value.sType << '\n';
12747	s << "\tpNext = " << value.pNext << '\n';
12748	s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
12749	s << '}';
12750	return s;
12751}
12752
12753std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
12754{
12755	s << "VkPerformanceCounterKHR = {\n";
12756	s << "\tsType = " << value.sType << '\n';
12757	s << "\tpNext = " << value.pNext << '\n';
12758	s << "\tunit = " << value.unit << '\n';
12759	s << "\tscope = " << value.scope << '\n';
12760	s << "\tstorage = " << value.storage << '\n';
12761	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';
12762	s << '}';
12763	return s;
12764}
12765
12766std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
12767{
12768	s << "VkPerformanceCounterDescriptionKHR = {\n";
12769	s << "\tsType = " << value.sType << '\n';
12770	s << "\tpNext = " << value.pNext << '\n';
12771	s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
12772	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12773	s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
12774	s << "\tdescription = " << (const char*)value.description << '\n';
12775	s << '}';
12776	return s;
12777}
12778
12779std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
12780{
12781	s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
12782	s << "\tsType = " << value.sType << '\n';
12783	s << "\tpNext = " << value.pNext << '\n';
12784	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
12785	s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
12786	s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
12787	s << '}';
12788	return s;
12789}
12790
12791std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
12792{
12793	s << "VkPerformanceCounterResultKHR = {\n";
12794	s << "\tint32 = " << value.int32 << '\n';
12795	s << "\tint64 = " << value.int64 << '\n';
12796	s << "\tuint32 = " << value.uint32 << '\n';
12797	s << "\tuint64 = " << value.uint64 << '\n';
12798	s << "\tfloat32 = " << value.float32 << '\n';
12799	s << "\tfloat64 = " << value.float64 << '\n';
12800	s << '}';
12801	return s;
12802}
12803
12804std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
12805{
12806	s << "VkAcquireProfilingLockInfoKHR = {\n";
12807	s << "\tsType = " << value.sType << '\n';
12808	s << "\tpNext = " << value.pNext << '\n';
12809	s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
12810	s << "\ttimeout = " << value.timeout << '\n';
12811	s << '}';
12812	return s;
12813}
12814
12815std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
12816{
12817	s << "VkPerformanceQuerySubmitInfoKHR = {\n";
12818	s << "\tsType = " << value.sType << '\n';
12819	s << "\tpNext = " << value.pNext << '\n';
12820	s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
12821	s << '}';
12822	return s;
12823}
12824
12825std::ostream& operator<< (std::ostream& s, const VkPerformanceQueryReservationInfoKHR& value)
12826{
12827	s << "VkPerformanceQueryReservationInfoKHR = {\n";
12828	s << "\tsType = " << value.sType << '\n';
12829	s << "\tpNext = " << value.pNext << '\n';
12830	s << "\tmaxPerformanceQueriesPerPool = " << value.maxPerformanceQueriesPerPool << '\n';
12831	s << '}';
12832	return s;
12833}
12834
12835std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
12836{
12837	s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
12838	s << "\tsType = " << value.sType << '\n';
12839	s << "\tpNext = " << value.pNext << '\n';
12840	s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
12841	s << '}';
12842	return s;
12843}
12844
12845std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
12846{
12847	s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
12848	s << "\tsType = " << value.sType << '\n';
12849	s << "\tpNext = " << value.pNext << '\n';
12850	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12851	s << '}';
12852	return s;
12853}
12854
12855std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
12856{
12857	s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
12858	s << "\tsType = " << value.sType << '\n';
12859	s << "\tpNext = " << value.pNext << '\n';
12860	s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
12861	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12862	s << '}';
12863	return s;
12864}
12865
12866std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
12867{
12868	s << "VkFramebufferMixedSamplesCombinationNV = {\n";
12869	s << "\tsType = " << value.sType << '\n';
12870	s << "\tpNext = " << value.pNext << '\n';
12871	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
12872	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
12873	s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
12874	s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
12875	s << '}';
12876	return s;
12877}
12878
12879std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
12880{
12881	s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
12882	s << "\tsType = " << value.sType << '\n';
12883	s << "\tpNext = " << value.pNext << '\n';
12884	s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
12885	s << '}';
12886	return s;
12887}
12888
12889std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
12890{
12891	s << "VkPerformanceValueDataINTEL = {\n";
12892	s << "\tvalue32 = " << value.value32 << '\n';
12893	s << "\tvalue64 = " << value.value64 << '\n';
12894	s << "\tvalueFloat = " << value.valueFloat << '\n';
12895	s << "\tvalueBool = " << value.valueBool << '\n';
12896	s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
12897	s << '}';
12898	return s;
12899}
12900
12901std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
12902{
12903	s << "VkPerformanceValueINTEL = {\n";
12904	s << "\ttype = " << value.type << '\n';
12905	s << "\tdata = " << value.data << '\n';
12906	s << '}';
12907	return s;
12908}
12909
12910std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
12911{
12912	s << "VkInitializePerformanceApiInfoINTEL = {\n";
12913	s << "\tsType = " << value.sType << '\n';
12914	s << "\tpNext = " << value.pNext << '\n';
12915	s << "\tpUserData = " << value.pUserData << '\n';
12916	s << '}';
12917	return s;
12918}
12919
12920std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
12921{
12922	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
12923	s << "\tsType = " << value.sType << '\n';
12924	s << "\tpNext = " << value.pNext << '\n';
12925	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
12926	s << '}';
12927	return s;
12928}
12929
12930std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
12931{
12932	s << "VkPerformanceMarkerInfoINTEL = {\n";
12933	s << "\tsType = " << value.sType << '\n';
12934	s << "\tpNext = " << value.pNext << '\n';
12935	s << "\tmarker = " << value.marker << '\n';
12936	s << '}';
12937	return s;
12938}
12939
12940std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
12941{
12942	s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
12943	s << "\tsType = " << value.sType << '\n';
12944	s << "\tpNext = " << value.pNext << '\n';
12945	s << "\tmarker = " << value.marker << '\n';
12946	s << '}';
12947	return s;
12948}
12949
12950std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
12951{
12952	s << "VkPerformanceOverrideInfoINTEL = {\n";
12953	s << "\tsType = " << value.sType << '\n';
12954	s << "\tpNext = " << value.pNext << '\n';
12955	s << "\ttype = " << value.type << '\n';
12956	s << "\tenable = " << value.enable << '\n';
12957	s << "\tparameter = " << value.parameter << '\n';
12958	s << '}';
12959	return s;
12960}
12961
12962std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
12963{
12964	s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
12965	s << "\tsType = " << value.sType << '\n';
12966	s << "\tpNext = " << value.pNext << '\n';
12967	s << "\ttype = " << value.type << '\n';
12968	s << '}';
12969	return s;
12970}
12971
12972std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
12973{
12974	s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
12975	s << "\tsType = " << value.sType << '\n';
12976	s << "\tpNext = " << value.pNext << '\n';
12977	s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
12978	s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
12979	s << '}';
12980	return s;
12981}
12982
12983std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8Features& value)
12984{
12985	s << "VkPhysicalDeviceIndexTypeUint8Features = {\n";
12986	s << "\tsType = " << value.sType << '\n';
12987	s << "\tpNext = " << value.pNext << '\n';
12988	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
12989	s << '}';
12990	return s;
12991}
12992
12993std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
12994{
12995	s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
12996	s << "\tsType = " << value.sType << '\n';
12997	s << "\tpNext = " << value.pNext << '\n';
12998	s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
12999	s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
13000	s << '}';
13001	return s;
13002}
13003
13004std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
13005{
13006	s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
13007	s << "\tsType = " << value.sType << '\n';
13008	s << "\tpNext = " << value.pNext << '\n';
13009	s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
13010	s << '}';
13011	return s;
13012}
13013
13014std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
13015{
13016	s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
13017	s << "\tsType = " << value.sType << '\n';
13018	s << "\tpNext = " << value.pNext << '\n';
13019	s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
13020	s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
13021	s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
13022	s << '}';
13023	return s;
13024}
13025
13026std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
13027{
13028	s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
13029	s << "\tsType = " << value.sType << '\n';
13030	s << "\tpNext = " << value.pNext << '\n';
13031	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
13032	s << '}';
13033	return s;
13034}
13035
13036std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
13037{
13038	s << "VkAttachmentReferenceStencilLayout = {\n";
13039	s << "\tsType = " << value.sType << '\n';
13040	s << "\tpNext = " << value.pNext << '\n';
13041	s << "\tstencilLayout = " << value.stencilLayout << '\n';
13042	s << '}';
13043	return s;
13044}
13045
13046std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
13047{
13048	s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
13049	s << "\tsType = " << value.sType << '\n';
13050	s << "\tpNext = " << value.pNext << '\n';
13051	s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
13052	s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
13053	s << '}';
13054	return s;
13055}
13056
13057std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
13058{
13059	s << "VkAttachmentDescriptionStencilLayout = {\n";
13060	s << "\tsType = " << value.sType << '\n';
13061	s << "\tpNext = " << value.pNext << '\n';
13062	s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
13063	s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
13064	s << '}';
13065	return s;
13066}
13067
13068std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
13069{
13070	s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
13071	s << "\tsType = " << value.sType << '\n';
13072	s << "\tpNext = " << value.pNext << '\n';
13073	s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
13074	s << '}';
13075	return s;
13076}
13077
13078std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
13079{
13080	s << "VkPipelineInfoKHR = {\n";
13081	s << "\tsType = " << value.sType << '\n';
13082	s << "\tpNext = " << value.pNext << '\n';
13083	s << "\tpipeline = " << value.pipeline << '\n';
13084	s << '}';
13085	return s;
13086}
13087
13088std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
13089{
13090	s << "VkPipelineExecutablePropertiesKHR = {\n";
13091	s << "\tsType = " << value.sType << '\n';
13092	s << "\tpNext = " << value.pNext << '\n';
13093	s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
13094	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
13095	s << "\tdescription = " << (const char*)value.description << '\n';
13096	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
13097	s << '}';
13098	return s;
13099}
13100
13101std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
13102{
13103	s << "VkPipelineExecutableInfoKHR = {\n";
13104	s << "\tsType = " << value.sType << '\n';
13105	s << "\tpNext = " << value.pNext << '\n';
13106	s << "\tpipeline = " << value.pipeline << '\n';
13107	s << "\texecutableIndex = " << value.executableIndex << '\n';
13108	s << '}';
13109	return s;
13110}
13111
13112std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
13113{
13114	s << "VkPipelineExecutableStatisticValueKHR = {\n";
13115	s << "\tb32 = " << value.b32 << '\n';
13116	s << "\ti64 = " << value.i64 << '\n';
13117	s << "\tu64 = " << value.u64 << '\n';
13118	s << "\tf64 = " << value.f64 << '\n';
13119	s << '}';
13120	return s;
13121}
13122
13123std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
13124{
13125	s << "VkPipelineExecutableStatisticKHR = {\n";
13126	s << "\tsType = " << value.sType << '\n';
13127	s << "\tpNext = " << value.pNext << '\n';
13128	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
13129	s << "\tdescription = " << (const char*)value.description << '\n';
13130	s << "\tformat = " << value.format << '\n';
13131	s << "\tvalue = " << value.value << '\n';
13132	s << '}';
13133	return s;
13134}
13135
13136std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
13137{
13138	s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
13139	s << "\tsType = " << value.sType << '\n';
13140	s << "\tpNext = " << value.pNext << '\n';
13141	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
13142	s << "\tdescription = " << (const char*)value.description << '\n';
13143	s << "\tisText = " << value.isText << '\n';
13144	s << "\tdataSize = " << value.dataSize << '\n';
13145	s << "\tpData = " << value.pData << '\n';
13146	s << '}';
13147	return s;
13148}
13149
13150std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
13151{
13152	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
13153	s << "\tsType = " << value.sType << '\n';
13154	s << "\tpNext = " << value.pNext << '\n';
13155	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
13156	s << '}';
13157	return s;
13158}
13159
13160std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
13161{
13162	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
13163	s << "\tsType = " << value.sType << '\n';
13164	s << "\tpNext = " << value.pNext << '\n';
13165	s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
13166	s << '}';
13167	return s;
13168}
13169
13170std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
13171{
13172	s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
13173	s << "\tsType = " << value.sType << '\n';
13174	s << "\tpNext = " << value.pNext << '\n';
13175	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
13176	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
13177	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
13178	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
13179	s << '}';
13180	return s;
13181}
13182
13183std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
13184{
13185	s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
13186	s << "\tsType = " << value.sType << '\n';
13187	s << "\tpNext = " << value.pNext << '\n';
13188	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
13189	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
13190	s << '}';
13191	return s;
13192}
13193
13194std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
13195{
13196	s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
13197	s << "\tsType = " << value.sType << '\n';
13198	s << "\tpNext = " << value.pNext << '\n';
13199	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
13200	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
13201	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
13202	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
13203	s << '}';
13204	return s;
13205}
13206
13207std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
13208{
13209	s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
13210	s << "\tsType = " << value.sType << '\n';
13211	s << "\tpNext = " << value.pNext << '\n';
13212	s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
13213	s << '}';
13214	return s;
13215}
13216
13217std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
13218{
13219	s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
13220	s << "\tsType = " << value.sType << '\n';
13221	s << "\tpNext = " << value.pNext << '\n';
13222	s << "\trenderPass = " << value.renderPass << '\n';
13223	s << "\tsubpass = " << value.subpass << '\n';
13224	s << '}';
13225	return s;
13226}
13227
13228std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
13229{
13230	s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
13231	s << "\tsType = " << value.sType << '\n';
13232	s << "\tpNext = " << value.pNext << '\n';
13233	s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
13234	s << '}';
13235	return s;
13236}
13237
13238std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI& value)
13239{
13240	s << "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI = {\n";
13241	s << "\tsType = " << value.sType << '\n';
13242	s << "\tpNext = " << value.pNext << '\n';
13243	s << "\tmaxWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxWorkGroupCount), DE_ARRAY_END(value.maxWorkGroupCount)) << '\n';
13244	s << "\tmaxWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxWorkGroupSize), DE_ARRAY_END(value.maxWorkGroupSize)) << '\n';
13245	s << "\tmaxOutputClusterCount = " << value.maxOutputClusterCount << '\n';
13246	s << "\tindirectBufferOffsetAlignment = " << value.indirectBufferOffsetAlignment << '\n';
13247	s << '}';
13248	return s;
13249}
13250
13251std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
13252{
13253	s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
13254	s << "\tsType = " << value.sType << '\n';
13255	s << "\tpNext = " << value.pNext << '\n';
13256	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
13257	s << '}';
13258	return s;
13259}
13260
13261std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
13262{
13263	s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
13264	s << "\tsType = " << value.sType << '\n';
13265	s << "\tpNext = " << value.pNext << '\n';
13266	s << "\tmemory = " << value.memory << '\n';
13267	s << '}';
13268	return s;
13269}
13270
13271std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeatures& value)
13272{
13273	s << "VkPhysicalDeviceLineRasterizationFeatures = {\n";
13274	s << "\tsType = " << value.sType << '\n';
13275	s << "\tpNext = " << value.pNext << '\n';
13276	s << "\trectangularLines = " << value.rectangularLines << '\n';
13277	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
13278	s << "\tsmoothLines = " << value.smoothLines << '\n';
13279	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
13280	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
13281	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
13282	s << '}';
13283	return s;
13284}
13285
13286std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationProperties& value)
13287{
13288	s << "VkPhysicalDeviceLineRasterizationProperties = {\n";
13289	s << "\tsType = " << value.sType << '\n';
13290	s << "\tpNext = " << value.pNext << '\n';
13291	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
13292	s << '}';
13293	return s;
13294}
13295
13296std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfo& value)
13297{
13298	s << "VkPipelineRasterizationLineStateCreateInfo = {\n";
13299	s << "\tsType = " << value.sType << '\n';
13300	s << "\tpNext = " << value.pNext << '\n';
13301	s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
13302	s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
13303	s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
13304	s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
13305	s << '}';
13306	return s;
13307}
13308
13309std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
13310{
13311	s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
13312	s << "\tsType = " << value.sType << '\n';
13313	s << "\tpNext = " << value.pNext << '\n';
13314	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
13315	s << '}';
13316	return s;
13317}
13318
13319std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
13320{
13321	s << "VkPhysicalDeviceVulkan11Features = {\n";
13322	s << "\tsType = " << value.sType << '\n';
13323	s << "\tpNext = " << value.pNext << '\n';
13324	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
13325	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
13326	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
13327	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
13328	s << "\tmultiview = " << value.multiview << '\n';
13329	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
13330	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
13331	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
13332	s << "\tvariablePointers = " << value.variablePointers << '\n';
13333	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
13334	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
13335	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
13336	s << '}';
13337	return s;
13338}
13339
13340std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
13341{
13342	s << "VkPhysicalDeviceVulkan11Properties = {\n";
13343	s << "\tsType = " << value.sType << '\n';
13344	s << "\tpNext = " << value.pNext << '\n';
13345	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';
13346	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';
13347	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';
13348	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
13349	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
13350	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
13351	s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
13352	s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
13353	s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
13354	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
13355	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
13356	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
13357	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
13358	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
13359	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
13360	s << '}';
13361	return s;
13362}
13363
13364std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
13365{
13366	s << "VkPhysicalDeviceVulkan12Features = {\n";
13367	s << "\tsType = " << value.sType << '\n';
13368	s << "\tpNext = " << value.pNext << '\n';
13369	s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
13370	s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
13371	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
13372	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
13373	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
13374	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
13375	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
13376	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
13377	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
13378	s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
13379	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
13380	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
13381	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
13382	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
13383	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
13384	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
13385	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
13386	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
13387	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
13388	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
13389	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
13390	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
13391	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
13392	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
13393	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
13394	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
13395	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
13396	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
13397	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
13398	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
13399	s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
13400	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
13401	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
13402	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
13403	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
13404	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
13405	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
13406	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
13407	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
13408	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
13409	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
13410	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
13411	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
13412	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
13413	s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
13414	s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
13415	s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
13416	s << '}';
13417	return s;
13418}
13419
13420std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
13421{
13422	s << "VkPhysicalDeviceVulkan12Properties = {\n";
13423	s << "\tsType = " << value.sType << '\n';
13424	s << "\tpNext = " << value.pNext << '\n';
13425	s << "\tdriverID = " << value.driverID << '\n';
13426	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
13427	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
13428	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
13429	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
13430	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
13431	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
13432	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
13433	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
13434	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
13435	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
13436	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
13437	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
13438	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
13439	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
13440	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
13441	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
13442	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
13443	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
13444	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
13445	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
13446	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
13447	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
13448	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
13449	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
13450	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
13451	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
13452	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
13453	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
13454	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
13455	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
13456	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
13457	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
13458	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
13459	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
13460	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
13461	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
13462	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
13463	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
13464	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
13465	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
13466	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
13467	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
13468	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
13469	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
13470	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
13471	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
13472	s << "\tindependentResolve = " << value.independentResolve << '\n';
13473	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
13474	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
13475	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
13476	s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
13477	s << '}';
13478	return s;
13479}
13480
13481std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
13482{
13483	s << "VkPhysicalDeviceVulkan13Features = {\n";
13484	s << "\tsType = " << value.sType << '\n';
13485	s << "\tpNext = " << value.pNext << '\n';
13486	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
13487	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
13488	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
13489	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
13490	s << "\tprivateData = " << value.privateData << '\n';
13491	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
13492	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
13493	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
13494	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
13495	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
13496	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
13497	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
13498	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
13499	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
13500	s << "\tmaintenance4 = " << value.maintenance4 << '\n';
13501	s << '}';
13502	return s;
13503}
13504
13505std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
13506{
13507	s << "VkPhysicalDeviceVulkan13Properties = {\n";
13508	s << "\tsType = " << value.sType << '\n';
13509	s << "\tpNext = " << value.pNext << '\n';
13510	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
13511	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
13512	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
13513	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
13514	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
13515	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
13516	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
13517	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
13518	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
13519	s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
13520	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
13521	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
13522	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
13523	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
13524	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
13525	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
13526	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
13527	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
13528	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
13529	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
13530	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
13531	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
13532	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
13533	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
13534	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
13535	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
13536	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
13537	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
13538	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
13539	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
13540	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
13541	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
13542	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
13543	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
13544	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
13545	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
13546	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
13547	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
13548	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
13549	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
13550	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
13551	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
13552	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
13553	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
13554	s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
13555	s << '}';
13556	return s;
13557}
13558
13559std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan14Features& value)
13560{
13561	s << "VkPhysicalDeviceVulkan14Features = {\n";
13562	s << "\tsType = " << value.sType << '\n';
13563	s << "\tpNext = " << value.pNext << '\n';
13564	s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
13565	s << "\tshaderSubgroupRotate = " << value.shaderSubgroupRotate << '\n';
13566	s << "\tshaderSubgroupRotateClustered = " << value.shaderSubgroupRotateClustered << '\n';
13567	s << "\tshaderFloatControls2 = " << value.shaderFloatControls2 << '\n';
13568	s << "\tshaderExpectAssume = " << value.shaderExpectAssume << '\n';
13569	s << "\trectangularLines = " << value.rectangularLines << '\n';
13570	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
13571	s << "\tsmoothLines = " << value.smoothLines << '\n';
13572	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
13573	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
13574	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
13575	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
13576	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
13577	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
13578	s << "\tdynamicRenderingLocalRead = " << value.dynamicRenderingLocalRead << '\n';
13579	s << "\tmaintenance5 = " << value.maintenance5 << '\n';
13580	s << "\tmaintenance6 = " << value.maintenance6 << '\n';
13581	s << "\tpipelineProtectedAccess = " << value.pipelineProtectedAccess << '\n';
13582	s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
13583	s << "\thostImageCopy = " << value.hostImageCopy << '\n';
13584	s << "\tpushDescriptor = " << value.pushDescriptor << '\n';
13585	s << '}';
13586	return s;
13587}
13588
13589std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan14Properties& value)
13590{
13591	s << "VkPhysicalDeviceVulkan14Properties = {\n";
13592	s << "\tsType = " << value.sType << '\n';
13593	s << "\tpNext = " << value.pNext << '\n';
13594	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
13595	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
13596	s << "\tsupportsNonZeroFirstInstance = " << value.supportsNonZeroFirstInstance << '\n';
13597	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
13598	s << "\tdynamicRenderingLocalReadDepthStencilAttachments = " << value.dynamicRenderingLocalReadDepthStencilAttachments << '\n';
13599	s << "\tdynamicRenderingLocalReadMultisampledAttachments = " << value.dynamicRenderingLocalReadMultisampledAttachments << '\n';
13600	s << "\tearlyFragmentMultisampleCoverageAfterSampleCounting = " << value.earlyFragmentMultisampleCoverageAfterSampleCounting << '\n';
13601	s << "\tearlyFragmentSampleMaskTestBeforeSampleCounting = " << value.earlyFragmentSampleMaskTestBeforeSampleCounting << '\n';
13602	s << "\tdepthStencilSwizzleOneSupport = " << value.depthStencilSwizzleOneSupport << '\n';
13603	s << "\tpolygonModePointSize = " << value.polygonModePointSize << '\n';
13604	s << "\tnonStrictSinglePixelWideLinesUseParallelogram = " << value.nonStrictSinglePixelWideLinesUseParallelogram << '\n';
13605	s << "\tnonStrictWideLinesUseParallelogram = " << value.nonStrictWideLinesUseParallelogram << '\n';
13606	s << "\tblockTexelViewCompatibleMultipleLayers = " << value.blockTexelViewCompatibleMultipleLayers << '\n';
13607	s << "\tmaxCombinedImageSamplerDescriptorCount = " << value.maxCombinedImageSamplerDescriptorCount << '\n';
13608	s << "\tfragmentShadingRateClampCombinerInputs = " << value.fragmentShadingRateClampCombinerInputs << '\n';
13609	s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
13610	s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
13611	s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
13612	s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
13613	s << "\tcopySrcLayoutCount = " << value.copySrcLayoutCount << '\n';
13614	s << "\tpCopySrcLayouts = " << value.pCopySrcLayouts << '\n';
13615	s << "\tcopyDstLayoutCount = " << value.copyDstLayoutCount << '\n';
13616	s << "\tpCopyDstLayouts = " << value.pCopyDstLayouts << '\n';
13617	s << "\toptimalTilingLayoutUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.optimalTilingLayoutUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.optimalTilingLayoutUUID))) << '\n';
13618	s << "\tidenticalMemoryTypeRequirements = " << value.identicalMemoryTypeRequirements << '\n';
13619	s << '}';
13620	return s;
13621}
13622
13623std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
13624{
13625	s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
13626	s << "\tsType = " << value.sType << '\n';
13627	s << "\tpNext = " << value.pNext << '\n';
13628	s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
13629	s << '}';
13630	return s;
13631}
13632
13633std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
13634{
13635	s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
13636	s << "\tsType = " << value.sType << '\n';
13637	s << "\tpNext = " << value.pNext << '\n';
13638	s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
13639	s << '}';
13640	return s;
13641}
13642
13643std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
13644{
13645	s << "VkPhysicalDeviceToolProperties = {\n";
13646	s << "\tsType = " << value.sType << '\n';
13647	s << "\tpNext = " << value.pNext << '\n';
13648	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
13649	s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
13650	s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
13651	s << "\tdescription = " << (const char*)value.description << '\n';
13652	s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
13653	s << '}';
13654	return s;
13655}
13656
13657std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
13658{
13659	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
13660	s << "\tsType = " << value.sType << '\n';
13661	s << "\tpNext = " << value.pNext << '\n';
13662	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
13663	s << "\tformat = " << value.format << '\n';
13664	s << '}';
13665	return s;
13666}
13667
13668std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
13669{
13670	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
13671	s << "\tsType = " << value.sType << '\n';
13672	s << "\tpNext = " << value.pNext << '\n';
13673	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
13674	s << '}';
13675	return s;
13676}
13677
13678std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
13679{
13680	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
13681	s << "\tsType = " << value.sType << '\n';
13682	s << "\tpNext = " << value.pNext << '\n';
13683	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
13684	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
13685	s << '}';
13686	return s;
13687}
13688
13689std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
13690{
13691	s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
13692	s << "\tsType = " << value.sType << '\n';
13693	s << "\tpNext = " << value.pNext << '\n';
13694	s << "\tcomponents = " << value.components << '\n';
13695	s << "\tsrgb = " << value.srgb << '\n';
13696	s << '}';
13697	return s;
13698}
13699
13700std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
13701{
13702	s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
13703	s << "\tsType = " << value.sType << '\n';
13704	s << "\tpNext = " << value.pNext << '\n';
13705	s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
13706	s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
13707	s << '}';
13708	return s;
13709}
13710
13711std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
13712{
13713	s << "VkDeviceOrHostAddressKHR = {\n";
13714	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13715	s << "\thostAddress = " << value.hostAddress << '\n';
13716	s << '}';
13717	return s;
13718}
13719
13720std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
13721{
13722	s << "VkDeviceOrHostAddressConstKHR = {\n";
13723	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13724	s << "\thostAddress = " << value.hostAddress << '\n';
13725	s << '}';
13726	return s;
13727}
13728
13729std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstAMDX& value)
13730{
13731	s << "VkDeviceOrHostAddressConstAMDX = {\n";
13732	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13733	s << "\thostAddress = " << value.hostAddress << '\n';
13734	s << '}';
13735	return s;
13736}
13737
13738std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
13739{
13740	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
13741	s << "\tsType = " << value.sType << '\n';
13742	s << "\tpNext = " << value.pNext << '\n';
13743	s << "\tvertexFormat = " << value.vertexFormat << '\n';
13744	s << "\tvertexData = " << value.vertexData << '\n';
13745	s << "\tvertexStride = " << value.vertexStride << '\n';
13746	s << "\tmaxVertex = " << value.maxVertex << '\n';
13747	s << "\tindexType = " << value.indexType << '\n';
13748	s << "\tindexData = " << value.indexData << '\n';
13749	s << "\ttransformData = " << value.transformData << '\n';
13750	s << '}';
13751	return s;
13752}
13753
13754std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
13755{
13756	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
13757	s << "\tsType = " << value.sType << '\n';
13758	s << "\tpNext = " << value.pNext << '\n';
13759	s << "\tdata = " << value.data << '\n';
13760	s << "\tstride = " << value.stride << '\n';
13761	s << '}';
13762	return s;
13763}
13764
13765std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
13766{
13767	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
13768	s << "\tsType = " << value.sType << '\n';
13769	s << "\tpNext = " << value.pNext << '\n';
13770	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
13771	s << "\tdata = " << value.data << '\n';
13772	s << '}';
13773	return s;
13774}
13775
13776std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
13777{
13778	s << "VkAccelerationStructureGeometryDataKHR = {\n";
13779	s << "\ttriangles = " << value.triangles << '\n';
13780	s << "\taabbs = " << value.aabbs << '\n';
13781	s << "\tinstances = " << value.instances << '\n';
13782	s << '}';
13783	return s;
13784}
13785
13786std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
13787{
13788	s << "VkAccelerationStructureGeometryKHR = {\n";
13789	s << "\tsType = " << value.sType << '\n';
13790	s << "\tpNext = " << value.pNext << '\n';
13791	s << "\tgeometryType = " << value.geometryType << '\n';
13792	s << "\tgeometry = " << value.geometry << '\n';
13793	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
13794	s << '}';
13795	return s;
13796}
13797
13798std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
13799{
13800	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
13801	s << "\tsType = " << value.sType << '\n';
13802	s << "\tpNext = " << value.pNext << '\n';
13803	s << "\ttype = " << value.type << '\n';
13804	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
13805	s << "\tmode = " << value.mode << '\n';
13806	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
13807	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
13808	s << "\tgeometryCount = " << value.geometryCount << '\n';
13809	s << "\tpGeometries = " << value.pGeometries << '\n';
13810	s << "\tppGeometries = " << value.ppGeometries << '\n';
13811	s << "\tscratchData = " << value.scratchData << '\n';
13812	s << '}';
13813	return s;
13814}
13815
13816std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
13817{
13818	s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
13819	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
13820	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
13821	s << "\tfirstVertex = " << value.firstVertex << '\n';
13822	s << "\ttransformOffset = " << value.transformOffset << '\n';
13823	s << '}';
13824	return s;
13825}
13826
13827std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
13828{
13829	s << "VkAccelerationStructureCreateInfoKHR = {\n";
13830	s << "\tsType = " << value.sType << '\n';
13831	s << "\tpNext = " << value.pNext << '\n';
13832	s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
13833	s << "\tbuffer = " << value.buffer << '\n';
13834	s << "\toffset = " << value.offset << '\n';
13835	s << "\tsize = " << value.size << '\n';
13836	s << "\ttype = " << value.type << '\n';
13837	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
13838	s << '}';
13839	return s;
13840}
13841
13842std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
13843{
13844	s << "VkAabbPositionsKHR = {\n";
13845	s << "\tminX = " << value.minX << '\n';
13846	s << "\tminY = " << value.minY << '\n';
13847	s << "\tminZ = " << value.minZ << '\n';
13848	s << "\tmaxX = " << value.maxX << '\n';
13849	s << "\tmaxY = " << value.maxY << '\n';
13850	s << "\tmaxZ = " << value.maxZ << '\n';
13851	s << '}';
13852	return s;
13853}
13854
13855std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
13856{
13857	s << "VkTransformMatrixKHR = {\n";
13858	s << "\tmatrix = " << '\n';
13859	for(uint32_t i0 = 0 ; i0 < 3 ; ++i0)
13860		s << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix[i0]), DE_ARRAY_END(value.matrix[i0])) << '\n';
13861	s << '}';
13862	return s;
13863}
13864
13865std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
13866{
13867	s << "VkAccelerationStructureInstanceKHR = {\n";
13868	s << "\ttransform = " << value.transform << '\n';
13869	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
13870	s << "\tmask = " << value.mask << '\n';
13871	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
13872	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
13873	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
13874	s << '}';
13875	return s;
13876}
13877
13878std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
13879{
13880	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
13881	s << "\tsType = " << value.sType << '\n';
13882	s << "\tpNext = " << value.pNext << '\n';
13883	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
13884	s << '}';
13885	return s;
13886}
13887
13888std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
13889{
13890	s << "VkAccelerationStructureVersionInfoKHR = {\n";
13891	s << "\tsType = " << value.sType << '\n';
13892	s << "\tpNext = " << value.pNext << '\n';
13893	s << "\tpVersionData = " << value.pVersionData << '\n';
13894	s << '}';
13895	return s;
13896}
13897
13898std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
13899{
13900	s << "VkCopyAccelerationStructureInfoKHR = {\n";
13901	s << "\tsType = " << value.sType << '\n';
13902	s << "\tpNext = " << value.pNext << '\n';
13903	s << "\tsrc = " << value.src << '\n';
13904	s << "\tdst = " << value.dst << '\n';
13905	s << "\tmode = " << value.mode << '\n';
13906	s << '}';
13907	return s;
13908}
13909
13910std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
13911{
13912	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
13913	s << "\tsType = " << value.sType << '\n';
13914	s << "\tpNext = " << value.pNext << '\n';
13915	s << "\tsrc = " << value.src << '\n';
13916	s << "\tdst = " << value.dst << '\n';
13917	s << "\tmode = " << value.mode << '\n';
13918	s << '}';
13919	return s;
13920}
13921
13922std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
13923{
13924	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
13925	s << "\tsType = " << value.sType << '\n';
13926	s << "\tpNext = " << value.pNext << '\n';
13927	s << "\tsrc = " << value.src << '\n';
13928	s << "\tdst = " << value.dst << '\n';
13929	s << "\tmode = " << value.mode << '\n';
13930	s << '}';
13931	return s;
13932}
13933
13934std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
13935{
13936	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
13937	s << "\tsType = " << value.sType << '\n';
13938	s << "\tpNext = " << value.pNext << '\n';
13939	s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
13940	s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
13941	s << '}';
13942	return s;
13943}
13944
13945std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
13946{
13947	s << "VkPipelineLibraryCreateInfoKHR = {\n";
13948	s << "\tsType = " << value.sType << '\n';
13949	s << "\tpNext = " << value.pNext << '\n';
13950	s << "\tlibraryCount = " << value.libraryCount << '\n';
13951	s << "\tpLibraries = " << value.pLibraries << '\n';
13952	s << '}';
13953	return s;
13954}
13955
13956std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
13957{
13958	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
13959	s << "\tsType = " << value.sType << '\n';
13960	s << "\tpNext = " << value.pNext << '\n';
13961	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
13962	s << '}';
13963	return s;
13964}
13965
13966std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
13967{
13968	s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
13969	s << "\tsType = " << value.sType << '\n';
13970	s << "\tpNext = " << value.pNext << '\n';
13971	s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
13972	s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
13973	s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
13974	s << '}';
13975	return s;
13976}
13977
13978std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT& value)
13979{
13980	s << "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = {\n";
13981	s << "\tsType = " << value.sType << '\n';
13982	s << "\tpNext = " << value.pNext << '\n';
13983	s << "\textendedDynamicState3TessellationDomainOrigin = " << value.extendedDynamicState3TessellationDomainOrigin << '\n';
13984	s << "\textendedDynamicState3DepthClampEnable = " << value.extendedDynamicState3DepthClampEnable << '\n';
13985	s << "\textendedDynamicState3PolygonMode = " << value.extendedDynamicState3PolygonMode << '\n';
13986	s << "\textendedDynamicState3RasterizationSamples = " << value.extendedDynamicState3RasterizationSamples << '\n';
13987	s << "\textendedDynamicState3SampleMask = " << value.extendedDynamicState3SampleMask << '\n';
13988	s << "\textendedDynamicState3AlphaToCoverageEnable = " << value.extendedDynamicState3AlphaToCoverageEnable << '\n';
13989	s << "\textendedDynamicState3AlphaToOneEnable = " << value.extendedDynamicState3AlphaToOneEnable << '\n';
13990	s << "\textendedDynamicState3LogicOpEnable = " << value.extendedDynamicState3LogicOpEnable << '\n';
13991	s << "\textendedDynamicState3ColorBlendEnable = " << value.extendedDynamicState3ColorBlendEnable << '\n';
13992	s << "\textendedDynamicState3ColorBlendEquation = " << value.extendedDynamicState3ColorBlendEquation << '\n';
13993	s << "\textendedDynamicState3ColorWriteMask = " << value.extendedDynamicState3ColorWriteMask << '\n';
13994	s << "\textendedDynamicState3RasterizationStream = " << value.extendedDynamicState3RasterizationStream << '\n';
13995	s << "\textendedDynamicState3ConservativeRasterizationMode = " << value.extendedDynamicState3ConservativeRasterizationMode << '\n';
13996	s << "\textendedDynamicState3ExtraPrimitiveOverestimationSize = " << value.extendedDynamicState3ExtraPrimitiveOverestimationSize << '\n';
13997	s << "\textendedDynamicState3DepthClipEnable = " << value.extendedDynamicState3DepthClipEnable << '\n';
13998	s << "\textendedDynamicState3SampleLocationsEnable = " << value.extendedDynamicState3SampleLocationsEnable << '\n';
13999	s << "\textendedDynamicState3ColorBlendAdvanced = " << value.extendedDynamicState3ColorBlendAdvanced << '\n';
14000	s << "\textendedDynamicState3ProvokingVertexMode = " << value.extendedDynamicState3ProvokingVertexMode << '\n';
14001	s << "\textendedDynamicState3LineRasterizationMode = " << value.extendedDynamicState3LineRasterizationMode << '\n';
14002	s << "\textendedDynamicState3LineStippleEnable = " << value.extendedDynamicState3LineStippleEnable << '\n';
14003	s << "\textendedDynamicState3DepthClipNegativeOneToOne = " << value.extendedDynamicState3DepthClipNegativeOneToOne << '\n';
14004	s << "\textendedDynamicState3ViewportWScalingEnable = " << value.extendedDynamicState3ViewportWScalingEnable << '\n';
14005	s << "\textendedDynamicState3ViewportSwizzle = " << value.extendedDynamicState3ViewportSwizzle << '\n';
14006	s << "\textendedDynamicState3CoverageToColorEnable = " << value.extendedDynamicState3CoverageToColorEnable << '\n';
14007	s << "\textendedDynamicState3CoverageToColorLocation = " << value.extendedDynamicState3CoverageToColorLocation << '\n';
14008	s << "\textendedDynamicState3CoverageModulationMode = " << value.extendedDynamicState3CoverageModulationMode << '\n';
14009	s << "\textendedDynamicState3CoverageModulationTableEnable = " << value.extendedDynamicState3CoverageModulationTableEnable << '\n';
14010	s << "\textendedDynamicState3CoverageModulationTable = " << value.extendedDynamicState3CoverageModulationTable << '\n';
14011	s << "\textendedDynamicState3CoverageReductionMode = " << value.extendedDynamicState3CoverageReductionMode << '\n';
14012	s << "\textendedDynamicState3RepresentativeFragmentTestEnable = " << value.extendedDynamicState3RepresentativeFragmentTestEnable << '\n';
14013	s << "\textendedDynamicState3ShadingRateImageEnable = " << value.extendedDynamicState3ShadingRateImageEnable << '\n';
14014	s << '}';
14015	return s;
14016}
14017
14018std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT& value)
14019{
14020	s << "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = {\n";
14021	s << "\tsType = " << value.sType << '\n';
14022	s << "\tpNext = " << value.pNext << '\n';
14023	s << "\tdynamicPrimitiveTopologyUnrestricted = " << value.dynamicPrimitiveTopologyUnrestricted << '\n';
14024	s << '}';
14025	return s;
14026}
14027
14028std::ostream& operator<< (std::ostream& s, const VkColorBlendEquationEXT& value)
14029{
14030	s << "VkColorBlendEquationEXT = {\n";
14031	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
14032	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
14033	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
14034	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
14035	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
14036	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
14037	s << '}';
14038	return s;
14039}
14040
14041std::ostream& operator<< (std::ostream& s, const VkColorBlendAdvancedEXT& value)
14042{
14043	s << "VkColorBlendAdvancedEXT = {\n";
14044	s << "\tadvancedBlendOp = " << value.advancedBlendOp << '\n';
14045	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
14046	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
14047	s << "\tblendOverlap = " << value.blendOverlap << '\n';
14048	s << "\tclampResults = " << value.clampResults << '\n';
14049	s << '}';
14050	return s;
14051}
14052
14053std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
14054{
14055	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
14056	s << "\tsType = " << value.sType << '\n';
14057	s << "\tpNext = " << value.pNext << '\n';
14058	s << "\ttransform = " << value.transform << '\n';
14059	s << '}';
14060	return s;
14061}
14062
14063std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
14064{
14065	s << "VkCopyCommandTransformInfoQCOM = {\n";
14066	s << "\tsType = " << value.sType << '\n';
14067	s << "\tpNext = " << value.pNext << '\n';
14068	s << "\ttransform = " << value.transform << '\n';
14069	s << '}';
14070	return s;
14071}
14072
14073std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
14074{
14075	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
14076	s << "\tsType = " << value.sType << '\n';
14077	s << "\tpNext = " << value.pNext << '\n';
14078	s << "\ttransform = " << value.transform << '\n';
14079	s << "\trenderArea = " << value.renderArea << '\n';
14080	s << '}';
14081	return s;
14082}
14083
14084std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
14085{
14086	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
14087	s << "\tsType = " << value.sType << '\n';
14088	s << "\tpNext = " << value.pNext << '\n';
14089	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
14090	s << '}';
14091	return s;
14092}
14093
14094std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
14095{
14096	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
14097	s << "\tsType = " << value.sType << '\n';
14098	s << "\tpNext = " << value.pNext << '\n';
14099	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
14100	s << '}';
14101	return s;
14102}
14103
14104std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
14105{
14106	s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
14107	s << "\tsType = " << value.sType << '\n';
14108	s << "\tpNext = " << value.pNext << '\n';
14109	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
14110	s << '}';
14111	return s;
14112}
14113
14114std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
14115{
14116	s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
14117	s << "\tsType = " << value.sType << '\n';
14118	s << "\tpNext = " << value.pNext << '\n';
14119	s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
14120	s << '}';
14121	return s;
14122}
14123
14124std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
14125{
14126	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
14127	s << "\tsType = " << value.sType << '\n';
14128	s << "\tpNext = " << value.pNext << '\n';
14129	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
14130	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
14131	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
14132	s << '}';
14133	return s;
14134}
14135
14136std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
14137{
14138	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
14139	s << "\tsType = " << value.sType << '\n';
14140	s << "\tpNext = " << value.pNext << '\n';
14141	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
14142	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
14143	s << '}';
14144	return s;
14145}
14146
14147std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
14148{
14149	s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
14150	s << "\tsType = " << value.sType << '\n';
14151	s << "\tpNext = " << value.pNext << '\n';
14152	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
14153	s << '}';
14154	return s;
14155}
14156
14157std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
14158{
14159	s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
14160	s << "\tsType = " << value.sType << '\n';
14161	s << "\tpNext = " << value.pNext << '\n';
14162	s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
14163	s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
14164	s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
14165	s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
14166	s << '}';
14167	return s;
14168}
14169
14170std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
14171{
14172	s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
14173	s << "\tsType = " << value.sType << '\n';
14174	s << "\tpNext = " << value.pNext << '\n';
14175	s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
14176	s << "\tevents = " << value.events << '\n';
14177	s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
14178	s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
14179	s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
14180	s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
14181	s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
14182	s << "\tpointPolygons = " << value.pointPolygons << '\n';
14183	s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
14184	s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
14185	s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
14186	s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
14187	s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
14188	s << "\ttriangleFans = " << value.triangleFans << '\n';
14189	s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
14190	s << '}';
14191	return s;
14192}
14193
14194std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
14195{
14196	s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
14197	s << "\tsType = " << value.sType << '\n';
14198	s << "\tpNext = " << value.pNext << '\n';
14199	s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
14200	s << '}';
14201	return s;
14202}
14203
14204std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
14205{
14206	s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
14207	s << "\tsType = " << value.sType << '\n';
14208	s << "\tpNext = " << value.pNext << '\n';
14209	s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
14210	s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
14211	s << '}';
14212	return s;
14213}
14214
14215std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
14216{
14217	s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
14218	s << "\tsType = " << value.sType << '\n';
14219	s << "\tpNext = " << value.pNext << '\n';
14220	s << "\tsubpassShading = " << value.subpassShading << '\n';
14221	s << '}';
14222	return s;
14223}
14224
14225std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI& value)
14226{
14227	s << "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI = {\n";
14228	s << "\tsType = " << value.sType << '\n';
14229	s << "\tpNext = " << value.pNext << '\n';
14230	s << "\tclustercullingShader = " << value.clustercullingShader << '\n';
14231	s << "\tmultiviewClusterCullingShader = " << value.multiviewClusterCullingShader << '\n';
14232	s << '}';
14233	return s;
14234}
14235
14236std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI& value)
14237{
14238	s << "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = {\n";
14239	s << "\tsType = " << value.sType << '\n';
14240	s << "\tpNext = " << value.pNext << '\n';
14241	s << "\tclusterShadingRate = " << value.clusterShadingRate << '\n';
14242	s << '}';
14243	return s;
14244}
14245
14246std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
14247{
14248	s << "VkBufferCopy2 = {\n";
14249	s << "\tsType = " << value.sType << '\n';
14250	s << "\tpNext = " << value.pNext << '\n';
14251	s << "\tsrcOffset = " << value.srcOffset << '\n';
14252	s << "\tdstOffset = " << value.dstOffset << '\n';
14253	s << "\tsize = " << value.size << '\n';
14254	s << '}';
14255	return s;
14256}
14257
14258std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
14259{
14260	s << "VkImageCopy2 = {\n";
14261	s << "\tsType = " << value.sType << '\n';
14262	s << "\tpNext = " << value.pNext << '\n';
14263	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
14264	s << "\tsrcOffset = " << value.srcOffset << '\n';
14265	s << "\tdstSubresource = " << value.dstSubresource << '\n';
14266	s << "\tdstOffset = " << value.dstOffset << '\n';
14267	s << "\textent = " << value.extent << '\n';
14268	s << '}';
14269	return s;
14270}
14271
14272std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
14273{
14274	s << "VkImageBlit2 = {\n";
14275	s << "\tsType = " << value.sType << '\n';
14276	s << "\tpNext = " << value.pNext << '\n';
14277	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
14278	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
14279	s << "\tdstSubresource = " << value.dstSubresource << '\n';
14280	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
14281	s << '}';
14282	return s;
14283}
14284
14285std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
14286{
14287	s << "VkBufferImageCopy2 = {\n";
14288	s << "\tsType = " << value.sType << '\n';
14289	s << "\tpNext = " << value.pNext << '\n';
14290	s << "\tbufferOffset = " << value.bufferOffset << '\n';
14291	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
14292	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
14293	s << "\timageSubresource = " << value.imageSubresource << '\n';
14294	s << "\timageOffset = " << value.imageOffset << '\n';
14295	s << "\timageExtent = " << value.imageExtent << '\n';
14296	s << '}';
14297	return s;
14298}
14299
14300std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
14301{
14302	s << "VkImageResolve2 = {\n";
14303	s << "\tsType = " << value.sType << '\n';
14304	s << "\tpNext = " << value.pNext << '\n';
14305	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
14306	s << "\tsrcOffset = " << value.srcOffset << '\n';
14307	s << "\tdstSubresource = " << value.dstSubresource << '\n';
14308	s << "\tdstOffset = " << value.dstOffset << '\n';
14309	s << "\textent = " << value.extent << '\n';
14310	s << '}';
14311	return s;
14312}
14313
14314std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
14315{
14316	s << "VkCopyBufferInfo2 = {\n";
14317	s << "\tsType = " << value.sType << '\n';
14318	s << "\tpNext = " << value.pNext << '\n';
14319	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
14320	s << "\tdstBuffer = " << value.dstBuffer << '\n';
14321	s << "\tregionCount = " << value.regionCount << '\n';
14322	s << "\tpRegions = " << value.pRegions << '\n';
14323	s << '}';
14324	return s;
14325}
14326
14327std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
14328{
14329	s << "VkCopyImageInfo2 = {\n";
14330	s << "\tsType = " << value.sType << '\n';
14331	s << "\tpNext = " << value.pNext << '\n';
14332	s << "\tsrcImage = " << value.srcImage << '\n';
14333	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14334	s << "\tdstImage = " << value.dstImage << '\n';
14335	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14336	s << "\tregionCount = " << value.regionCount << '\n';
14337	s << "\tpRegions = " << value.pRegions << '\n';
14338	s << '}';
14339	return s;
14340}
14341
14342std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
14343{
14344	s << "VkBlitImageInfo2 = {\n";
14345	s << "\tsType = " << value.sType << '\n';
14346	s << "\tpNext = " << value.pNext << '\n';
14347	s << "\tsrcImage = " << value.srcImage << '\n';
14348	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14349	s << "\tdstImage = " << value.dstImage << '\n';
14350	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14351	s << "\tregionCount = " << value.regionCount << '\n';
14352	s << "\tpRegions = " << value.pRegions << '\n';
14353	s << "\tfilter = " << value.filter << '\n';
14354	s << '}';
14355	return s;
14356}
14357
14358std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
14359{
14360	s << "VkCopyBufferToImageInfo2 = {\n";
14361	s << "\tsType = " << value.sType << '\n';
14362	s << "\tpNext = " << value.pNext << '\n';
14363	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
14364	s << "\tdstImage = " << value.dstImage << '\n';
14365	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14366	s << "\tregionCount = " << value.regionCount << '\n';
14367	s << "\tpRegions = " << value.pRegions << '\n';
14368	s << '}';
14369	return s;
14370}
14371
14372std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
14373{
14374	s << "VkCopyImageToBufferInfo2 = {\n";
14375	s << "\tsType = " << value.sType << '\n';
14376	s << "\tpNext = " << value.pNext << '\n';
14377	s << "\tsrcImage = " << value.srcImage << '\n';
14378	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14379	s << "\tdstBuffer = " << value.dstBuffer << '\n';
14380	s << "\tregionCount = " << value.regionCount << '\n';
14381	s << "\tpRegions = " << value.pRegions << '\n';
14382	s << '}';
14383	return s;
14384}
14385
14386std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
14387{
14388	s << "VkResolveImageInfo2 = {\n";
14389	s << "\tsType = " << value.sType << '\n';
14390	s << "\tpNext = " << value.pNext << '\n';
14391	s << "\tsrcImage = " << value.srcImage << '\n';
14392	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
14393	s << "\tdstImage = " << value.dstImage << '\n';
14394	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
14395	s << "\tregionCount = " << value.regionCount << '\n';
14396	s << "\tpRegions = " << value.pRegions << '\n';
14397	s << '}';
14398	return s;
14399}
14400
14401std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
14402{
14403	s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
14404	s << "\tsType = " << value.sType << '\n';
14405	s << "\tpNext = " << value.pNext << '\n';
14406	s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
14407	s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
14408	s << '}';
14409	return s;
14410}
14411
14412std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
14413{
14414	s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
14415	s << "\tsType = " << value.sType << '\n';
14416	s << "\tpNext = " << value.pNext << '\n';
14417	s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
14418	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
14419	s << '}';
14420	return s;
14421}
14422
14423std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
14424{
14425	s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
14426	s << "\tsType = " << value.sType << '\n';
14427	s << "\tpNext = " << value.pNext << '\n';
14428	s << "\tfragmentSize = " << value.fragmentSize << '\n';
14429	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
14430	s << '}';
14431	return s;
14432}
14433
14434std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
14435{
14436	s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
14437	s << "\tsType = " << value.sType << '\n';
14438	s << "\tpNext = " << value.pNext << '\n';
14439	s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
14440	s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
14441	s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
14442	s << '}';
14443	return s;
14444}
14445
14446std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
14447{
14448	s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
14449	s << "\tsType = " << value.sType << '\n';
14450	s << "\tpNext = " << value.pNext << '\n';
14451	s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
14452	s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
14453	s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
14454	s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
14455	s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
14456	s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
14457	s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
14458	s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
14459	s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
14460	s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
14461	s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
14462	s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
14463	s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
14464	s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
14465	s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
14466	s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
14467	s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
14468	s << '}';
14469	return s;
14470}
14471
14472std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
14473{
14474	s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
14475	s << "\tsType = " << value.sType << '\n';
14476	s << "\tpNext = " << value.pNext << '\n';
14477	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
14478	s << "\tfragmentSize = " << value.fragmentSize << '\n';
14479	s << '}';
14480	return s;
14481}
14482
14483std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
14484{
14485	s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
14486	s << "\tsType = " << value.sType << '\n';
14487	s << "\tpNext = " << value.pNext << '\n';
14488	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
14489	s << '}';
14490	return s;
14491}
14492
14493std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
14494{
14495	s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
14496	s << "\tsType = " << value.sType << '\n';
14497	s << "\tpNext = " << value.pNext << '\n';
14498	s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
14499	s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
14500	s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
14501	s << '}';
14502	return s;
14503}
14504
14505std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
14506{
14507	s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
14508	s << "\tsType = " << value.sType << '\n';
14509	s << "\tpNext = " << value.pNext << '\n';
14510	s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
14511	s << '}';
14512	return s;
14513}
14514
14515std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
14516{
14517	s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
14518	s << "\tsType = " << value.sType << '\n';
14519	s << "\tpNext = " << value.pNext << '\n';
14520	s << "\tshadingRateType = " << value.shadingRateType << '\n';
14521	s << "\tshadingRate = " << value.shadingRate << '\n';
14522	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
14523	s << '}';
14524	return s;
14525}
14526
14527std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
14528{
14529	s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
14530	s << "\tsType = " << value.sType << '\n';
14531	s << "\tpNext = " << value.pNext << '\n';
14532	s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
14533	s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
14534	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
14535	s << '}';
14536	return s;
14537}
14538
14539std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
14540{
14541	s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
14542	s << "\tsType = " << value.sType << '\n';
14543	s << "\tpNext = " << value.pNext << '\n';
14544	s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
14545	s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
14546	s << '}';
14547	return s;
14548}
14549
14550std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT& value)
14551{
14552	s << "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT = {\n";
14553	s << "\tsType = " << value.sType << '\n';
14554	s << "\tpNext = " << value.pNext << '\n';
14555	s << "\timageSlicedViewOf3D = " << value.imageSlicedViewOf3D << '\n';
14556	s << '}';
14557	return s;
14558}
14559
14560std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT& value)
14561{
14562	s << "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = {\n";
14563	s << "\tsType = " << value.sType << '\n';
14564	s << "\tpNext = " << value.pNext << '\n';
14565	s << "\tattachmentFeedbackLoopDynamicState = " << value.attachmentFeedbackLoopDynamicState << '\n';
14566	s << '}';
14567	return s;
14568}
14569
14570std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT& value)
14571{
14572	s << "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT = {\n";
14573	s << "\tsType = " << value.sType << '\n';
14574	s << "\tpNext = " << value.pNext << '\n';
14575	s << "\tlegacyVertexAttributes = " << value.legacyVertexAttributes << '\n';
14576	s << '}';
14577	return s;
14578}
14579
14580std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT& value)
14581{
14582	s << "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT = {\n";
14583	s << "\tsType = " << value.sType << '\n';
14584	s << "\tpNext = " << value.pNext << '\n';
14585	s << "\tnativeUnalignedPerformance = " << value.nativeUnalignedPerformance << '\n';
14586	s << '}';
14587	return s;
14588}
14589
14590std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT& value)
14591{
14592	s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = {\n";
14593	s << "\tsType = " << value.sType << '\n';
14594	s << "\tpNext = " << value.pNext << '\n';
14595	s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
14596	s << '}';
14597	return s;
14598}
14599
14600std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListEXT& value)
14601{
14602	s << "VkMutableDescriptorTypeListEXT = {\n";
14603	s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
14604	s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
14605	s << '}';
14606	return s;
14607}
14608
14609std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoEXT& value)
14610{
14611	s << "VkMutableDescriptorTypeCreateInfoEXT = {\n";
14612	s << "\tsType = " << value.sType << '\n';
14613	s << "\tpNext = " << value.pNext << '\n';
14614	s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
14615	s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
14616	s << '}';
14617	return s;
14618}
14619
14620std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
14621{
14622	s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
14623	s << "\tsType = " << value.sType << '\n';
14624	s << "\tpNext = " << value.pNext << '\n';
14625	s << "\tdepthClipControl = " << value.depthClipControl << '\n';
14626	s << '}';
14627	return s;
14628}
14629
14630std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT& value)
14631{
14632	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT = {\n";
14633	s << "\tsType = " << value.sType << '\n';
14634	s << "\tpNext = " << value.pNext << '\n';
14635	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
14636	s << "\tdynamicGeneratedPipelineLayout = " << value.dynamicGeneratedPipelineLayout << '\n';
14637	s << '}';
14638	return s;
14639}
14640
14641std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT& value)
14642{
14643	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT = {\n";
14644	s << "\tsType = " << value.sType << '\n';
14645	s << "\tpNext = " << value.pNext << '\n';
14646	s << "\tmaxIndirectPipelineCount = " << value.maxIndirectPipelineCount << '\n';
14647	s << "\tmaxIndirectShaderObjectCount = " << value.maxIndirectShaderObjectCount << '\n';
14648	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
14649	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
14650	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
14651	s << "\tmaxIndirectCommandsIndirectStride = " << value.maxIndirectCommandsIndirectStride << '\n';
14652	s << "\tsupportedIndirectCommandsInputModes = " << getIndirectCommandsInputModeFlagsEXTStr(value.supportedIndirectCommandsInputModes) << '\n';
14653	s << "\tsupportedIndirectCommandsShaderStages = " << getShaderStageFlagsStr(value.supportedIndirectCommandsShaderStages) << '\n';
14654	s << "\tsupportedIndirectCommandsShaderStagesPipelineBinding = " << getShaderStageFlagsStr(value.supportedIndirectCommandsShaderStagesPipelineBinding) << '\n';
14655	s << "\tsupportedIndirectCommandsShaderStagesShaderBinding = " << getShaderStageFlagsStr(value.supportedIndirectCommandsShaderStagesShaderBinding) << '\n';
14656	s << "\tdeviceGeneratedCommandsTransformFeedback = " << value.deviceGeneratedCommandsTransformFeedback << '\n';
14657	s << "\tdeviceGeneratedCommandsMultiDrawIndirectCount = " << value.deviceGeneratedCommandsMultiDrawIndirectCount << '\n';
14658	s << '}';
14659	return s;
14660}
14661
14662std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsPipelineInfoEXT& value)
14663{
14664	s << "VkGeneratedCommandsPipelineInfoEXT = {\n";
14665	s << "\tsType = " << value.sType << '\n';
14666	s << "\tpNext = " << value.pNext << '\n';
14667	s << "\tpipeline = " << value.pipeline << '\n';
14668	s << '}';
14669	return s;
14670}
14671
14672std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsShaderInfoEXT& value)
14673{
14674	s << "VkGeneratedCommandsShaderInfoEXT = {\n";
14675	s << "\tsType = " << value.sType << '\n';
14676	s << "\tpNext = " << value.pNext << '\n';
14677	s << "\tshaderCount = " << value.shaderCount << '\n';
14678	s << "\tpShaders = " << value.pShaders << '\n';
14679	s << '}';
14680	return s;
14681}
14682
14683std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoEXT& value)
14684{
14685	s << "VkGeneratedCommandsMemoryRequirementsInfoEXT = {\n";
14686	s << "\tsType = " << value.sType << '\n';
14687	s << "\tpNext = " << value.pNext << '\n';
14688	s << "\tindirectExecutionSet = " << value.indirectExecutionSet << '\n';
14689	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
14690	s << "\tmaxSequenceCount = " << value.maxSequenceCount << '\n';
14691	s << "\tmaxDrawCount = " << value.maxDrawCount << '\n';
14692	s << '}';
14693	return s;
14694}
14695
14696std::ostream& operator<< (std::ostream& s, const VkIndirectExecutionSetPipelineInfoEXT& value)
14697{
14698	s << "VkIndirectExecutionSetPipelineInfoEXT = {\n";
14699	s << "\tsType = " << value.sType << '\n';
14700	s << "\tpNext = " << value.pNext << '\n';
14701	s << "\tinitialPipeline = " << value.initialPipeline << '\n';
14702	s << "\tmaxPipelineCount = " << value.maxPipelineCount << '\n';
14703	s << '}';
14704	return s;
14705}
14706
14707std::ostream& operator<< (std::ostream& s, const VkIndirectExecutionSetShaderLayoutInfoEXT& value)
14708{
14709	s << "VkIndirectExecutionSetShaderLayoutInfoEXT = {\n";
14710	s << "\tsType = " << value.sType << '\n';
14711	s << "\tpNext = " << value.pNext << '\n';
14712	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
14713	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
14714	s << '}';
14715	return s;
14716}
14717
14718std::ostream& operator<< (std::ostream& s, const VkIndirectExecutionSetShaderInfoEXT& value)
14719{
14720	s << "VkIndirectExecutionSetShaderInfoEXT = {\n";
14721	s << "\tsType = " << value.sType << '\n';
14722	s << "\tpNext = " << value.pNext << '\n';
14723	s << "\tshaderCount = " << value.shaderCount << '\n';
14724	s << "\tpInitialShaders = " << value.pInitialShaders << '\n';
14725	s << "\tpSetLayoutInfos = " << value.pSetLayoutInfos << '\n';
14726	s << "\tmaxShaderCount = " << value.maxShaderCount << '\n';
14727	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
14728	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
14729	s << '}';
14730	return s;
14731}
14732
14733std::ostream& operator<< (std::ostream& s, const VkIndirectExecutionSetInfoEXT& value)
14734{
14735	s << "VkIndirectExecutionSetInfoEXT = {\n";
14736	s << "\tpPipelineInfo = " << value.pPipelineInfo << '\n';
14737	s << "\tpShaderInfo = " << value.pShaderInfo << '\n';
14738	s << '}';
14739	return s;
14740}
14741
14742std::ostream& operator<< (std::ostream& s, const VkIndirectExecutionSetCreateInfoEXT& value)
14743{
14744	s << "VkIndirectExecutionSetCreateInfoEXT = {\n";
14745	s << "\tsType = " << value.sType << '\n';
14746	s << "\tpNext = " << value.pNext << '\n';
14747	s << "\ttype = " << value.type << '\n';
14748	s << "\tinfo = " << value.info << '\n';
14749	s << '}';
14750	return s;
14751}
14752
14753std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoEXT& value)
14754{
14755	s << "VkGeneratedCommandsInfoEXT = {\n";
14756	s << "\tsType = " << value.sType << '\n';
14757	s << "\tpNext = " << value.pNext << '\n';
14758	s << "\tshaderStages = " << getShaderStageFlagsStr(value.shaderStages) << '\n';
14759	s << "\tindirectExecutionSet = " << value.indirectExecutionSet << '\n';
14760	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
14761	s << "\tindirectAddress = " << value.indirectAddress << '\n';
14762	s << "\tindirectAddressSize = " << value.indirectAddressSize << '\n';
14763	s << "\tpreprocessAddress = " << value.preprocessAddress << '\n';
14764	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
14765	s << "\tmaxSequenceCount = " << value.maxSequenceCount << '\n';
14766	s << "\tsequenceCountAddress = " << value.sequenceCountAddress << '\n';
14767	s << "\tmaxDrawCount = " << value.maxDrawCount << '\n';
14768	s << '}';
14769	return s;
14770}
14771
14772std::ostream& operator<< (std::ostream& s, const VkWriteIndirectExecutionSetPipelineEXT& value)
14773{
14774	s << "VkWriteIndirectExecutionSetPipelineEXT = {\n";
14775	s << "\tsType = " << value.sType << '\n';
14776	s << "\tpNext = " << value.pNext << '\n';
14777	s << "\tindex = " << value.index << '\n';
14778	s << "\tpipeline = " << value.pipeline << '\n';
14779	s << '}';
14780	return s;
14781}
14782
14783std::ostream& operator<< (std::ostream& s, const VkWriteIndirectExecutionSetShaderEXT& value)
14784{
14785	s << "VkWriteIndirectExecutionSetShaderEXT = {\n";
14786	s << "\tsType = " << value.sType << '\n';
14787	s << "\tpNext = " << value.pNext << '\n';
14788	s << "\tindex = " << value.index << '\n';
14789	s << "\tshader = " << value.shader << '\n';
14790	s << '}';
14791	return s;
14792}
14793
14794std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoEXT& value)
14795{
14796	s << "VkIndirectCommandsLayoutCreateInfoEXT = {\n";
14797	s << "\tsType = " << value.sType << '\n';
14798	s << "\tpNext = " << value.pNext << '\n';
14799	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsEXTStr(value.flags) << '\n';
14800	s << "\tshaderStages = " << getShaderStageFlagsStr(value.shaderStages) << '\n';
14801	s << "\tindirectStride = " << value.indirectStride << '\n';
14802	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
14803	s << "\ttokenCount = " << value.tokenCount << '\n';
14804	s << "\tpTokens = " << value.pTokens << '\n';
14805	s << '}';
14806	return s;
14807}
14808
14809std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenEXT& value)
14810{
14811	s << "VkIndirectCommandsLayoutTokenEXT = {\n";
14812	s << "\tsType = " << value.sType << '\n';
14813	s << "\tpNext = " << value.pNext << '\n';
14814	s << "\ttype = " << value.type << '\n';
14815	s << "\tdata = " << value.data << '\n';
14816	s << "\toffset = " << value.offset << '\n';
14817	s << '}';
14818	return s;
14819}
14820
14821std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCountIndirectCommandEXT& value)
14822{
14823	s << "VkDrawIndirectCountIndirectCommandEXT = {\n";
14824	s << "\tbufferAddress = " << value.bufferAddress << '\n';
14825	s << "\tstride = " << value.stride << '\n';
14826	s << "\tcommandCount = " << value.commandCount << '\n';
14827	s << '}';
14828	return s;
14829}
14830
14831std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsVertexBufferTokenEXT& value)
14832{
14833	s << "VkIndirectCommandsVertexBufferTokenEXT = {\n";
14834	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
14835	s << '}';
14836	return s;
14837}
14838
14839std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandEXT& value)
14840{
14841	s << "VkBindVertexBufferIndirectCommandEXT = {\n";
14842	s << "\tbufferAddress = " << value.bufferAddress << '\n';
14843	s << "\tsize = " << value.size << '\n';
14844	s << "\tstride = " << value.stride << '\n';
14845	s << '}';
14846	return s;
14847}
14848
14849std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsIndexBufferTokenEXT& value)
14850{
14851	s << "VkIndirectCommandsIndexBufferTokenEXT = {\n";
14852	s << "\tmode = " << value.mode << '\n';
14853	s << '}';
14854	return s;
14855}
14856
14857std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandEXT& value)
14858{
14859	s << "VkBindIndexBufferIndirectCommandEXT = {\n";
14860	s << "\tbufferAddress = " << value.bufferAddress << '\n';
14861	s << "\tsize = " << value.size << '\n';
14862	s << "\tindexType = " << value.indexType << '\n';
14863	s << '}';
14864	return s;
14865}
14866
14867std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsPushConstantTokenEXT& value)
14868{
14869	s << "VkIndirectCommandsPushConstantTokenEXT = {\n";
14870	s << "\tupdateRange = " << value.updateRange << '\n';
14871	s << '}';
14872	return s;
14873}
14874
14875std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsExecutionSetTokenEXT& value)
14876{
14877	s << "VkIndirectCommandsExecutionSetTokenEXT = {\n";
14878	s << "\ttype = " << value.type << '\n';
14879	s << "\tshaderStages = " << getShaderStageFlagsStr(value.shaderStages) << '\n';
14880	s << '}';
14881	return s;
14882}
14883
14884std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsTokenDataEXT& value)
14885{
14886	s << "VkIndirectCommandsTokenDataEXT = {\n";
14887	s << "\tpPushConstant = " << value.pPushConstant << '\n';
14888	s << "\tpVertexBuffer = " << value.pVertexBuffer << '\n';
14889	s << "\tpIndexBuffer = " << value.pIndexBuffer << '\n';
14890	s << "\tpExecutionSet = " << value.pExecutionSet << '\n';
14891	s << '}';
14892	return s;
14893}
14894
14895std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
14896{
14897	s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
14898	s << "\tsType = " << value.sType << '\n';
14899	s << "\tpNext = " << value.pNext << '\n';
14900	s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
14901	s << '}';
14902	return s;
14903}
14904
14905std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampControlFeaturesEXT& value)
14906{
14907	s << "VkPhysicalDeviceDepthClampControlFeaturesEXT = {\n";
14908	s << "\tsType = " << value.sType << '\n';
14909	s << "\tpNext = " << value.pNext << '\n';
14910	s << "\tdepthClampControl = " << value.depthClampControl << '\n';
14911	s << '}';
14912	return s;
14913}
14914
14915std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClampControlCreateInfoEXT& value)
14916{
14917	s << "VkPipelineViewportDepthClampControlCreateInfoEXT = {\n";
14918	s << "\tsType = " << value.sType << '\n';
14919	s << "\tpNext = " << value.pNext << '\n';
14920	s << "\tdepthClampMode = " << value.depthClampMode << '\n';
14921	s << "\tpDepthClampRange = " << value.pDepthClampRange << '\n';
14922	s << '}';
14923	return s;
14924}
14925
14926std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
14927{
14928	s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
14929	s << "\tsType = " << value.sType << '\n';
14930	s << "\tpNext = " << value.pNext << '\n';
14931	s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
14932	s << '}';
14933	return s;
14934}
14935
14936std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
14937{
14938	s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
14939	s << "\tsType = " << value.sType << '\n';
14940	s << "\tpNext = " << value.pNext << '\n';
14941	s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
14942	s << '}';
14943	return s;
14944}
14945
14946std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR& value)
14947{
14948	s << "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = {\n";
14949	s << "\tsType = " << value.sType << '\n';
14950	s << "\tpNext = " << value.pNext << '\n';
14951	s << "\tshaderRelaxedExtendedInstruction = " << value.shaderRelaxedExtendedInstruction << '\n';
14952	s << '}';
14953	return s;
14954}
14955
14956std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
14957{
14958	s << "VkVertexInputBindingDescription2EXT = {\n";
14959	s << "\tsType = " << value.sType << '\n';
14960	s << "\tpNext = " << value.pNext << '\n';
14961	s << "\tbinding = " << value.binding << '\n';
14962	s << "\tstride = " << value.stride << '\n';
14963	s << "\tinputRate = " << value.inputRate << '\n';
14964	s << "\tdivisor = " << value.divisor << '\n';
14965	s << '}';
14966	return s;
14967}
14968
14969std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
14970{
14971	s << "VkVertexInputAttributeDescription2EXT = {\n";
14972	s << "\tsType = " << value.sType << '\n';
14973	s << "\tpNext = " << value.pNext << '\n';
14974	s << "\tlocation = " << value.location << '\n';
14975	s << "\tbinding = " << value.binding << '\n';
14976	s << "\tformat = " << value.format << '\n';
14977	s << "\toffset = " << value.offset << '\n';
14978	s << '}';
14979	return s;
14980}
14981
14982std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
14983{
14984	s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
14985	s << "\tsType = " << value.sType << '\n';
14986	s << "\tpNext = " << value.pNext << '\n';
14987	s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
14988	s << '}';
14989	return s;
14990}
14991
14992std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
14993{
14994	s << "VkPipelineColorWriteCreateInfoEXT = {\n";
14995	s << "\tsType = " << value.sType << '\n';
14996	s << "\tpNext = " << value.pNext << '\n';
14997	s << "\tattachmentCount = " << value.attachmentCount << '\n';
14998	s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
14999	s << '}';
15000	return s;
15001}
15002
15003std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
15004{
15005	s << "VkMemoryBarrier2 = {\n";
15006	s << "\tsType = " << value.sType << '\n';
15007	s << "\tpNext = " << value.pNext << '\n';
15008	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
15009	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
15010	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
15011	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
15012	s << '}';
15013	return s;
15014}
15015
15016std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
15017{
15018	s << "VkImageMemoryBarrier2 = {\n";
15019	s << "\tsType = " << value.sType << '\n';
15020	s << "\tpNext = " << value.pNext << '\n';
15021	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
15022	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
15023	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
15024	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
15025	s << "\toldLayout = " << value.oldLayout << '\n';
15026	s << "\tnewLayout = " << value.newLayout << '\n';
15027	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
15028	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
15029	s << "\timage = " << value.image << '\n';
15030	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
15031	s << '}';
15032	return s;
15033}
15034
15035std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
15036{
15037	s << "VkBufferMemoryBarrier2 = {\n";
15038	s << "\tsType = " << value.sType << '\n';
15039	s << "\tpNext = " << value.pNext << '\n';
15040	s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
15041	s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
15042	s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
15043	s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
15044	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
15045	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
15046	s << "\tbuffer = " << value.buffer << '\n';
15047	s << "\toffset = " << value.offset << '\n';
15048	s << "\tsize = " << value.size << '\n';
15049	s << '}';
15050	return s;
15051}
15052
15053std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
15054{
15055	s << "VkDependencyInfo = {\n";
15056	s << "\tsType = " << value.sType << '\n';
15057	s << "\tpNext = " << value.pNext << '\n';
15058	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
15059	s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
15060	s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
15061	s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
15062	s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
15063	s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
15064	s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
15065	s << '}';
15066	return s;
15067}
15068
15069std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
15070{
15071	s << "VkSemaphoreSubmitInfo = {\n";
15072	s << "\tsType = " << value.sType << '\n';
15073	s << "\tpNext = " << value.pNext << '\n';
15074	s << "\tsemaphore = " << value.semaphore << '\n';
15075	s << "\tvalue = " << value.value << '\n';
15076	s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
15077	s << "\tdeviceIndex = " << value.deviceIndex << '\n';
15078	s << '}';
15079	return s;
15080}
15081
15082std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
15083{
15084	s << "VkCommandBufferSubmitInfo = {\n";
15085	s << "\tsType = " << value.sType << '\n';
15086	s << "\tpNext = " << value.pNext << '\n';
15087	s << "\tcommandBuffer = " << value.commandBuffer << '\n';
15088	s << "\tdeviceMask = " << value.deviceMask << '\n';
15089	s << '}';
15090	return s;
15091}
15092
15093std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
15094{
15095	s << "VkSubmitInfo2 = {\n";
15096	s << "\tsType = " << value.sType << '\n';
15097	s << "\tpNext = " << value.pNext << '\n';
15098	s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
15099	s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
15100	s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
15101	s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
15102	s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
15103	s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
15104	s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
15105	s << '}';
15106	return s;
15107}
15108
15109std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
15110{
15111	s << "VkQueueFamilyCheckpointProperties2NV = {\n";
15112	s << "\tsType = " << value.sType << '\n';
15113	s << "\tpNext = " << value.pNext << '\n';
15114	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
15115	s << '}';
15116	return s;
15117}
15118
15119std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
15120{
15121	s << "VkCheckpointData2NV = {\n";
15122	s << "\tsType = " << value.sType << '\n';
15123	s << "\tpNext = " << value.pNext << '\n';
15124	s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
15125	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
15126	s << '}';
15127	return s;
15128}
15129
15130std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
15131{
15132	s << "VkPhysicalDeviceSynchronization2Features = {\n";
15133	s << "\tsType = " << value.sType << '\n';
15134	s << "\tpNext = " << value.pNext << '\n';
15135	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
15136	s << '}';
15137	return s;
15138}
15139
15140std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostImageCopyFeatures& value)
15141{
15142	s << "VkPhysicalDeviceHostImageCopyFeatures = {\n";
15143	s << "\tsType = " << value.sType << '\n';
15144	s << "\tpNext = " << value.pNext << '\n';
15145	s << "\thostImageCopy = " << value.hostImageCopy << '\n';
15146	s << '}';
15147	return s;
15148}
15149
15150std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostImageCopyProperties& value)
15151{
15152	s << "VkPhysicalDeviceHostImageCopyProperties = {\n";
15153	s << "\tsType = " << value.sType << '\n';
15154	s << "\tpNext = " << value.pNext << '\n';
15155	s << "\tcopySrcLayoutCount = " << value.copySrcLayoutCount << '\n';
15156	s << "\tpCopySrcLayouts = " << value.pCopySrcLayouts << '\n';
15157	s << "\tcopyDstLayoutCount = " << value.copyDstLayoutCount << '\n';
15158	s << "\tpCopyDstLayouts = " << value.pCopyDstLayouts << '\n';
15159	s << "\toptimalTilingLayoutUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.optimalTilingLayoutUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.optimalTilingLayoutUUID))) << '\n';
15160	s << "\tidenticalMemoryTypeRequirements = " << value.identicalMemoryTypeRequirements << '\n';
15161	s << '}';
15162	return s;
15163}
15164
15165std::ostream& operator<< (std::ostream& s, const VkMemoryToImageCopy& value)
15166{
15167	s << "VkMemoryToImageCopy = {\n";
15168	s << "\tsType = " << value.sType << '\n';
15169	s << "\tpNext = " << value.pNext << '\n';
15170	s << "\tpHostPointer = " << value.pHostPointer << '\n';
15171	s << "\tmemoryRowLength = " << value.memoryRowLength << '\n';
15172	s << "\tmemoryImageHeight = " << value.memoryImageHeight << '\n';
15173	s << "\timageSubresource = " << value.imageSubresource << '\n';
15174	s << "\timageOffset = " << value.imageOffset << '\n';
15175	s << "\timageExtent = " << value.imageExtent << '\n';
15176	s << '}';
15177	return s;
15178}
15179
15180std::ostream& operator<< (std::ostream& s, const VkImageToMemoryCopy& value)
15181{
15182	s << "VkImageToMemoryCopy = {\n";
15183	s << "\tsType = " << value.sType << '\n';
15184	s << "\tpNext = " << value.pNext << '\n';
15185	s << "\tpHostPointer = " << value.pHostPointer << '\n';
15186	s << "\tmemoryRowLength = " << value.memoryRowLength << '\n';
15187	s << "\tmemoryImageHeight = " << value.memoryImageHeight << '\n';
15188	s << "\timageSubresource = " << value.imageSubresource << '\n';
15189	s << "\timageOffset = " << value.imageOffset << '\n';
15190	s << "\timageExtent = " << value.imageExtent << '\n';
15191	s << '}';
15192	return s;
15193}
15194
15195std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToImageInfo& value)
15196{
15197	s << "VkCopyMemoryToImageInfo = {\n";
15198	s << "\tsType = " << value.sType << '\n';
15199	s << "\tpNext = " << value.pNext << '\n';
15200	s << "\tflags = " << getHostImageCopyFlagsStr(value.flags) << '\n';
15201	s << "\tdstImage = " << value.dstImage << '\n';
15202	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
15203	s << "\tregionCount = " << value.regionCount << '\n';
15204	s << "\tpRegions = " << value.pRegions << '\n';
15205	s << '}';
15206	return s;
15207}
15208
15209std::ostream& operator<< (std::ostream& s, const VkCopyImageToMemoryInfo& value)
15210{
15211	s << "VkCopyImageToMemoryInfo = {\n";
15212	s << "\tsType = " << value.sType << '\n';
15213	s << "\tpNext = " << value.pNext << '\n';
15214	s << "\tflags = " << getHostImageCopyFlagsStr(value.flags) << '\n';
15215	s << "\tsrcImage = " << value.srcImage << '\n';
15216	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
15217	s << "\tregionCount = " << value.regionCount << '\n';
15218	s << "\tpRegions = " << value.pRegions << '\n';
15219	s << '}';
15220	return s;
15221}
15222
15223std::ostream& operator<< (std::ostream& s, const VkCopyImageToImageInfo& value)
15224{
15225	s << "VkCopyImageToImageInfo = {\n";
15226	s << "\tsType = " << value.sType << '\n';
15227	s << "\tpNext = " << value.pNext << '\n';
15228	s << "\tflags = " << getHostImageCopyFlagsStr(value.flags) << '\n';
15229	s << "\tsrcImage = " << value.srcImage << '\n';
15230	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
15231	s << "\tdstImage = " << value.dstImage << '\n';
15232	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
15233	s << "\tregionCount = " << value.regionCount << '\n';
15234	s << "\tpRegions = " << value.pRegions << '\n';
15235	s << '}';
15236	return s;
15237}
15238
15239std::ostream& operator<< (std::ostream& s, const VkHostImageLayoutTransitionInfo& value)
15240{
15241	s << "VkHostImageLayoutTransitionInfo = {\n";
15242	s << "\tsType = " << value.sType << '\n';
15243	s << "\tpNext = " << value.pNext << '\n';
15244	s << "\timage = " << value.image << '\n';
15245	s << "\toldLayout = " << value.oldLayout << '\n';
15246	s << "\tnewLayout = " << value.newLayout << '\n';
15247	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
15248	s << '}';
15249	return s;
15250}
15251
15252std::ostream& operator<< (std::ostream& s, const VkSubresourceHostMemcpySize& value)
15253{
15254	s << "VkSubresourceHostMemcpySize = {\n";
15255	s << "\tsType = " << value.sType << '\n';
15256	s << "\tpNext = " << value.pNext << '\n';
15257	s << "\tsize = " << value.size << '\n';
15258	s << '}';
15259	return s;
15260}
15261
15262std::ostream& operator<< (std::ostream& s, const VkHostImageCopyDevicePerformanceQuery& value)
15263{
15264	s << "VkHostImageCopyDevicePerformanceQuery = {\n";
15265	s << "\tsType = " << value.sType << '\n';
15266	s << "\tpNext = " << value.pNext << '\n';
15267	s << "\toptimalDeviceAccess = " << value.optimalDeviceAccess << '\n';
15268	s << "\tidenticalMemoryLayout = " << value.identicalMemoryLayout << '\n';
15269	s << '}';
15270	return s;
15271}
15272
15273std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
15274{
15275	s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
15276	s << "\tsType = " << value.sType << '\n';
15277	s << "\tpNext = " << value.pNext << '\n';
15278	s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
15279	s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
15280	s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
15281	s << '}';
15282	return s;
15283}
15284
15285std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyDitheringFeaturesEXT& value)
15286{
15287	s << "VkPhysicalDeviceLegacyDitheringFeaturesEXT = {\n";
15288	s << "\tsType = " << value.sType << '\n';
15289	s << "\tpNext = " << value.pNext << '\n';
15290	s << "\tlegacyDithering = " << value.legacyDithering << '\n';
15291	s << '}';
15292	return s;
15293}
15294
15295std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
15296{
15297	s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
15298	s << "\tsType = " << value.sType << '\n';
15299	s << "\tpNext = " << value.pNext << '\n';
15300	s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
15301	s << '}';
15302	return s;
15303}
15304
15305std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
15306{
15307	s << "VkSubpassResolvePerformanceQueryEXT = {\n";
15308	s << "\tsType = " << value.sType << '\n';
15309	s << "\tpNext = " << value.pNext << '\n';
15310	s << "\toptimal = " << value.optimal << '\n';
15311	s << '}';
15312	return s;
15313}
15314
15315std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
15316{
15317	s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
15318	s << "\tsType = " << value.sType << '\n';
15319	s << "\tpNext = " << value.pNext << '\n';
15320	s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
15321	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
15322	s << '}';
15323	return s;
15324}
15325
15326std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineProtectedAccessFeatures& value)
15327{
15328	s << "VkPhysicalDevicePipelineProtectedAccessFeatures = {\n";
15329	s << "\tsType = " << value.sType << '\n';
15330	s << "\tpNext = " << value.pNext << '\n';
15331	s << "\tpipelineProtectedAccess = " << value.pipelineProtectedAccess << '\n';
15332	s << '}';
15333	return s;
15334}
15335
15336std::ostream& operator<< (std::ostream& s, const VkQueueFamilyVideoPropertiesKHR& value)
15337{
15338	s << "VkQueueFamilyVideoPropertiesKHR = {\n";
15339	s << "\tsType = " << value.sType << '\n';
15340	s << "\tpNext = " << value.pNext << '\n';
15341	s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
15342	s << '}';
15343	return s;
15344}
15345
15346std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusPropertiesKHR& value)
15347{
15348	s << "VkQueueFamilyQueryResultStatusPropertiesKHR = {\n";
15349	s << "\tsType = " << value.sType << '\n';
15350	s << "\tpNext = " << value.pNext << '\n';
15351	s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
15352	s << '}';
15353	return s;
15354}
15355
15356std::ostream& operator<< (std::ostream& s, const VkVideoProfileListInfoKHR& value)
15357{
15358	s << "VkVideoProfileListInfoKHR = {\n";
15359	s << "\tsType = " << value.sType << '\n';
15360	s << "\tpNext = " << value.pNext << '\n';
15361	s << "\tprofileCount = " << value.profileCount << '\n';
15362	s << "\tpProfiles = " << value.pProfiles << '\n';
15363	s << '}';
15364	return s;
15365}
15366
15367std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
15368{
15369	s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
15370	s << "\tsType = " << value.sType << '\n';
15371	s << "\tpNext = " << value.pNext << '\n';
15372	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
15373	s << '}';
15374	return s;
15375}
15376
15377std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
15378{
15379	s << "VkVideoFormatPropertiesKHR = {\n";
15380	s << "\tsType = " << value.sType << '\n';
15381	s << "\tpNext = " << value.pNext << '\n';
15382	s << "\tformat = " << value.format << '\n';
15383	s << "\tcomponentMapping = " << value.componentMapping << '\n';
15384	s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
15385	s << "\timageType = " << value.imageType << '\n';
15386	s << "\timageTiling = " << value.imageTiling << '\n';
15387	s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
15388	s << '}';
15389	return s;
15390}
15391
15392std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQuantizationMapCapabilitiesKHR& value)
15393{
15394	s << "VkVideoEncodeQuantizationMapCapabilitiesKHR = {\n";
15395	s << "\tsType = " << value.sType << '\n';
15396	s << "\tpNext = " << value.pNext << '\n';
15397	s << "\tmaxQuantizationMapExtent = " << value.maxQuantizationMapExtent << '\n';
15398	s << '}';
15399	return s;
15400}
15401
15402std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QuantizationMapCapabilitiesKHR& value)
15403{
15404	s << "VkVideoEncodeH264QuantizationMapCapabilitiesKHR = {\n";
15405	s << "\tsType = " << value.sType << '\n';
15406	s << "\tpNext = " << value.pNext << '\n';
15407	s << "\tminQpDelta = " << value.minQpDelta << '\n';
15408	s << "\tmaxQpDelta = " << value.maxQpDelta << '\n';
15409	s << '}';
15410	return s;
15411}
15412
15413std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QuantizationMapCapabilitiesKHR& value)
15414{
15415	s << "VkVideoEncodeH265QuantizationMapCapabilitiesKHR = {\n";
15416	s << "\tsType = " << value.sType << '\n';
15417	s << "\tpNext = " << value.pNext << '\n';
15418	s << "\tminQpDelta = " << value.minQpDelta << '\n';
15419	s << "\tmaxQpDelta = " << value.maxQpDelta << '\n';
15420	s << '}';
15421	return s;
15422}
15423
15424std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1QuantizationMapCapabilitiesKHR& value)
15425{
15426	s << "VkVideoEncodeAV1QuantizationMapCapabilitiesKHR = {\n";
15427	s << "\tsType = " << value.sType << '\n';
15428	s << "\tpNext = " << value.pNext << '\n';
15429	s << "\tminQIndexDelta = " << value.minQIndexDelta << '\n';
15430	s << "\tmaxQIndexDelta = " << value.maxQIndexDelta << '\n';
15431	s << '}';
15432	return s;
15433}
15434
15435std::ostream& operator<< (std::ostream& s, const VkVideoFormatQuantizationMapPropertiesKHR& value)
15436{
15437	s << "VkVideoFormatQuantizationMapPropertiesKHR = {\n";
15438	s << "\tsType = " << value.sType << '\n';
15439	s << "\tpNext = " << value.pNext << '\n';
15440	s << "\tquantizationMapTexelSize = " << value.quantizationMapTexelSize << '\n';
15441	s << '}';
15442	return s;
15443}
15444
15445std::ostream& operator<< (std::ostream& s, const VkVideoFormatH265QuantizationMapPropertiesKHR& value)
15446{
15447	s << "VkVideoFormatH265QuantizationMapPropertiesKHR = {\n";
15448	s << "\tsType = " << value.sType << '\n';
15449	s << "\tpNext = " << value.pNext << '\n';
15450	s << "\tcompatibleCtbSizes = " << getVideoEncodeH265CtbSizeFlagsKHRStr(value.compatibleCtbSizes) << '\n';
15451	s << '}';
15452	return s;
15453}
15454
15455std::ostream& operator<< (std::ostream& s, const VkVideoFormatAV1QuantizationMapPropertiesKHR& value)
15456{
15457	s << "VkVideoFormatAV1QuantizationMapPropertiesKHR = {\n";
15458	s << "\tsType = " << value.sType << '\n';
15459	s << "\tpNext = " << value.pNext << '\n';
15460	s << "\tcompatibleSuperblockSizes = " << getVideoEncodeAV1SuperblockSizeFlagsKHRStr(value.compatibleSuperblockSizes) << '\n';
15461	s << '}';
15462	return s;
15463}
15464
15465std::ostream& operator<< (std::ostream& s, const VkVideoProfileInfoKHR& value)
15466{
15467	s << "VkVideoProfileInfoKHR = {\n";
15468	s << "\tsType = " << value.sType << '\n';
15469	s << "\tpNext = " << value.pNext << '\n';
15470	s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
15471	s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
15472	s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
15473	s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
15474	s << '}';
15475	return s;
15476}
15477
15478std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
15479{
15480	s << "VkVideoCapabilitiesKHR = {\n";
15481	s << "\tsType = " << value.sType << '\n';
15482	s << "\tpNext = " << value.pNext << '\n';
15483	s << "\tflags = " << getVideoCapabilityFlagsKHRStr(value.flags) << '\n';
15484	s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
15485	s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
15486	s << "\tpictureAccessGranularity = " << value.pictureAccessGranularity << '\n';
15487	s << "\tminCodedExtent = " << value.minCodedExtent << '\n';
15488	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
15489	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
15490	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
15491	s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
15492	s << '}';
15493	return s;
15494}
15495
15496std::ostream& operator<< (std::ostream& s, const VkVideoSessionMemoryRequirementsKHR& value)
15497{
15498	s << "VkVideoSessionMemoryRequirementsKHR = {\n";
15499	s << "\tsType = " << value.sType << '\n';
15500	s << "\tpNext = " << value.pNext << '\n';
15501	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
15502	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
15503	s << '}';
15504	return s;
15505}
15506
15507std::ostream& operator<< (std::ostream& s, const VkBindVideoSessionMemoryInfoKHR& value)
15508{
15509	s << "VkBindVideoSessionMemoryInfoKHR = {\n";
15510	s << "\tsType = " << value.sType << '\n';
15511	s << "\tpNext = " << value.pNext << '\n';
15512	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
15513	s << "\tmemory = " << value.memory << '\n';
15514	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
15515	s << "\tmemorySize = " << value.memorySize << '\n';
15516	s << '}';
15517	return s;
15518}
15519
15520std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceInfoKHR& value)
15521{
15522	s << "VkVideoPictureResourceInfoKHR = {\n";
15523	s << "\tsType = " << value.sType << '\n';
15524	s << "\tpNext = " << value.pNext << '\n';
15525	s << "\tcodedOffset = " << value.codedOffset << '\n';
15526	s << "\tcodedExtent = " << value.codedExtent << '\n';
15527	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
15528	s << "\timageViewBinding = " << value.imageViewBinding << '\n';
15529	s << '}';
15530	return s;
15531}
15532
15533std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotInfoKHR& value)
15534{
15535	s << "VkVideoReferenceSlotInfoKHR = {\n";
15536	s << "\tsType = " << value.sType << '\n';
15537	s << "\tpNext = " << value.pNext << '\n';
15538	s << "\tslotIndex = " << value.slotIndex << '\n';
15539	s << "\tpPictureResource = " << value.pPictureResource << '\n';
15540	s << '}';
15541	return s;
15542}
15543
15544std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
15545{
15546	s << "VkVideoDecodeCapabilitiesKHR = {\n";
15547	s << "\tsType = " << value.sType << '\n';
15548	s << "\tpNext = " << value.pNext << '\n';
15549	s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
15550	s << '}';
15551	return s;
15552}
15553
15554std::ostream& operator<< (std::ostream& s, const VkVideoDecodeUsageInfoKHR& value)
15555{
15556	s << "VkVideoDecodeUsageInfoKHR = {\n";
15557	s << "\tsType = " << value.sType << '\n';
15558	s << "\tpNext = " << value.pNext << '\n';
15559	s << "\tvideoUsageHints = " << getVideoDecodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
15560	s << '}';
15561	return s;
15562}
15563
15564std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
15565{
15566	s << "VkVideoDecodeInfoKHR = {\n";
15567	s << "\tsType = " << value.sType << '\n';
15568	s << "\tpNext = " << value.pNext << '\n';
15569	s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
15570	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
15571	s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
15572	s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
15573	s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
15574	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
15575	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
15576	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
15577	s << '}';
15578	return s;
15579}
15580
15581std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoMaintenance1FeaturesKHR& value)
15582{
15583	s << "VkPhysicalDeviceVideoMaintenance1FeaturesKHR = {\n";
15584	s << "\tsType = " << value.sType << '\n';
15585	s << "\tpNext = " << value.pNext << '\n';
15586	s << "\tvideoMaintenance1 = " << value.videoMaintenance1 << '\n';
15587	s << '}';
15588	return s;
15589}
15590
15591std::ostream& operator<< (std::ostream& s, const VkVideoInlineQueryInfoKHR& value)
15592{
15593	s << "VkVideoInlineQueryInfoKHR = {\n";
15594	s << "\tsType = " << value.sType << '\n';
15595	s << "\tpNext = " << value.pNext << '\n';
15596	s << "\tqueryPool = " << value.queryPool << '\n';
15597	s << "\tfirstQuery = " << value.firstQuery << '\n';
15598	s << "\tqueryCount = " << value.queryCount << '\n';
15599	s << '}';
15600	return s;
15601}
15602
15603std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileInfoKHR& value)
15604{
15605	s << "VkVideoDecodeH264ProfileInfoKHR = {\n";
15606	s << "\tsType = " << value.sType << '\n';
15607	s << "\tpNext = " << value.pNext << '\n';
15608	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
15609	s << "\tpictureLayout = " << value.pictureLayout << '\n';
15610	s << '}';
15611	return s;
15612}
15613
15614std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesKHR& value)
15615{
15616	s << "VkVideoDecodeH264CapabilitiesKHR = {\n";
15617	s << "\tsType = " << value.sType << '\n';
15618	s << "\tpNext = " << value.pNext << '\n';
15619	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
15620	s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
15621	s << '}';
15622	return s;
15623}
15624
15625std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoKHR& value)
15626{
15627	s << "VkVideoDecodeH264SessionParametersAddInfoKHR = {\n";
15628	s << "\tsType = " << value.sType << '\n';
15629	s << "\tpNext = " << value.pNext << '\n';
15630	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
15631	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
15632	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
15633	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
15634	s << '}';
15635	return s;
15636}
15637
15638std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoKHR& value)
15639{
15640	s << "VkVideoDecodeH264SessionParametersCreateInfoKHR = {\n";
15641	s << "\tsType = " << value.sType << '\n';
15642	s << "\tpNext = " << value.pNext << '\n';
15643	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
15644	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
15645	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
15646	s << '}';
15647	return s;
15648}
15649
15650std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoKHR& value)
15651{
15652	s << "VkVideoDecodeH264PictureInfoKHR = {\n";
15653	s << "\tsType = " << value.sType << '\n';
15654	s << "\tpNext = " << value.pNext << '\n';
15655	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
15656	s << "\tsliceCount = " << value.sliceCount << '\n';
15657	s << "\tpSliceOffsets = " << value.pSliceOffsets << '\n';
15658	s << '}';
15659	return s;
15660}
15661
15662std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoKHR& value)
15663{
15664	s << "VkVideoDecodeH264DpbSlotInfoKHR = {\n";
15665	s << "\tsType = " << value.sType << '\n';
15666	s << "\tpNext = " << value.pNext << '\n';
15667	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
15668	s << '}';
15669	return s;
15670}
15671
15672std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileInfoKHR& value)
15673{
15674	s << "VkVideoDecodeH265ProfileInfoKHR = {\n";
15675	s << "\tsType = " << value.sType << '\n';
15676	s << "\tpNext = " << value.pNext << '\n';
15677	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
15678	s << '}';
15679	return s;
15680}
15681
15682std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesKHR& value)
15683{
15684	s << "VkVideoDecodeH265CapabilitiesKHR = {\n";
15685	s << "\tsType = " << value.sType << '\n';
15686	s << "\tpNext = " << value.pNext << '\n';
15687	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
15688	s << '}';
15689	return s;
15690}
15691
15692std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoKHR& value)
15693{
15694	s << "VkVideoDecodeH265SessionParametersAddInfoKHR = {\n";
15695	s << "\tsType = " << value.sType << '\n';
15696	s << "\tpNext = " << value.pNext << '\n';
15697	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
15698	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
15699	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
15700	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
15701	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
15702	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
15703	s << '}';
15704	return s;
15705}
15706
15707std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoKHR& value)
15708{
15709	s << "VkVideoDecodeH265SessionParametersCreateInfoKHR = {\n";
15710	s << "\tsType = " << value.sType << '\n';
15711	s << "\tpNext = " << value.pNext << '\n';
15712	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
15713	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
15714	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
15715	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
15716	s << '}';
15717	return s;
15718}
15719
15720std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoKHR& value)
15721{
15722	s << "VkVideoDecodeH265PictureInfoKHR = {\n";
15723	s << "\tsType = " << value.sType << '\n';
15724	s << "\tpNext = " << value.pNext << '\n';
15725	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
15726	s << "\tsliceSegmentCount = " << value.sliceSegmentCount << '\n';
15727	s << "\tpSliceSegmentOffsets = " << value.pSliceSegmentOffsets << '\n';
15728	s << '}';
15729	return s;
15730}
15731
15732std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoKHR& value)
15733{
15734	s << "VkVideoDecodeH265DpbSlotInfoKHR = {\n";
15735	s << "\tsType = " << value.sType << '\n';
15736	s << "\tpNext = " << value.pNext << '\n';
15737	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
15738	s << '}';
15739	return s;
15740}
15741
15742std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1ProfileInfoKHR& value)
15743{
15744	s << "VkVideoDecodeAV1ProfileInfoKHR = {\n";
15745	s << "\tsType = " << value.sType << '\n';
15746	s << "\tpNext = " << value.pNext << '\n';
15747	s << "\tstdProfile = " << value.stdProfile << '\n';
15748	s << "\tfilmGrainSupport = " << value.filmGrainSupport << '\n';
15749	s << '}';
15750	return s;
15751}
15752
15753std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1CapabilitiesKHR& value)
15754{
15755	s << "VkVideoDecodeAV1CapabilitiesKHR = {\n";
15756	s << "\tsType = " << value.sType << '\n';
15757	s << "\tpNext = " << value.pNext << '\n';
15758	s << "\tmaxLevel = " << value.maxLevel << '\n';
15759	s << '}';
15760	return s;
15761}
15762
15763std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1SessionParametersCreateInfoKHR& value)
15764{
15765	s << "VkVideoDecodeAV1SessionParametersCreateInfoKHR = {\n";
15766	s << "\tsType = " << value.sType << '\n';
15767	s << "\tpNext = " << value.pNext << '\n';
15768	s << "\tpStdSequenceHeader = " << value.pStdSequenceHeader << '\n';
15769	s << '}';
15770	return s;
15771}
15772
15773std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1PictureInfoKHR& value)
15774{
15775	s << "VkVideoDecodeAV1PictureInfoKHR = {\n";
15776	s << "\tsType = " << value.sType << '\n';
15777	s << "\tpNext = " << value.pNext << '\n';
15778	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
15779	s << "\treferenceNameSlotIndices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.referenceNameSlotIndices), DE_ARRAY_END(value.referenceNameSlotIndices)) << '\n';
15780	s << "\tframeHeaderOffset = " << value.frameHeaderOffset << '\n';
15781	s << "\ttileCount = " << value.tileCount << '\n';
15782	s << "\tpTileOffsets = " << value.pTileOffsets << '\n';
15783	s << "\tpTileSizes = " << value.pTileSizes << '\n';
15784	s << '}';
15785	return s;
15786}
15787
15788std::ostream& operator<< (std::ostream& s, const VkVideoDecodeAV1DpbSlotInfoKHR& value)
15789{
15790	s << "VkVideoDecodeAV1DpbSlotInfoKHR = {\n";
15791	s << "\tsType = " << value.sType << '\n';
15792	s << "\tpNext = " << value.pNext << '\n';
15793	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
15794	s << '}';
15795	return s;
15796}
15797
15798std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
15799{
15800	s << "VkVideoSessionCreateInfoKHR = {\n";
15801	s << "\tsType = " << value.sType << '\n';
15802	s << "\tpNext = " << value.pNext << '\n';
15803	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
15804	s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
15805	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
15806	s << "\tpictureFormat = " << value.pictureFormat << '\n';
15807	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
15808	s << "\treferencePictureFormat = " << value.referencePictureFormat << '\n';
15809	s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
15810	s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
15811	s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
15812	s << '}';
15813	return s;
15814}
15815
15816std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
15817{
15818	s << "VkVideoSessionParametersCreateInfoKHR = {\n";
15819	s << "\tsType = " << value.sType << '\n';
15820	s << "\tpNext = " << value.pNext << '\n';
15821	s << "\tflags = " << getVideoSessionParametersCreateFlagsKHRStr(value.flags) << '\n';
15822	s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
15823	s << "\tvideoSession = " << value.videoSession << '\n';
15824	s << '}';
15825	return s;
15826}
15827
15828std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
15829{
15830	s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
15831	s << "\tsType = " << value.sType << '\n';
15832	s << "\tpNext = " << value.pNext << '\n';
15833	s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
15834	s << '}';
15835	return s;
15836}
15837
15838std::ostream& operator<< (std::ostream& s, const VkVideoEncodeSessionParametersGetInfoKHR& value)
15839{
15840	s << "VkVideoEncodeSessionParametersGetInfoKHR = {\n";
15841	s << "\tsType = " << value.sType << '\n';
15842	s << "\tpNext = " << value.pNext << '\n';
15843	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
15844	s << '}';
15845	return s;
15846}
15847
15848std::ostream& operator<< (std::ostream& s, const VkVideoEncodeSessionParametersFeedbackInfoKHR& value)
15849{
15850	s << "VkVideoEncodeSessionParametersFeedbackInfoKHR = {\n";
15851	s << "\tsType = " << value.sType << '\n';
15852	s << "\tpNext = " << value.pNext << '\n';
15853	s << "\thasOverrides = " << value.hasOverrides << '\n';
15854	s << '}';
15855	return s;
15856}
15857
15858std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
15859{
15860	s << "VkVideoBeginCodingInfoKHR = {\n";
15861	s << "\tsType = " << value.sType << '\n';
15862	s << "\tpNext = " << value.pNext << '\n';
15863	s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
15864	s << "\tvideoSession = " << value.videoSession << '\n';
15865	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
15866	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
15867	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
15868	s << '}';
15869	return s;
15870}
15871
15872std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
15873{
15874	s << "VkVideoEndCodingInfoKHR = {\n";
15875	s << "\tsType = " << value.sType << '\n';
15876	s << "\tpNext = " << value.pNext << '\n';
15877	s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
15878	s << '}';
15879	return s;
15880}
15881
15882std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
15883{
15884	s << "VkVideoCodingControlInfoKHR = {\n";
15885	s << "\tsType = " << value.sType << '\n';
15886	s << "\tpNext = " << value.pNext << '\n';
15887	s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
15888	s << '}';
15889	return s;
15890}
15891
15892std::ostream& operator<< (std::ostream& s, const VkVideoEncodeUsageInfoKHR& value)
15893{
15894	s << "VkVideoEncodeUsageInfoKHR = {\n";
15895	s << "\tsType = " << value.sType << '\n';
15896	s << "\tpNext = " << value.pNext << '\n';
15897	s << "\tvideoUsageHints = " << getVideoEncodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
15898	s << "\tvideoContentHints = " << getVideoEncodeContentFlagsKHRStr(value.videoContentHints) << '\n';
15899	s << "\ttuningMode = " << value.tuningMode << '\n';
15900	s << '}';
15901	return s;
15902}
15903
15904std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
15905{
15906	s << "VkVideoEncodeInfoKHR = {\n";
15907	s << "\tsType = " << value.sType << '\n';
15908	s << "\tpNext = " << value.pNext << '\n';
15909	s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
15910	s << "\tdstBuffer = " << value.dstBuffer << '\n';
15911	s << "\tdstBufferOffset = " << value.dstBufferOffset << '\n';
15912	s << "\tdstBufferRange = " << value.dstBufferRange << '\n';
15913	s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
15914	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
15915	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
15916	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
15917	s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
15918	s << '}';
15919	return s;
15920}
15921
15922std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQuantizationMapInfoKHR& value)
15923{
15924	s << "VkVideoEncodeQuantizationMapInfoKHR = {\n";
15925	s << "\tsType = " << value.sType << '\n';
15926	s << "\tpNext = " << value.pNext << '\n';
15927	s << "\tquantizationMap = " << value.quantizationMap << '\n';
15928	s << "\tquantizationMapExtent = " << value.quantizationMapExtent << '\n';
15929	s << '}';
15930	return s;
15931}
15932
15933std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR& value)
15934{
15935	s << "VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR = {\n";
15936	s << "\tsType = " << value.sType << '\n';
15937	s << "\tpNext = " << value.pNext << '\n';
15938	s << "\tquantizationMapTexelSize = " << value.quantizationMapTexelSize << '\n';
15939	s << '}';
15940	return s;
15941}
15942
15943std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR& value)
15944{
15945	s << "VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR = {\n";
15946	s << "\tsType = " << value.sType << '\n';
15947	s << "\tpNext = " << value.pNext << '\n';
15948	s << "\tvideoEncodeQuantizationMap = " << value.videoEncodeQuantizationMap << '\n';
15949	s << '}';
15950	return s;
15951}
15952
15953std::ostream& operator<< (std::ostream& s, const VkQueryPoolVideoEncodeFeedbackCreateInfoKHR& value)
15954{
15955	s << "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR = {\n";
15956	s << "\tsType = " << value.sType << '\n';
15957	s << "\tpNext = " << value.pNext << '\n';
15958	s << "\tencodeFeedbackFlags = " << getVideoEncodeFeedbackFlagsKHRStr(value.encodeFeedbackFlags) << '\n';
15959	s << '}';
15960	return s;
15961}
15962
15963std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQualityLevelInfoKHR& value)
15964{
15965	s << "VkVideoEncodeQualityLevelInfoKHR = {\n";
15966	s << "\tsType = " << value.sType << '\n';
15967	s << "\tpNext = " << value.pNext << '\n';
15968	s << "\tqualityLevel = " << value.qualityLevel << '\n';
15969	s << '}';
15970	return s;
15971}
15972
15973std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR& value)
15974{
15975	s << "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR = {\n";
15976	s << "\tsType = " << value.sType << '\n';
15977	s << "\tpNext = " << value.pNext << '\n';
15978	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
15979	s << "\tqualityLevel = " << value.qualityLevel << '\n';
15980	s << '}';
15981	return s;
15982}
15983
15984std::ostream& operator<< (std::ostream& s, const VkVideoEncodeQualityLevelPropertiesKHR& value)
15985{
15986	s << "VkVideoEncodeQualityLevelPropertiesKHR = {\n";
15987	s << "\tsType = " << value.sType << '\n';
15988	s << "\tpNext = " << value.pNext << '\n';
15989	s << "\tpreferredRateControlMode = " << value.preferredRateControlMode << '\n';
15990	s << "\tpreferredRateControlLayerCount = " << value.preferredRateControlLayerCount << '\n';
15991	s << '}';
15992	return s;
15993}
15994
15995std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
15996{
15997	s << "VkVideoEncodeRateControlInfoKHR = {\n";
15998	s << "\tsType = " << value.sType << '\n';
15999	s << "\tpNext = " << value.pNext << '\n';
16000	s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
16001	s << "\trateControlMode = " << value.rateControlMode << '\n';
16002	s << "\tlayerCount = " << value.layerCount << '\n';
16003	s << "\tpLayers = " << value.pLayers << '\n';
16004	s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
16005	s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
16006	s << '}';
16007	return s;
16008}
16009
16010std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
16011{
16012	s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
16013	s << "\tsType = " << value.sType << '\n';
16014	s << "\tpNext = " << value.pNext << '\n';
16015	s << "\taverageBitrate = " << value.averageBitrate << '\n';
16016	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
16017	s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
16018	s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
16019	s << '}';
16020	return s;
16021}
16022
16023std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
16024{
16025	s << "VkVideoEncodeCapabilitiesKHR = {\n";
16026	s << "\tsType = " << value.sType << '\n';
16027	s << "\tpNext = " << value.pNext << '\n';
16028	s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
16029	s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
16030	s << "\tmaxRateControlLayers = " << value.maxRateControlLayers << '\n';
16031	s << "\tmaxBitrate = " << value.maxBitrate << '\n';
16032	s << "\tmaxQualityLevels = " << value.maxQualityLevels << '\n';
16033	s << "\tencodeInputPictureGranularity = " << value.encodeInputPictureGranularity << '\n';
16034	s << "\tsupportedEncodeFeedbackFlags = " << getVideoEncodeFeedbackFlagsKHRStr(value.supportedEncodeFeedbackFlags) << '\n';
16035	s << '}';
16036	return s;
16037}
16038
16039std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesKHR& value)
16040{
16041	s << "VkVideoEncodeH264CapabilitiesKHR = {\n";
16042	s << "\tsType = " << value.sType << '\n';
16043	s << "\tpNext = " << value.pNext << '\n';
16044	s << "\tflags = " << getVideoEncodeH264CapabilityFlagsKHRStr(value.flags) << '\n';
16045	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
16046	s << "\tmaxSliceCount = " << value.maxSliceCount << '\n';
16047	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
16048	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
16049	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
16050	s << "\tmaxTemporalLayerCount = " << value.maxTemporalLayerCount << '\n';
16051	s << "\texpectDyadicTemporalLayerPattern = " << value.expectDyadicTemporalLayerPattern << '\n';
16052	s << "\tminQp = " << value.minQp << '\n';
16053	s << "\tmaxQp = " << value.maxQp << '\n';
16054	s << "\tprefersGopRemainingFrames = " << value.prefersGopRemainingFrames << '\n';
16055	s << "\trequiresGopRemainingFrames = " << value.requiresGopRemainingFrames << '\n';
16056	s << "\tstdSyntaxFlags = " << getVideoEncodeH264StdFlagsKHRStr(value.stdSyntaxFlags) << '\n';
16057	s << '}';
16058	return s;
16059}
16060
16061std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QualityLevelPropertiesKHR& value)
16062{
16063	s << "VkVideoEncodeH264QualityLevelPropertiesKHR = {\n";
16064	s << "\tsType = " << value.sType << '\n';
16065	s << "\tpNext = " << value.pNext << '\n';
16066	s << "\tpreferredRateControlFlags = " << getVideoEncodeH264RateControlFlagsKHRStr(value.preferredRateControlFlags) << '\n';
16067	s << "\tpreferredGopFrameCount = " << value.preferredGopFrameCount << '\n';
16068	s << "\tpreferredIdrPeriod = " << value.preferredIdrPeriod << '\n';
16069	s << "\tpreferredConsecutiveBFrameCount = " << value.preferredConsecutiveBFrameCount << '\n';
16070	s << "\tpreferredTemporalLayerCount = " << value.preferredTemporalLayerCount << '\n';
16071	s << "\tpreferredConstantQp = " << value.preferredConstantQp << '\n';
16072	s << "\tpreferredMaxL0ReferenceCount = " << value.preferredMaxL0ReferenceCount << '\n';
16073	s << "\tpreferredMaxL1ReferenceCount = " << value.preferredMaxL1ReferenceCount << '\n';
16074	s << "\tpreferredStdEntropyCodingModeFlag = " << value.preferredStdEntropyCodingModeFlag << '\n';
16075	s << '}';
16076	return s;
16077}
16078
16079std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionCreateInfoKHR& value)
16080{
16081	s << "VkVideoEncodeH264SessionCreateInfoKHR = {\n";
16082	s << "\tsType = " << value.sType << '\n';
16083	s << "\tpNext = " << value.pNext << '\n';
16084	s << "\tuseMaxLevelIdc = " << value.useMaxLevelIdc << '\n';
16085	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
16086	s << '}';
16087	return s;
16088}
16089
16090std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoKHR& value)
16091{
16092	s << "VkVideoEncodeH264SessionParametersAddInfoKHR = {\n";
16093	s << "\tsType = " << value.sType << '\n';
16094	s << "\tpNext = " << value.pNext << '\n';
16095	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
16096	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
16097	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
16098	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
16099	s << '}';
16100	return s;
16101}
16102
16103std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoKHR& value)
16104{
16105	s << "VkVideoEncodeH264SessionParametersCreateInfoKHR = {\n";
16106	s << "\tsType = " << value.sType << '\n';
16107	s << "\tpNext = " << value.pNext << '\n';
16108	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
16109	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
16110	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
16111	s << '}';
16112	return s;
16113}
16114
16115std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersGetInfoKHR& value)
16116{
16117	s << "VkVideoEncodeH264SessionParametersGetInfoKHR = {\n";
16118	s << "\tsType = " << value.sType << '\n';
16119	s << "\tpNext = " << value.pNext << '\n';
16120	s << "\twriteStdSPS = " << value.writeStdSPS << '\n';
16121	s << "\twriteStdPPS = " << value.writeStdPPS << '\n';
16122	s << "\tstdSPSId = " << value.stdSPSId << '\n';
16123	s << "\tstdPPSId = " << value.stdPPSId << '\n';
16124	s << '}';
16125	return s;
16126}
16127
16128std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersFeedbackInfoKHR& value)
16129{
16130	s << "VkVideoEncodeH264SessionParametersFeedbackInfoKHR = {\n";
16131	s << "\tsType = " << value.sType << '\n';
16132	s << "\tpNext = " << value.pNext << '\n';
16133	s << "\thasStdSPSOverrides = " << value.hasStdSPSOverrides << '\n';
16134	s << "\thasStdPPSOverrides = " << value.hasStdPPSOverrides << '\n';
16135	s << '}';
16136	return s;
16137}
16138
16139std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoKHR& value)
16140{
16141	s << "VkVideoEncodeH264DpbSlotInfoKHR = {\n";
16142	s << "\tsType = " << value.sType << '\n';
16143	s << "\tpNext = " << value.pNext << '\n';
16144	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
16145	s << '}';
16146	return s;
16147}
16148
16149std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264PictureInfoKHR& value)
16150{
16151	s << "VkVideoEncodeH264PictureInfoKHR = {\n";
16152	s << "\tsType = " << value.sType << '\n';
16153	s << "\tpNext = " << value.pNext << '\n';
16154	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
16155	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
16156	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
16157	s << "\tgeneratePrefixNalu = " << value.generatePrefixNalu << '\n';
16158	s << '}';
16159	return s;
16160}
16161
16162std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileInfoKHR& value)
16163{
16164	s << "VkVideoEncodeH264ProfileInfoKHR = {\n";
16165	s << "\tsType = " << value.sType << '\n';
16166	s << "\tpNext = " << value.pNext << '\n';
16167	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
16168	s << '}';
16169	return s;
16170}
16171
16172std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceInfoKHR& value)
16173{
16174	s << "VkVideoEncodeH264NaluSliceInfoKHR = {\n";
16175	s << "\tsType = " << value.sType << '\n';
16176	s << "\tpNext = " << value.pNext << '\n';
16177	s << "\tconstantQp = " << value.constantQp << '\n';
16178	s << "\tpStdSliceHeader = " << value.pStdSliceHeader << '\n';
16179	s << '}';
16180	return s;
16181}
16182
16183std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoKHR& value)
16184{
16185	s << "VkVideoEncodeH264RateControlInfoKHR = {\n";
16186	s << "\tsType = " << value.sType << '\n';
16187	s << "\tpNext = " << value.pNext << '\n';
16188	s << "\tflags = " << getVideoEncodeH264RateControlFlagsKHRStr(value.flags) << '\n';
16189	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
16190	s << "\tidrPeriod = " << value.idrPeriod << '\n';
16191	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
16192	s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
16193	s << '}';
16194	return s;
16195}
16196
16197std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpKHR& value)
16198{
16199	s << "VkVideoEncodeH264QpKHR = {\n";
16200	s << "\tqpI = " << value.qpI << '\n';
16201	s << "\tqpP = " << value.qpP << '\n';
16202	s << "\tqpB = " << value.qpB << '\n';
16203	s << '}';
16204	return s;
16205}
16206
16207std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeKHR& value)
16208{
16209	s << "VkVideoEncodeH264FrameSizeKHR = {\n";
16210	s << "\tframeISize = " << value.frameISize << '\n';
16211	s << "\tframePSize = " << value.framePSize << '\n';
16212	s << "\tframeBSize = " << value.frameBSize << '\n';
16213	s << '}';
16214	return s;
16215}
16216
16217std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264GopRemainingFrameInfoKHR& value)
16218{
16219	s << "VkVideoEncodeH264GopRemainingFrameInfoKHR = {\n";
16220	s << "\tsType = " << value.sType << '\n';
16221	s << "\tpNext = " << value.pNext << '\n';
16222	s << "\tuseGopRemainingFrames = " << value.useGopRemainingFrames << '\n';
16223	s << "\tgopRemainingI = " << value.gopRemainingI << '\n';
16224	s << "\tgopRemainingP = " << value.gopRemainingP << '\n';
16225	s << "\tgopRemainingB = " << value.gopRemainingB << '\n';
16226	s << '}';
16227	return s;
16228}
16229
16230std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoKHR& value)
16231{
16232	s << "VkVideoEncodeH264RateControlLayerInfoKHR = {\n";
16233	s << "\tsType = " << value.sType << '\n';
16234	s << "\tpNext = " << value.pNext << '\n';
16235	s << "\tuseMinQp = " << value.useMinQp << '\n';
16236	s << "\tminQp = " << value.minQp << '\n';
16237	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
16238	s << "\tmaxQp = " << value.maxQp << '\n';
16239	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
16240	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
16241	s << '}';
16242	return s;
16243}
16244
16245std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesKHR& value)
16246{
16247	s << "VkVideoEncodeH265CapabilitiesKHR = {\n";
16248	s << "\tsType = " << value.sType << '\n';
16249	s << "\tpNext = " << value.pNext << '\n';
16250	s << "\tflags = " << getVideoEncodeH265CapabilityFlagsKHRStr(value.flags) << '\n';
16251	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
16252	s << "\tmaxSliceSegmentCount = " << value.maxSliceSegmentCount << '\n';
16253	s << "\tmaxTiles = " << value.maxTiles << '\n';
16254	s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsKHRStr(value.ctbSizes) << '\n';
16255	s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsKHRStr(value.transformBlockSizes) << '\n';
16256	s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
16257	s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
16258	s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
16259	s << "\tmaxSubLayerCount = " << value.maxSubLayerCount << '\n';
16260	s << "\texpectDyadicTemporalSubLayerPattern = " << value.expectDyadicTemporalSubLayerPattern << '\n';
16261	s << "\tminQp = " << value.minQp << '\n';
16262	s << "\tmaxQp = " << value.maxQp << '\n';
16263	s << "\tprefersGopRemainingFrames = " << value.prefersGopRemainingFrames << '\n';
16264	s << "\trequiresGopRemainingFrames = " << value.requiresGopRemainingFrames << '\n';
16265	s << "\tstdSyntaxFlags = " << getVideoEncodeH265StdFlagsKHRStr(value.stdSyntaxFlags) << '\n';
16266	s << '}';
16267	return s;
16268}
16269
16270std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QualityLevelPropertiesKHR& value)
16271{
16272	s << "VkVideoEncodeH265QualityLevelPropertiesKHR = {\n";
16273	s << "\tsType = " << value.sType << '\n';
16274	s << "\tpNext = " << value.pNext << '\n';
16275	s << "\tpreferredRateControlFlags = " << getVideoEncodeH265RateControlFlagsKHRStr(value.preferredRateControlFlags) << '\n';
16276	s << "\tpreferredGopFrameCount = " << value.preferredGopFrameCount << '\n';
16277	s << "\tpreferredIdrPeriod = " << value.preferredIdrPeriod << '\n';
16278	s << "\tpreferredConsecutiveBFrameCount = " << value.preferredConsecutiveBFrameCount << '\n';
16279	s << "\tpreferredSubLayerCount = " << value.preferredSubLayerCount << '\n';
16280	s << "\tpreferredConstantQp = " << value.preferredConstantQp << '\n';
16281	s << "\tpreferredMaxL0ReferenceCount = " << value.preferredMaxL0ReferenceCount << '\n';
16282	s << "\tpreferredMaxL1ReferenceCount = " << value.preferredMaxL1ReferenceCount << '\n';
16283	s << '}';
16284	return s;
16285}
16286
16287std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionCreateInfoKHR& value)
16288{
16289	s << "VkVideoEncodeH265SessionCreateInfoKHR = {\n";
16290	s << "\tsType = " << value.sType << '\n';
16291	s << "\tpNext = " << value.pNext << '\n';
16292	s << "\tuseMaxLevelIdc = " << value.useMaxLevelIdc << '\n';
16293	s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
16294	s << '}';
16295	return s;
16296}
16297
16298std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoKHR& value)
16299{
16300	s << "VkVideoEncodeH265SessionParametersAddInfoKHR = {\n";
16301	s << "\tsType = " << value.sType << '\n';
16302	s << "\tpNext = " << value.pNext << '\n';
16303	s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
16304	s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
16305	s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
16306	s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
16307	s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
16308	s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
16309	s << '}';
16310	return s;
16311}
16312
16313std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoKHR& value)
16314{
16315	s << "VkVideoEncodeH265SessionParametersCreateInfoKHR = {\n";
16316	s << "\tsType = " << value.sType << '\n';
16317	s << "\tpNext = " << value.pNext << '\n';
16318	s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
16319	s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
16320	s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
16321	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
16322	s << '}';
16323	return s;
16324}
16325
16326std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersGetInfoKHR& value)
16327{
16328	s << "VkVideoEncodeH265SessionParametersGetInfoKHR = {\n";
16329	s << "\tsType = " << value.sType << '\n';
16330	s << "\tpNext = " << value.pNext << '\n';
16331	s << "\twriteStdVPS = " << value.writeStdVPS << '\n';
16332	s << "\twriteStdSPS = " << value.writeStdSPS << '\n';
16333	s << "\twriteStdPPS = " << value.writeStdPPS << '\n';
16334	s << "\tstdVPSId = " << value.stdVPSId << '\n';
16335	s << "\tstdSPSId = " << value.stdSPSId << '\n';
16336	s << "\tstdPPSId = " << value.stdPPSId << '\n';
16337	s << '}';
16338	return s;
16339}
16340
16341std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersFeedbackInfoKHR& value)
16342{
16343	s << "VkVideoEncodeH265SessionParametersFeedbackInfoKHR = {\n";
16344	s << "\tsType = " << value.sType << '\n';
16345	s << "\tpNext = " << value.pNext << '\n';
16346	s << "\thasStdVPSOverrides = " << value.hasStdVPSOverrides << '\n';
16347	s << "\thasStdSPSOverrides = " << value.hasStdSPSOverrides << '\n';
16348	s << "\thasStdPPSOverrides = " << value.hasStdPPSOverrides << '\n';
16349	s << '}';
16350	return s;
16351}
16352
16353std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265PictureInfoKHR& value)
16354{
16355	s << "VkVideoEncodeH265PictureInfoKHR = {\n";
16356	s << "\tsType = " << value.sType << '\n';
16357	s << "\tpNext = " << value.pNext << '\n';
16358	s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
16359	s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
16360	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
16361	s << '}';
16362	return s;
16363}
16364
16365std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentInfoKHR& value)
16366{
16367	s << "VkVideoEncodeH265NaluSliceSegmentInfoKHR = {\n";
16368	s << "\tsType = " << value.sType << '\n';
16369	s << "\tpNext = " << value.pNext << '\n';
16370	s << "\tconstantQp = " << value.constantQp << '\n';
16371	s << "\tpStdSliceSegmentHeader = " << value.pStdSliceSegmentHeader << '\n';
16372	s << '}';
16373	return s;
16374}
16375
16376std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoKHR& value)
16377{
16378	s << "VkVideoEncodeH265RateControlInfoKHR = {\n";
16379	s << "\tsType = " << value.sType << '\n';
16380	s << "\tpNext = " << value.pNext << '\n';
16381	s << "\tflags = " << getVideoEncodeH265RateControlFlagsKHRStr(value.flags) << '\n';
16382	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
16383	s << "\tidrPeriod = " << value.idrPeriod << '\n';
16384	s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
16385	s << "\tsubLayerCount = " << value.subLayerCount << '\n';
16386	s << '}';
16387	return s;
16388}
16389
16390std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpKHR& value)
16391{
16392	s << "VkVideoEncodeH265QpKHR = {\n";
16393	s << "\tqpI = " << value.qpI << '\n';
16394	s << "\tqpP = " << value.qpP << '\n';
16395	s << "\tqpB = " << value.qpB << '\n';
16396	s << '}';
16397	return s;
16398}
16399
16400std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeKHR& value)
16401{
16402	s << "VkVideoEncodeH265FrameSizeKHR = {\n";
16403	s << "\tframeISize = " << value.frameISize << '\n';
16404	s << "\tframePSize = " << value.framePSize << '\n';
16405	s << "\tframeBSize = " << value.frameBSize << '\n';
16406	s << '}';
16407	return s;
16408}
16409
16410std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265GopRemainingFrameInfoKHR& value)
16411{
16412	s << "VkVideoEncodeH265GopRemainingFrameInfoKHR = {\n";
16413	s << "\tsType = " << value.sType << '\n';
16414	s << "\tpNext = " << value.pNext << '\n';
16415	s << "\tuseGopRemainingFrames = " << value.useGopRemainingFrames << '\n';
16416	s << "\tgopRemainingI = " << value.gopRemainingI << '\n';
16417	s << "\tgopRemainingP = " << value.gopRemainingP << '\n';
16418	s << "\tgopRemainingB = " << value.gopRemainingB << '\n';
16419	s << '}';
16420	return s;
16421}
16422
16423std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoKHR& value)
16424{
16425	s << "VkVideoEncodeH265RateControlLayerInfoKHR = {\n";
16426	s << "\tsType = " << value.sType << '\n';
16427	s << "\tpNext = " << value.pNext << '\n';
16428	s << "\tuseMinQp = " << value.useMinQp << '\n';
16429	s << "\tminQp = " << value.minQp << '\n';
16430	s << "\tuseMaxQp = " << value.useMaxQp << '\n';
16431	s << "\tmaxQp = " << value.maxQp << '\n';
16432	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
16433	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
16434	s << '}';
16435	return s;
16436}
16437
16438std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileInfoKHR& value)
16439{
16440	s << "VkVideoEncodeH265ProfileInfoKHR = {\n";
16441	s << "\tsType = " << value.sType << '\n';
16442	s << "\tpNext = " << value.pNext << '\n';
16443	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
16444	s << '}';
16445	return s;
16446}
16447
16448std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoKHR& value)
16449{
16450	s << "VkVideoEncodeH265DpbSlotInfoKHR = {\n";
16451	s << "\tsType = " << value.sType << '\n';
16452	s << "\tpNext = " << value.pNext << '\n';
16453	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
16454	s << '}';
16455	return s;
16456}
16457
16458std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1CapabilitiesKHR& value)
16459{
16460	s << "VkVideoEncodeAV1CapabilitiesKHR = {\n";
16461	s << "\tsType = " << value.sType << '\n';
16462	s << "\tpNext = " << value.pNext << '\n';
16463	s << "\tflags = " << getVideoEncodeAV1CapabilityFlagsKHRStr(value.flags) << '\n';
16464	s << "\tmaxLevel = " << value.maxLevel << '\n';
16465	s << "\tcodedPictureAlignment = " << value.codedPictureAlignment << '\n';
16466	s << "\tmaxTiles = " << value.maxTiles << '\n';
16467	s << "\tminTileSize = " << value.minTileSize << '\n';
16468	s << "\tmaxTileSize = " << value.maxTileSize << '\n';
16469	s << "\tsuperblockSizes = " << getVideoEncodeAV1SuperblockSizeFlagsKHRStr(value.superblockSizes) << '\n';
16470	s << "\tmaxSingleReferenceCount = " << value.maxSingleReferenceCount << '\n';
16471	s << "\tsingleReferenceNameMask = " << value.singleReferenceNameMask << '\n';
16472	s << "\tmaxUnidirectionalCompoundReferenceCount = " << value.maxUnidirectionalCompoundReferenceCount << '\n';
16473	s << "\tmaxUnidirectionalCompoundGroup1ReferenceCount = " << value.maxUnidirectionalCompoundGroup1ReferenceCount << '\n';
16474	s << "\tunidirectionalCompoundReferenceNameMask = " << value.unidirectionalCompoundReferenceNameMask << '\n';
16475	s << "\tmaxBidirectionalCompoundReferenceCount = " << value.maxBidirectionalCompoundReferenceCount << '\n';
16476	s << "\tmaxBidirectionalCompoundGroup1ReferenceCount = " << value.maxBidirectionalCompoundGroup1ReferenceCount << '\n';
16477	s << "\tmaxBidirectionalCompoundGroup2ReferenceCount = " << value.maxBidirectionalCompoundGroup2ReferenceCount << '\n';
16478	s << "\tbidirectionalCompoundReferenceNameMask = " << value.bidirectionalCompoundReferenceNameMask << '\n';
16479	s << "\tmaxTemporalLayerCount = " << value.maxTemporalLayerCount << '\n';
16480	s << "\tmaxSpatialLayerCount = " << value.maxSpatialLayerCount << '\n';
16481	s << "\tmaxOperatingPoints = " << value.maxOperatingPoints << '\n';
16482	s << "\tminQIndex = " << value.minQIndex << '\n';
16483	s << "\tmaxQIndex = " << value.maxQIndex << '\n';
16484	s << "\tprefersGopRemainingFrames = " << value.prefersGopRemainingFrames << '\n';
16485	s << "\trequiresGopRemainingFrames = " << value.requiresGopRemainingFrames << '\n';
16486	s << "\tstdSyntaxFlags = " << getVideoEncodeAV1StdFlagsKHRStr(value.stdSyntaxFlags) << '\n';
16487	s << '}';
16488	return s;
16489}
16490
16491std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1QualityLevelPropertiesKHR& value)
16492{
16493	s << "VkVideoEncodeAV1QualityLevelPropertiesKHR = {\n";
16494	s << "\tsType = " << value.sType << '\n';
16495	s << "\tpNext = " << value.pNext << '\n';
16496	s << "\tpreferredRateControlFlags = " << getVideoEncodeAV1RateControlFlagsKHRStr(value.preferredRateControlFlags) << '\n';
16497	s << "\tpreferredGopFrameCount = " << value.preferredGopFrameCount << '\n';
16498	s << "\tpreferredKeyFramePeriod = " << value.preferredKeyFramePeriod << '\n';
16499	s << "\tpreferredConsecutiveBipredictiveFrameCount = " << value.preferredConsecutiveBipredictiveFrameCount << '\n';
16500	s << "\tpreferredTemporalLayerCount = " << value.preferredTemporalLayerCount << '\n';
16501	s << "\tpreferredConstantQIndex = " << value.preferredConstantQIndex << '\n';
16502	s << "\tpreferredMaxSingleReferenceCount = " << value.preferredMaxSingleReferenceCount << '\n';
16503	s << "\tpreferredSingleReferenceNameMask = " << value.preferredSingleReferenceNameMask << '\n';
16504	s << "\tpreferredMaxUnidirectionalCompoundReferenceCount = " << value.preferredMaxUnidirectionalCompoundReferenceCount << '\n';
16505	s << "\tpreferredMaxUnidirectionalCompoundGroup1ReferenceCount = " << value.preferredMaxUnidirectionalCompoundGroup1ReferenceCount << '\n';
16506	s << "\tpreferredUnidirectionalCompoundReferenceNameMask = " << value.preferredUnidirectionalCompoundReferenceNameMask << '\n';
16507	s << "\tpreferredMaxBidirectionalCompoundReferenceCount = " << value.preferredMaxBidirectionalCompoundReferenceCount << '\n';
16508	s << "\tpreferredMaxBidirectionalCompoundGroup1ReferenceCount = " << value.preferredMaxBidirectionalCompoundGroup1ReferenceCount << '\n';
16509	s << "\tpreferredMaxBidirectionalCompoundGroup2ReferenceCount = " << value.preferredMaxBidirectionalCompoundGroup2ReferenceCount << '\n';
16510	s << "\tpreferredBidirectionalCompoundReferenceNameMask = " << value.preferredBidirectionalCompoundReferenceNameMask << '\n';
16511	s << '}';
16512	return s;
16513}
16514
16515std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoEncodeAV1FeaturesKHR& value)
16516{
16517	s << "VkPhysicalDeviceVideoEncodeAV1FeaturesKHR = {\n";
16518	s << "\tsType = " << value.sType << '\n';
16519	s << "\tpNext = " << value.pNext << '\n';
16520	s << "\tvideoEncodeAV1 = " << value.videoEncodeAV1 << '\n';
16521	s << '}';
16522	return s;
16523}
16524
16525std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1SessionCreateInfoKHR& value)
16526{
16527	s << "VkVideoEncodeAV1SessionCreateInfoKHR = {\n";
16528	s << "\tsType = " << value.sType << '\n';
16529	s << "\tpNext = " << value.pNext << '\n';
16530	s << "\tuseMaxLevel = " << value.useMaxLevel << '\n';
16531	s << "\tmaxLevel = " << value.maxLevel << '\n';
16532	s << '}';
16533	return s;
16534}
16535
16536std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1SessionParametersCreateInfoKHR& value)
16537{
16538	s << "VkVideoEncodeAV1SessionParametersCreateInfoKHR = {\n";
16539	s << "\tsType = " << value.sType << '\n';
16540	s << "\tpNext = " << value.pNext << '\n';
16541	s << "\tpStdSequenceHeader = " << value.pStdSequenceHeader << '\n';
16542	s << "\tpStdDecoderModelInfo = " << value.pStdDecoderModelInfo << '\n';
16543	s << "\tstdOperatingPointCount = " << value.stdOperatingPointCount << '\n';
16544	s << "\tpStdOperatingPoints = " << value.pStdOperatingPoints << '\n';
16545	s << '}';
16546	return s;
16547}
16548
16549std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1DpbSlotInfoKHR& value)
16550{
16551	s << "VkVideoEncodeAV1DpbSlotInfoKHR = {\n";
16552	s << "\tsType = " << value.sType << '\n';
16553	s << "\tpNext = " << value.pNext << '\n';
16554	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
16555	s << '}';
16556	return s;
16557}
16558
16559std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1PictureInfoKHR& value)
16560{
16561	s << "VkVideoEncodeAV1PictureInfoKHR = {\n";
16562	s << "\tsType = " << value.sType << '\n';
16563	s << "\tpNext = " << value.pNext << '\n';
16564	s << "\tpredictionMode = " << value.predictionMode << '\n';
16565	s << "\trateControlGroup = " << value.rateControlGroup << '\n';
16566	s << "\tconstantQIndex = " << value.constantQIndex << '\n';
16567	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
16568	s << "\treferenceNameSlotIndices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.referenceNameSlotIndices), DE_ARRAY_END(value.referenceNameSlotIndices)) << '\n';
16569	s << "\tprimaryReferenceCdfOnly = " << value.primaryReferenceCdfOnly << '\n';
16570	s << "\tgenerateObuExtensionHeader = " << value.generateObuExtensionHeader << '\n';
16571	s << '}';
16572	return s;
16573}
16574
16575std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1ProfileInfoKHR& value)
16576{
16577	s << "VkVideoEncodeAV1ProfileInfoKHR = {\n";
16578	s << "\tsType = " << value.sType << '\n';
16579	s << "\tpNext = " << value.pNext << '\n';
16580	s << "\tstdProfile = " << value.stdProfile << '\n';
16581	s << '}';
16582	return s;
16583}
16584
16585std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1RateControlInfoKHR& value)
16586{
16587	s << "VkVideoEncodeAV1RateControlInfoKHR = {\n";
16588	s << "\tsType = " << value.sType << '\n';
16589	s << "\tpNext = " << value.pNext << '\n';
16590	s << "\tflags = " << getVideoEncodeAV1RateControlFlagsKHRStr(value.flags) << '\n';
16591	s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
16592	s << "\tkeyFramePeriod = " << value.keyFramePeriod << '\n';
16593	s << "\tconsecutiveBipredictiveFrameCount = " << value.consecutiveBipredictiveFrameCount << '\n';
16594	s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
16595	s << '}';
16596	return s;
16597}
16598
16599std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1QIndexKHR& value)
16600{
16601	s << "VkVideoEncodeAV1QIndexKHR = {\n";
16602	s << "\tintraQIndex = " << value.intraQIndex << '\n';
16603	s << "\tpredictiveQIndex = " << value.predictiveQIndex << '\n';
16604	s << "\tbipredictiveQIndex = " << value.bipredictiveQIndex << '\n';
16605	s << '}';
16606	return s;
16607}
16608
16609std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1FrameSizeKHR& value)
16610{
16611	s << "VkVideoEncodeAV1FrameSizeKHR = {\n";
16612	s << "\tintraFrameSize = " << value.intraFrameSize << '\n';
16613	s << "\tpredictiveFrameSize = " << value.predictiveFrameSize << '\n';
16614	s << "\tbipredictiveFrameSize = " << value.bipredictiveFrameSize << '\n';
16615	s << '}';
16616	return s;
16617}
16618
16619std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1GopRemainingFrameInfoKHR& value)
16620{
16621	s << "VkVideoEncodeAV1GopRemainingFrameInfoKHR = {\n";
16622	s << "\tsType = " << value.sType << '\n';
16623	s << "\tpNext = " << value.pNext << '\n';
16624	s << "\tuseGopRemainingFrames = " << value.useGopRemainingFrames << '\n';
16625	s << "\tgopRemainingIntra = " << value.gopRemainingIntra << '\n';
16626	s << "\tgopRemainingPredictive = " << value.gopRemainingPredictive << '\n';
16627	s << "\tgopRemainingBipredictive = " << value.gopRemainingBipredictive << '\n';
16628	s << '}';
16629	return s;
16630}
16631
16632std::ostream& operator<< (std::ostream& s, const VkVideoEncodeAV1RateControlLayerInfoKHR& value)
16633{
16634	s << "VkVideoEncodeAV1RateControlLayerInfoKHR = {\n";
16635	s << "\tsType = " << value.sType << '\n';
16636	s << "\tpNext = " << value.pNext << '\n';
16637	s << "\tuseMinQIndex = " << value.useMinQIndex << '\n';
16638	s << "\tminQIndex = " << value.minQIndex << '\n';
16639	s << "\tuseMaxQIndex = " << value.useMaxQIndex << '\n';
16640	s << "\tmaxQIndex = " << value.maxQIndex << '\n';
16641	s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
16642	s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
16643	s << '}';
16644	return s;
16645}
16646
16647std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
16648{
16649	s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
16650	s << "\tsType = " << value.sType << '\n';
16651	s << "\tpNext = " << value.pNext << '\n';
16652	s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
16653	s << '}';
16654	return s;
16655}
16656
16657std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
16658{
16659	s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
16660	s << "\tsType = " << value.sType << '\n';
16661	s << "\tpNext = " << value.pNext << '\n';
16662	s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
16663	s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
16664	s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
16665	s << '}';
16666	return s;
16667}
16668
16669std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
16670{
16671	s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
16672	s << "\tsType = " << value.sType << '\n';
16673	s << "\tpNext = " << value.pNext << '\n';
16674	s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
16675	s << '}';
16676	return s;
16677}
16678
16679std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
16680{
16681	s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
16682	s << "\tsType = " << value.sType << '\n';
16683	s << "\tpNext = " << value.pNext << '\n';
16684	s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
16685	s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
16686	s << '}';
16687	return s;
16688}
16689
16690std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
16691{
16692	s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
16693	s << "\tsType = " << value.sType << '\n';
16694	s << "\tpNext = " << value.pNext << '\n';
16695	s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
16696	s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
16697	s << '}';
16698	return s;
16699}
16700
16701std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
16702{
16703	s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
16704	s << "\tsType = " << value.sType << '\n';
16705	s << "\tpNext = " << value.pNext << '\n';
16706	s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
16707	s << '}';
16708	return s;
16709}
16710
16711std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
16712{
16713	s << "VkCuModuleCreateInfoNVX = {\n";
16714	s << "\tsType = " << value.sType << '\n';
16715	s << "\tpNext = " << value.pNext << '\n';
16716	s << "\tdataSize = " << value.dataSize << '\n';
16717	s << "\tpData = " << value.pData << '\n';
16718	s << '}';
16719	return s;
16720}
16721
16722std::ostream& operator<< (std::ostream& s, const VkCuModuleTexturingModeCreateInfoNVX& value)
16723{
16724	s << "VkCuModuleTexturingModeCreateInfoNVX = {\n";
16725	s << "\tsType = " << value.sType << '\n';
16726	s << "\tpNext = " << value.pNext << '\n';
16727	s << "\tuse64bitTexturing = " << value.use64bitTexturing << '\n';
16728	s << '}';
16729	return s;
16730}
16731
16732std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
16733{
16734	s << "VkCuFunctionCreateInfoNVX = {\n";
16735	s << "\tsType = " << value.sType << '\n';
16736	s << "\tpNext = " << value.pNext << '\n';
16737	s << "\tmodule = " << value.module << '\n';
16738	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
16739	s << '}';
16740	return s;
16741}
16742
16743std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
16744{
16745	s << "VkCuLaunchInfoNVX = {\n";
16746	s << "\tsType = " << value.sType << '\n';
16747	s << "\tpNext = " << value.pNext << '\n';
16748	s << "\tfunction = " << value.function << '\n';
16749	s << "\tgridDimX = " << value.gridDimX << '\n';
16750	s << "\tgridDimY = " << value.gridDimY << '\n';
16751	s << "\tgridDimZ = " << value.gridDimZ << '\n';
16752	s << "\tblockDimX = " << value.blockDimX << '\n';
16753	s << "\tblockDimY = " << value.blockDimY << '\n';
16754	s << "\tblockDimZ = " << value.blockDimZ << '\n';
16755	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
16756	s << "\tparamCount = " << value.paramCount << '\n';
16757	s << "\tpParams = " << value.pParams << '\n';
16758	s << "\textraCount = " << value.extraCount << '\n';
16759	s << "\tpExtras = " << value.pExtras << '\n';
16760	s << '}';
16761	return s;
16762}
16763
16764std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferFeaturesEXT& value)
16765{
16766	s << "VkPhysicalDeviceDescriptorBufferFeaturesEXT = {\n";
16767	s << "\tsType = " << value.sType << '\n';
16768	s << "\tpNext = " << value.pNext << '\n';
16769	s << "\tdescriptorBuffer = " << value.descriptorBuffer << '\n';
16770	s << "\tdescriptorBufferCaptureReplay = " << value.descriptorBufferCaptureReplay << '\n';
16771	s << "\tdescriptorBufferImageLayoutIgnored = " << value.descriptorBufferImageLayoutIgnored << '\n';
16772	s << "\tdescriptorBufferPushDescriptors = " << value.descriptorBufferPushDescriptors << '\n';
16773	s << '}';
16774	return s;
16775}
16776
16777std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferPropertiesEXT& value)
16778{
16779	s << "VkPhysicalDeviceDescriptorBufferPropertiesEXT = {\n";
16780	s << "\tsType = " << value.sType << '\n';
16781	s << "\tpNext = " << value.pNext << '\n';
16782	s << "\tcombinedImageSamplerDescriptorSingleArray = " << value.combinedImageSamplerDescriptorSingleArray << '\n';
16783	s << "\tbufferlessPushDescriptors = " << value.bufferlessPushDescriptors << '\n';
16784	s << "\tallowSamplerImageViewPostSubmitCreation = " << value.allowSamplerImageViewPostSubmitCreation << '\n';
16785	s << "\tdescriptorBufferOffsetAlignment = " << value.descriptorBufferOffsetAlignment << '\n';
16786	s << "\tmaxDescriptorBufferBindings = " << value.maxDescriptorBufferBindings << '\n';
16787	s << "\tmaxResourceDescriptorBufferBindings = " << value.maxResourceDescriptorBufferBindings << '\n';
16788	s << "\tmaxSamplerDescriptorBufferBindings = " << value.maxSamplerDescriptorBufferBindings << '\n';
16789	s << "\tmaxEmbeddedImmutableSamplerBindings = " << value.maxEmbeddedImmutableSamplerBindings << '\n';
16790	s << "\tmaxEmbeddedImmutableSamplers = " << value.maxEmbeddedImmutableSamplers << '\n';
16791	s << "\tbufferCaptureReplayDescriptorDataSize = " << value.bufferCaptureReplayDescriptorDataSize << '\n';
16792	s << "\timageCaptureReplayDescriptorDataSize = " << value.imageCaptureReplayDescriptorDataSize << '\n';
16793	s << "\timageViewCaptureReplayDescriptorDataSize = " << value.imageViewCaptureReplayDescriptorDataSize << '\n';
16794	s << "\tsamplerCaptureReplayDescriptorDataSize = " << value.samplerCaptureReplayDescriptorDataSize << '\n';
16795	s << "\taccelerationStructureCaptureReplayDescriptorDataSize = " << value.accelerationStructureCaptureReplayDescriptorDataSize << '\n';
16796	s << "\tsamplerDescriptorSize = " << value.samplerDescriptorSize << '\n';
16797	s << "\tcombinedImageSamplerDescriptorSize = " << value.combinedImageSamplerDescriptorSize << '\n';
16798	s << "\tsampledImageDescriptorSize = " << value.sampledImageDescriptorSize << '\n';
16799	s << "\tstorageImageDescriptorSize = " << value.storageImageDescriptorSize << '\n';
16800	s << "\tuniformTexelBufferDescriptorSize = " << value.uniformTexelBufferDescriptorSize << '\n';
16801	s << "\trobustUniformTexelBufferDescriptorSize = " << value.robustUniformTexelBufferDescriptorSize << '\n';
16802	s << "\tstorageTexelBufferDescriptorSize = " << value.storageTexelBufferDescriptorSize << '\n';
16803	s << "\trobustStorageTexelBufferDescriptorSize = " << value.robustStorageTexelBufferDescriptorSize << '\n';
16804	s << "\tuniformBufferDescriptorSize = " << value.uniformBufferDescriptorSize << '\n';
16805	s << "\trobustUniformBufferDescriptorSize = " << value.robustUniformBufferDescriptorSize << '\n';
16806	s << "\tstorageBufferDescriptorSize = " << value.storageBufferDescriptorSize << '\n';
16807	s << "\trobustStorageBufferDescriptorSize = " << value.robustStorageBufferDescriptorSize << '\n';
16808	s << "\tinputAttachmentDescriptorSize = " << value.inputAttachmentDescriptorSize << '\n';
16809	s << "\taccelerationStructureDescriptorSize = " << value.accelerationStructureDescriptorSize << '\n';
16810	s << "\tmaxSamplerDescriptorBufferRange = " << value.maxSamplerDescriptorBufferRange << '\n';
16811	s << "\tmaxResourceDescriptorBufferRange = " << value.maxResourceDescriptorBufferRange << '\n';
16812	s << "\tsamplerDescriptorBufferAddressSpaceSize = " << value.samplerDescriptorBufferAddressSpaceSize << '\n';
16813	s << "\tresourceDescriptorBufferAddressSpaceSize = " << value.resourceDescriptorBufferAddressSpaceSize << '\n';
16814	s << "\tdescriptorBufferAddressSpaceSize = " << value.descriptorBufferAddressSpaceSize << '\n';
16815	s << '}';
16816	return s;
16817}
16818
16819std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT& value)
16820{
16821	s << "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = {\n";
16822	s << "\tsType = " << value.sType << '\n';
16823	s << "\tpNext = " << value.pNext << '\n';
16824	s << "\tcombinedImageSamplerDensityMapDescriptorSize = " << value.combinedImageSamplerDensityMapDescriptorSize << '\n';
16825	s << '}';
16826	return s;
16827}
16828
16829std::ostream& operator<< (std::ostream& s, const VkDescriptorAddressInfoEXT& value)
16830{
16831	s << "VkDescriptorAddressInfoEXT = {\n";
16832	s << "\tsType = " << value.sType << '\n';
16833	s << "\tpNext = " << value.pNext << '\n';
16834	s << "\taddress = " << value.address << '\n';
16835	s << "\trange = " << value.range << '\n';
16836	s << "\tformat = " << value.format << '\n';
16837	s << '}';
16838	return s;
16839}
16840
16841std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingInfoEXT& value)
16842{
16843	s << "VkDescriptorBufferBindingInfoEXT = {\n";
16844	s << "\tsType = " << value.sType << '\n';
16845	s << "\tpNext = " << value.pNext << '\n';
16846	s << "\taddress = " << value.address << '\n';
16847	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
16848	s << '}';
16849	return s;
16850}
16851
16852std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferBindingPushDescriptorBufferHandleEXT& value)
16853{
16854	s << "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT = {\n";
16855	s << "\tsType = " << value.sType << '\n';
16856	s << "\tpNext = " << value.pNext << '\n';
16857	s << "\tbuffer = " << value.buffer << '\n';
16858	s << '}';
16859	return s;
16860}
16861
16862std::ostream& operator<< (std::ostream& s, const VkDescriptorDataEXT& value)
16863{
16864	s << "VkDescriptorDataEXT = {\n";
16865	s << "\tpSampler = " << value.pSampler << '\n';
16866	s << "\tpCombinedImageSampler = " << value.pCombinedImageSampler << '\n';
16867	s << "\tpInputAttachmentImage = " << value.pInputAttachmentImage << '\n';
16868	s << "\tpSampledImage = " << value.pSampledImage << '\n';
16869	s << "\tpStorageImage = " << value.pStorageImage << '\n';
16870	s << "\tpUniformTexelBuffer = " << value.pUniformTexelBuffer << '\n';
16871	s << "\tpStorageTexelBuffer = " << value.pStorageTexelBuffer << '\n';
16872	s << "\tpUniformBuffer = " << value.pUniformBuffer << '\n';
16873	s << "\tpStorageBuffer = " << value.pStorageBuffer << '\n';
16874	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
16875	s << '}';
16876	return s;
16877}
16878
16879std::ostream& operator<< (std::ostream& s, const VkDescriptorGetInfoEXT& value)
16880{
16881	s << "VkDescriptorGetInfoEXT = {\n";
16882	s << "\tsType = " << value.sType << '\n';
16883	s << "\tpNext = " << value.pNext << '\n';
16884	s << "\ttype = " << value.type << '\n';
16885	s << "\tdata = " << value.data << '\n';
16886	s << '}';
16887	return s;
16888}
16889
16890std::ostream& operator<< (std::ostream& s, const VkBufferCaptureDescriptorDataInfoEXT& value)
16891{
16892	s << "VkBufferCaptureDescriptorDataInfoEXT = {\n";
16893	s << "\tsType = " << value.sType << '\n';
16894	s << "\tpNext = " << value.pNext << '\n';
16895	s << "\tbuffer = " << value.buffer << '\n';
16896	s << '}';
16897	return s;
16898}
16899
16900std::ostream& operator<< (std::ostream& s, const VkImageCaptureDescriptorDataInfoEXT& value)
16901{
16902	s << "VkImageCaptureDescriptorDataInfoEXT = {\n";
16903	s << "\tsType = " << value.sType << '\n';
16904	s << "\tpNext = " << value.pNext << '\n';
16905	s << "\timage = " << value.image << '\n';
16906	s << '}';
16907	return s;
16908}
16909
16910std::ostream& operator<< (std::ostream& s, const VkImageViewCaptureDescriptorDataInfoEXT& value)
16911{
16912	s << "VkImageViewCaptureDescriptorDataInfoEXT = {\n";
16913	s << "\tsType = " << value.sType << '\n';
16914	s << "\tpNext = " << value.pNext << '\n';
16915	s << "\timageView = " << value.imageView << '\n';
16916	s << '}';
16917	return s;
16918}
16919
16920std::ostream& operator<< (std::ostream& s, const VkSamplerCaptureDescriptorDataInfoEXT& value)
16921{
16922	s << "VkSamplerCaptureDescriptorDataInfoEXT = {\n";
16923	s << "\tsType = " << value.sType << '\n';
16924	s << "\tpNext = " << value.pNext << '\n';
16925	s << "\tsampler = " << value.sampler << '\n';
16926	s << '}';
16927	return s;
16928}
16929
16930std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCaptureDescriptorDataInfoEXT& value)
16931{
16932	s << "VkAccelerationStructureCaptureDescriptorDataInfoEXT = {\n";
16933	s << "\tsType = " << value.sType << '\n';
16934	s << "\tpNext = " << value.pNext << '\n';
16935	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
16936	s << "\taccelerationStructureNV = " << value.accelerationStructureNV << '\n';
16937	s << '}';
16938	return s;
16939}
16940
16941std::ostream& operator<< (std::ostream& s, const VkOpaqueCaptureDescriptorDataCreateInfoEXT& value)
16942{
16943	s << "VkOpaqueCaptureDescriptorDataCreateInfoEXT = {\n";
16944	s << "\tsType = " << value.sType << '\n';
16945	s << "\tpNext = " << value.pNext << '\n';
16946	s << "\topaqueCaptureDescriptorData = " << value.opaqueCaptureDescriptorData << '\n';
16947	s << '}';
16948	return s;
16949}
16950
16951std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
16952{
16953	s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
16954	s << "\tsType = " << value.sType << '\n';
16955	s << "\tpNext = " << value.pNext << '\n';
16956	s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
16957	s << '}';
16958	return s;
16959}
16960
16961std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
16962{
16963	s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
16964	s << "\tsType = " << value.sType << '\n';
16965	s << "\tpNext = " << value.pNext << '\n';
16966	s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
16967	s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
16968	s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
16969	s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
16970	s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
16971	s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
16972	s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
16973	s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
16974	s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
16975	s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
16976	s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
16977	s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
16978	s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
16979	s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
16980	s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
16981	s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
16982	s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
16983	s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
16984	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
16985	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
16986	s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
16987	s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
16988	s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
16989	s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
16990	s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
16991	s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
16992	s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
16993	s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
16994	s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
16995	s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
16996	s << '}';
16997	return s;
16998}
16999
17000std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
17001{
17002	s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
17003	s << "\tsType = " << value.sType << '\n';
17004	s << "\tpNext = " << value.pNext << '\n';
17005	s << "\thasPrimary = " << value.hasPrimary << '\n';
17006	s << "\thasRender = " << value.hasRender << '\n';
17007	s << "\tprimaryMajor = " << value.primaryMajor << '\n';
17008	s << "\tprimaryMinor = " << value.primaryMinor << '\n';
17009	s << "\trenderMajor = " << value.renderMajor << '\n';
17010	s << "\trenderMinor = " << value.renderMinor << '\n';
17011	s << '}';
17012	return s;
17013}
17014
17015std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
17016{
17017	s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
17018	s << "\tsType = " << value.sType << '\n';
17019	s << "\tpNext = " << value.pNext << '\n';
17020	s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
17021	s << '}';
17022	return s;
17023}
17024
17025std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
17026{
17027	s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
17028	s << "\tsType = " << value.sType << '\n';
17029	s << "\tpNext = " << value.pNext << '\n';
17030	s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
17031	s << '}';
17032	return s;
17033}
17034
17035std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
17036{
17037	s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
17038	s << "\tsType = " << value.sType << '\n';
17039	s << "\tpNext = " << value.pNext << '\n';
17040	s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
17041	s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
17042	s << '}';
17043	return s;
17044}
17045
17046std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingValidationFeaturesNV& value)
17047{
17048	s << "VkPhysicalDeviceRayTracingValidationFeaturesNV = {\n";
17049	s << "\tsType = " << value.sType << '\n';
17050	s << "\tpNext = " << value.pNext << '\n';
17051	s << "\trayTracingValidation = " << value.rayTracingValidation << '\n';
17052	s << '}';
17053	return s;
17054}
17055
17056std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
17057{
17058	s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
17059	s << "\tsType = " << value.sType << '\n';
17060	s << "\tpNext = " << value.pNext << '\n';
17061	s << "\tvertexData = " << value.vertexData << '\n';
17062	s << '}';
17063	return s;
17064}
17065
17066std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
17067{
17068	s << "VkAccelerationStructureMotionInfoNV = {\n";
17069	s << "\tsType = " << value.sType << '\n';
17070	s << "\tpNext = " << value.pNext << '\n';
17071	s << "\tmaxInstances = " << value.maxInstances << '\n';
17072	s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
17073	s << '}';
17074	return s;
17075}
17076
17077std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
17078{
17079	s << "VkSRTDataNV = {\n";
17080	s << "\tsx = " << value.sx << '\n';
17081	s << "\ta = " << value.a << '\n';
17082	s << "\tb = " << value.b << '\n';
17083	s << "\tpvx = " << value.pvx << '\n';
17084	s << "\tsy = " << value.sy << '\n';
17085	s << "\tc = " << value.c << '\n';
17086	s << "\tpvy = " << value.pvy << '\n';
17087	s << "\tsz = " << value.sz << '\n';
17088	s << "\tpvz = " << value.pvz << '\n';
17089	s << "\tqx = " << value.qx << '\n';
17090	s << "\tqy = " << value.qy << '\n';
17091	s << "\tqz = " << value.qz << '\n';
17092	s << "\tqw = " << value.qw << '\n';
17093	s << "\ttx = " << value.tx << '\n';
17094	s << "\tty = " << value.ty << '\n';
17095	s << "\ttz = " << value.tz << '\n';
17096	s << '}';
17097	return s;
17098}
17099
17100std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
17101{
17102	s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
17103	s << "\ttransformT0 = " << value.transformT0 << '\n';
17104	s << "\ttransformT1 = " << value.transformT1 << '\n';
17105	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
17106	s << "\tmask = " << value.mask << '\n';
17107	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
17108	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
17109	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
17110	s << '}';
17111	return s;
17112}
17113
17114std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
17115{
17116	s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
17117	s << "\ttransformT0 = " << value.transformT0 << '\n';
17118	s << "\ttransformT1 = " << value.transformT1 << '\n';
17119	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
17120	s << "\tmask = " << value.mask << '\n';
17121	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
17122	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
17123	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
17124	s << '}';
17125	return s;
17126}
17127
17128std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
17129{
17130	s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
17131	s << "\tstaticInstance = " << value.staticInstance << '\n';
17132	s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
17133	s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
17134	s << '}';
17135	return s;
17136}
17137
17138std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
17139{
17140	s << "VkAccelerationStructureMotionInstanceNV = {\n";
17141	s << "\ttype = " << value.type << '\n';
17142	s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
17143	s << "\tdata = " << value.data << '\n';
17144	s << '}';
17145	return s;
17146}
17147
17148std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
17149{
17150	s << "VkMemoryGetRemoteAddressInfoNV = {\n";
17151	s << "\tsType = " << value.sType << '\n';
17152	s << "\tpNext = " << value.pNext << '\n';
17153	s << "\tmemory = " << value.memory << '\n';
17154	s << "\thandleType = " << value.handleType << '\n';
17155	s << '}';
17156	return s;
17157}
17158
17159std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
17160{
17161	s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
17162	s << "\tsType = " << value.sType << '\n';
17163	s << "\tpNext = " << value.pNext << '\n';
17164	s << "\tcollection = " << value.collection << '\n';
17165	s << "\tindex = " << value.index << '\n';
17166	s << '}';
17167	return s;
17168}
17169
17170std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
17171{
17172	s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
17173	s << "\tsType = " << value.sType << '\n';
17174	s << "\tpNext = " << value.pNext << '\n';
17175	s << "\tcollection = " << value.collection << '\n';
17176	s << "\tindex = " << value.index << '\n';
17177	s << '}';
17178	return s;
17179}
17180
17181std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
17182{
17183	s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
17184	s << "\tsType = " << value.sType << '\n';
17185	s << "\tpNext = " << value.pNext << '\n';
17186	s << "\tcollection = " << value.collection << '\n';
17187	s << "\tindex = " << value.index << '\n';
17188	s << '}';
17189	return s;
17190}
17191
17192std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
17193{
17194	s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
17195	s << "\tsType = " << value.sType << '\n';
17196	s << "\tpNext = " << value.pNext << '\n';
17197	s << "\tcollectionToken = " << value.collectionToken << '\n';
17198	s << '}';
17199	return s;
17200}
17201
17202std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
17203{
17204	s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
17205	s << "\tsType = " << value.sType << '\n';
17206	s << "\tpNext = " << value.pNext << '\n';
17207	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
17208	s << "\tbufferCount = " << value.bufferCount << '\n';
17209	s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
17210	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
17211	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
17212	s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
17213	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
17214	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
17215	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
17216	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
17217	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
17218	s << '}';
17219	return s;
17220}
17221
17222std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
17223{
17224	s << "VkBufferConstraintsInfoFUCHSIA = {\n";
17225	s << "\tsType = " << value.sType << '\n';
17226	s << "\tpNext = " << value.pNext << '\n';
17227	s << "\tcreateInfo = " << value.createInfo << '\n';
17228	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
17229	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
17230	s << '}';
17231	return s;
17232}
17233
17234std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
17235{
17236	s << "VkSysmemColorSpaceFUCHSIA = {\n";
17237	s << "\tsType = " << value.sType << '\n';
17238	s << "\tpNext = " << value.pNext << '\n';
17239	s << "\tcolorSpace = " << value.colorSpace << '\n';
17240	s << '}';
17241	return s;
17242}
17243
17244std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
17245{
17246	s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
17247	s << "\tsType = " << value.sType << '\n';
17248	s << "\tpNext = " << value.pNext << '\n';
17249	s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
17250	s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
17251	s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
17252	s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
17253	s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
17254	s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
17255	s << '}';
17256	return s;
17257}
17258
17259std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
17260{
17261	s << "VkImageConstraintsInfoFUCHSIA = {\n";
17262	s << "\tsType = " << value.sType << '\n';
17263	s << "\tpNext = " << value.pNext << '\n';
17264	s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
17265	s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
17266	s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
17267	s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
17268	s << '}';
17269	return s;
17270}
17271
17272std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
17273{
17274	s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
17275	s << "\tsType = " << value.sType << '\n';
17276	s << "\tpNext = " << value.pNext << '\n';
17277	s << "\tminBufferCount = " << value.minBufferCount << '\n';
17278	s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
17279	s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
17280	s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
17281	s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
17282	s << '}';
17283	return s;
17284}
17285
17286std::ostream& operator<< (std::ostream& s, const VkCudaModuleCreateInfoNV& value)
17287{
17288	s << "VkCudaModuleCreateInfoNV = {\n";
17289	s << "\tsType = " << value.sType << '\n';
17290	s << "\tpNext = " << value.pNext << '\n';
17291	s << "\tdataSize = " << value.dataSize << '\n';
17292	s << "\tpData = " << value.pData << '\n';
17293	s << '}';
17294	return s;
17295}
17296
17297std::ostream& operator<< (std::ostream& s, const VkCudaFunctionCreateInfoNV& value)
17298{
17299	s << "VkCudaFunctionCreateInfoNV = {\n";
17300	s << "\tsType = " << value.sType << '\n';
17301	s << "\tpNext = " << value.pNext << '\n';
17302	s << "\tmodule = " << value.module << '\n';
17303	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
17304	s << '}';
17305	return s;
17306}
17307
17308std::ostream& operator<< (std::ostream& s, const VkCudaLaunchInfoNV& value)
17309{
17310	s << "VkCudaLaunchInfoNV = {\n";
17311	s << "\tsType = " << value.sType << '\n';
17312	s << "\tpNext = " << value.pNext << '\n';
17313	s << "\tfunction = " << value.function << '\n';
17314	s << "\tgridDimX = " << value.gridDimX << '\n';
17315	s << "\tgridDimY = " << value.gridDimY << '\n';
17316	s << "\tgridDimZ = " << value.gridDimZ << '\n';
17317	s << "\tblockDimX = " << value.blockDimX << '\n';
17318	s << "\tblockDimY = " << value.blockDimY << '\n';
17319	s << "\tblockDimZ = " << value.blockDimZ << '\n';
17320	s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
17321	s << "\tparamCount = " << value.paramCount << '\n';
17322	s << "\tpParams = " << value.pParams << '\n';
17323	s << "\textraCount = " << value.extraCount << '\n';
17324	s << "\tpExtras = " << value.pExtras << '\n';
17325	s << '}';
17326	return s;
17327}
17328
17329std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
17330{
17331	s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
17332	s << "\tsType = " << value.sType << '\n';
17333	s << "\tpNext = " << value.pNext << '\n';
17334	s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
17335	s << '}';
17336	return s;
17337}
17338
17339std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
17340{
17341	s << "VkFormatProperties3 = {\n";
17342	s << "\tsType = " << value.sType << '\n';
17343	s << "\tpNext = " << value.pNext << '\n';
17344	s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
17345	s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
17346	s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
17347	s << '}';
17348	return s;
17349}
17350
17351std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
17352{
17353	s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
17354	s << "\tsType = " << value.sType << '\n';
17355	s << "\tpNext = " << value.pNext << '\n';
17356	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
17357	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
17358	s << '}';
17359	return s;
17360}
17361
17362std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
17363{
17364	s << "VkDrmFormatModifierProperties2EXT = {\n";
17365	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
17366	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
17367	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
17368	s << '}';
17369	return s;
17370}
17371
17372std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
17373{
17374	s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
17375	s << "\tsType = " << value.sType << '\n';
17376	s << "\tpNext = " << value.pNext << '\n';
17377	s << "\tformat = " << value.format << '\n';
17378	s << "\texternalFormat = " << value.externalFormat << '\n';
17379	s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
17380	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
17381	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
17382	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
17383	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
17384	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
17385	s << '}';
17386	return s;
17387}
17388
17389std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
17390{
17391	s << "VkPipelineRenderingCreateInfo = {\n";
17392	s << "\tsType = " << value.sType << '\n';
17393	s << "\tpNext = " << value.pNext << '\n';
17394	s << "\tviewMask = " << value.viewMask << '\n';
17395	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
17396	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
17397	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
17398	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
17399	s << '}';
17400	return s;
17401}
17402
17403std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
17404{
17405	s << "VkRenderingInfo = {\n";
17406	s << "\tsType = " << value.sType << '\n';
17407	s << "\tpNext = " << value.pNext << '\n';
17408	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
17409	s << "\trenderArea = " << value.renderArea << '\n';
17410	s << "\tlayerCount = " << value.layerCount << '\n';
17411	s << "\tviewMask = " << value.viewMask << '\n';
17412	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
17413	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
17414	s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
17415	s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
17416	s << '}';
17417	return s;
17418}
17419
17420std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
17421{
17422	s << "VkRenderingAttachmentInfo = {\n";
17423	s << "\tsType = " << value.sType << '\n';
17424	s << "\tpNext = " << value.pNext << '\n';
17425	s << "\timageView = " << value.imageView << '\n';
17426	s << "\timageLayout = " << value.imageLayout << '\n';
17427	s << "\tresolveMode = " << value.resolveMode << '\n';
17428	s << "\tresolveImageView = " << value.resolveImageView << '\n';
17429	s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
17430	s << "\tloadOp = " << value.loadOp << '\n';
17431	s << "\tstoreOp = " << value.storeOp << '\n';
17432	s << "\tclearValue = " << value.clearValue << '\n';
17433	s << '}';
17434	return s;
17435}
17436
17437std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
17438{
17439	s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
17440	s << "\tsType = " << value.sType << '\n';
17441	s << "\tpNext = " << value.pNext << '\n';
17442	s << "\timageView = " << value.imageView << '\n';
17443	s << "\timageLayout = " << value.imageLayout << '\n';
17444	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
17445	s << '}';
17446	return s;
17447}
17448
17449std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
17450{
17451	s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
17452	s << "\tsType = " << value.sType << '\n';
17453	s << "\tpNext = " << value.pNext << '\n';
17454	s << "\timageView = " << value.imageView << '\n';
17455	s << "\timageLayout = " << value.imageLayout << '\n';
17456	s << '}';
17457	return s;
17458}
17459
17460std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
17461{
17462	s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
17463	s << "\tsType = " << value.sType << '\n';
17464	s << "\tpNext = " << value.pNext << '\n';
17465	s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
17466	s << '}';
17467	return s;
17468}
17469
17470std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
17471{
17472	s << "VkCommandBufferInheritanceRenderingInfo = {\n";
17473	s << "\tsType = " << value.sType << '\n';
17474	s << "\tpNext = " << value.pNext << '\n';
17475	s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
17476	s << "\tviewMask = " << value.viewMask << '\n';
17477	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
17478	s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
17479	s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
17480	s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
17481	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
17482	s << '}';
17483	return s;
17484}
17485
17486std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
17487{
17488	s << "VkAttachmentSampleCountInfoAMD = {\n";
17489	s << "\tsType = " << value.sType << '\n';
17490	s << "\tpNext = " << value.pNext << '\n';
17491	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
17492	s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
17493	s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
17494	s << '}';
17495	return s;
17496}
17497
17498std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
17499{
17500	s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
17501	s << "\tsType = " << value.sType << '\n';
17502	s << "\tpNext = " << value.pNext << '\n';
17503	s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
17504	s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
17505	s << '}';
17506	return s;
17507}
17508
17509std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
17510{
17511	s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
17512	s << "\tsType = " << value.sType << '\n';
17513	s << "\tpNext = " << value.pNext << '\n';
17514	s << "\tminLod = " << value.minLod << '\n';
17515	s << '}';
17516	return s;
17517}
17518
17519std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
17520{
17521	s << "VkImageViewMinLodCreateInfoEXT = {\n";
17522	s << "\tsType = " << value.sType << '\n';
17523	s << "\tpNext = " << value.pNext << '\n';
17524	s << "\tminLod = " << value.minLod << '\n';
17525	s << '}';
17526	return s;
17527}
17528
17529std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT& value)
17530{
17531	s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = {\n";
17532	s << "\tsType = " << value.sType << '\n';
17533	s << "\tpNext = " << value.pNext << '\n';
17534	s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
17535	s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
17536	s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
17537	s << '}';
17538	return s;
17539}
17540
17541std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
17542{
17543	s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
17544	s << "\tsType = " << value.sType << '\n';
17545	s << "\tpNext = " << value.pNext << '\n';
17546	s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
17547	s << '}';
17548	return s;
17549}
17550
17551std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
17552{
17553	s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
17554	s << "\tsType = " << value.sType << '\n';
17555	s << "\tpNext = " << value.pNext << '\n';
17556	s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
17557	s << '}';
17558	return s;
17559}
17560
17561std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineBinaryFeaturesKHR& value)
17562{
17563	s << "VkPhysicalDevicePipelineBinaryFeaturesKHR = {\n";
17564	s << "\tsType = " << value.sType << '\n';
17565	s << "\tpNext = " << value.pNext << '\n';
17566	s << "\tpipelineBinaries = " << value.pipelineBinaries << '\n';
17567	s << '}';
17568	return s;
17569}
17570
17571std::ostream& operator<< (std::ostream& s, const VkDevicePipelineBinaryInternalCacheControlKHR& value)
17572{
17573	s << "VkDevicePipelineBinaryInternalCacheControlKHR = {\n";
17574	s << "\tsType = " << value.sType << '\n';
17575	s << "\tpNext = " << value.pNext << '\n';
17576	s << "\tdisableInternalCache = " << value.disableInternalCache << '\n';
17577	s << '}';
17578	return s;
17579}
17580
17581std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineBinaryPropertiesKHR& value)
17582{
17583	s << "VkPhysicalDevicePipelineBinaryPropertiesKHR = {\n";
17584	s << "\tsType = " << value.sType << '\n';
17585	s << "\tpNext = " << value.pNext << '\n';
17586	s << "\tpipelineBinaryInternalCache = " << value.pipelineBinaryInternalCache << '\n';
17587	s << "\tpipelineBinaryInternalCacheControl = " << value.pipelineBinaryInternalCacheControl << '\n';
17588	s << "\tpipelineBinaryPrefersInternalCache = " << value.pipelineBinaryPrefersInternalCache << '\n';
17589	s << "\tpipelineBinaryPrecompiledInternalCache = " << value.pipelineBinaryPrecompiledInternalCache << '\n';
17590	s << "\tpipelineBinaryCompressedData = " << value.pipelineBinaryCompressedData << '\n';
17591	s << '}';
17592	return s;
17593}
17594
17595std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
17596{
17597	s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
17598	s << "\tsType = " << value.sType << '\n';
17599	s << "\tpNext = " << value.pNext << '\n';
17600	s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
17601	s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
17602	s << '}';
17603	return s;
17604}
17605
17606std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
17607{
17608	s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
17609	s << "\tsType = " << value.sType << '\n';
17610	s << "\tpNext = " << value.pNext << '\n';
17611	s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
17612	s << '}';
17613	return s;
17614}
17615
17616std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
17617{
17618	s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
17619	s << "\tsType = " << value.sType << '\n';
17620	s << "\tpNext = " << value.pNext << '\n';
17621	s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
17622	s << '}';
17623	return s;
17624}
17625
17626std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
17627{
17628	s << "VkDescriptorSetBindingReferenceVALVE = {\n";
17629	s << "\tsType = " << value.sType << '\n';
17630	s << "\tpNext = " << value.pNext << '\n';
17631	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
17632	s << "\tbinding = " << value.binding << '\n';
17633	s << '}';
17634	return s;
17635}
17636
17637std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
17638{
17639	s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
17640	s << "\tsType = " << value.sType << '\n';
17641	s << "\tpNext = " << value.pNext << '\n';
17642	s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
17643	s << "\tdescriptorSize = " << value.descriptorSize << '\n';
17644	s << '}';
17645	return s;
17646}
17647
17648std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNestedCommandBufferFeaturesEXT& value)
17649{
17650	s << "VkPhysicalDeviceNestedCommandBufferFeaturesEXT = {\n";
17651	s << "\tsType = " << value.sType << '\n';
17652	s << "\tpNext = " << value.pNext << '\n';
17653	s << "\tnestedCommandBuffer = " << value.nestedCommandBuffer << '\n';
17654	s << "\tnestedCommandBufferRendering = " << value.nestedCommandBufferRendering << '\n';
17655	s << "\tnestedCommandBufferSimultaneousUse = " << value.nestedCommandBufferSimultaneousUse << '\n';
17656	s << '}';
17657	return s;
17658}
17659
17660std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNestedCommandBufferPropertiesEXT& value)
17661{
17662	s << "VkPhysicalDeviceNestedCommandBufferPropertiesEXT = {\n";
17663	s << "\tsType = " << value.sType << '\n';
17664	s << "\tpNext = " << value.pNext << '\n';
17665	s << "\tmaxCommandBufferNestingLevel = " << value.maxCommandBufferNestingLevel << '\n';
17666	s << '}';
17667	return s;
17668}
17669
17670std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
17671{
17672	s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
17673	s << "\tsType = " << value.sType << '\n';
17674	s << "\tpNext = " << value.pNext << '\n';
17675	s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
17676	s << '}';
17677	return s;
17678}
17679
17680std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
17681{
17682	s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
17683	s << "\tsType = " << value.sType << '\n';
17684	s << "\tpNext = " << value.pNext << '\n';
17685	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';
17686	s << '}';
17687	return s;
17688}
17689
17690std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
17691{
17692	s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
17693	s << "\tsType = " << value.sType << '\n';
17694	s << "\tpNext = " << value.pNext << '\n';
17695	s << "\tidentifierSize = " << value.identifierSize << '\n';
17696	s << "\tpIdentifier = " << value.pIdentifier << '\n';
17697	s << '}';
17698	return s;
17699}
17700
17701std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
17702{
17703	s << "VkShaderModuleIdentifierEXT = {\n";
17704	s << "\tsType = " << value.sType << '\n';
17705	s << "\tpNext = " << value.pNext << '\n';
17706	s << "\tidentifierSize = " << value.identifierSize << '\n';
17707	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';
17708	s << '}';
17709	return s;
17710}
17711
17712std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
17713{
17714	s << "VkImageCompressionControlEXT = {\n";
17715	s << "\tsType = " << value.sType << '\n';
17716	s << "\tpNext = " << value.pNext << '\n';
17717	s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
17718	s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
17719	s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
17720	s << '}';
17721	return s;
17722}
17723
17724std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
17725{
17726	s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
17727	s << "\tsType = " << value.sType << '\n';
17728	s << "\tpNext = " << value.pNext << '\n';
17729	s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
17730	s << '}';
17731	return s;
17732}
17733
17734std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
17735{
17736	s << "VkImageCompressionPropertiesEXT = {\n";
17737	s << "\tsType = " << value.sType << '\n';
17738	s << "\tpNext = " << value.pNext << '\n';
17739	s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
17740	s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
17741	s << '}';
17742	return s;
17743}
17744
17745std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
17746{
17747	s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
17748	s << "\tsType = " << value.sType << '\n';
17749	s << "\tpNext = " << value.pNext << '\n';
17750	s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
17751	s << '}';
17752	return s;
17753}
17754
17755std::ostream& operator<< (std::ostream& s, const VkImageSubresource2& value)
17756{
17757	s << "VkImageSubresource2 = {\n";
17758	s << "\tsType = " << value.sType << '\n';
17759	s << "\tpNext = " << value.pNext << '\n';
17760	s << "\timageSubresource = " << value.imageSubresource << '\n';
17761	s << '}';
17762	return s;
17763}
17764
17765std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2& value)
17766{
17767	s << "VkSubresourceLayout2 = {\n";
17768	s << "\tsType = " << value.sType << '\n';
17769	s << "\tpNext = " << value.pNext << '\n';
17770	s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
17771	s << '}';
17772	return s;
17773}
17774
17775std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
17776{
17777	s << "VkRenderPassCreationControlEXT = {\n";
17778	s << "\tsType = " << value.sType << '\n';
17779	s << "\tpNext = " << value.pNext << '\n';
17780	s << "\tdisallowMerging = " << value.disallowMerging << '\n';
17781	s << '}';
17782	return s;
17783}
17784
17785std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
17786{
17787	s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
17788	s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
17789	s << '}';
17790	return s;
17791}
17792
17793std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
17794{
17795	s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
17796	s << "\tsType = " << value.sType << '\n';
17797	s << "\tpNext = " << value.pNext << '\n';
17798	s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
17799	s << '}';
17800	return s;
17801}
17802
17803std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
17804{
17805	s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
17806	s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
17807	s << "\tdescription = " << (const char*)value.description << '\n';
17808	s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
17809	s << '}';
17810	return s;
17811}
17812
17813std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
17814{
17815	s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
17816	s << "\tsType = " << value.sType << '\n';
17817	s << "\tpNext = " << value.pNext << '\n';
17818	s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
17819	s << '}';
17820	return s;
17821}
17822
17823std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
17824{
17825	s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
17826	s << "\tsType = " << value.sType << '\n';
17827	s << "\tpNext = " << value.pNext << '\n';
17828	s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
17829	s << '}';
17830	return s;
17831}
17832
17833std::ostream& operator<< (std::ostream& s, const VkMicromapBuildInfoEXT& value)
17834{
17835	s << "VkMicromapBuildInfoEXT = {\n";
17836	s << "\tsType = " << value.sType << '\n';
17837	s << "\tpNext = " << value.pNext << '\n';
17838	s << "\ttype = " << value.type << '\n';
17839	s << "\tflags = " << getBuildMicromapFlagsEXTStr(value.flags) << '\n';
17840	s << "\tmode = " << value.mode << '\n';
17841	s << "\tdstMicromap = " << value.dstMicromap << '\n';
17842	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
17843	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
17844	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
17845	s << "\tdata = " << value.data << '\n';
17846	s << "\tscratchData = " << value.scratchData << '\n';
17847	s << "\ttriangleArray = " << value.triangleArray << '\n';
17848	s << "\ttriangleArrayStride = " << value.triangleArrayStride << '\n';
17849	s << '}';
17850	return s;
17851}
17852
17853std::ostream& operator<< (std::ostream& s, const VkMicromapCreateInfoEXT& value)
17854{
17855	s << "VkMicromapCreateInfoEXT = {\n";
17856	s << "\tsType = " << value.sType << '\n';
17857	s << "\tpNext = " << value.pNext << '\n';
17858	s << "\tcreateFlags = " << getMicromapCreateFlagsEXTStr(value.createFlags) << '\n';
17859	s << "\tbuffer = " << value.buffer << '\n';
17860	s << "\toffset = " << value.offset << '\n';
17861	s << "\tsize = " << value.size << '\n';
17862	s << "\ttype = " << value.type << '\n';
17863	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
17864	s << '}';
17865	return s;
17866}
17867
17868std::ostream& operator<< (std::ostream& s, const VkMicromapVersionInfoEXT& value)
17869{
17870	s << "VkMicromapVersionInfoEXT = {\n";
17871	s << "\tsType = " << value.sType << '\n';
17872	s << "\tpNext = " << value.pNext << '\n';
17873	s << "\tpVersionData = " << value.pVersionData << '\n';
17874	s << '}';
17875	return s;
17876}
17877
17878std::ostream& operator<< (std::ostream& s, const VkCopyMicromapInfoEXT& value)
17879{
17880	s << "VkCopyMicromapInfoEXT = {\n";
17881	s << "\tsType = " << value.sType << '\n';
17882	s << "\tpNext = " << value.pNext << '\n';
17883	s << "\tsrc = " << value.src << '\n';
17884	s << "\tdst = " << value.dst << '\n';
17885	s << "\tmode = " << value.mode << '\n';
17886	s << '}';
17887	return s;
17888}
17889
17890std::ostream& operator<< (std::ostream& s, const VkCopyMicromapToMemoryInfoEXT& value)
17891{
17892	s << "VkCopyMicromapToMemoryInfoEXT = {\n";
17893	s << "\tsType = " << value.sType << '\n';
17894	s << "\tpNext = " << value.pNext << '\n';
17895	s << "\tsrc = " << value.src << '\n';
17896	s << "\tdst = " << value.dst << '\n';
17897	s << "\tmode = " << value.mode << '\n';
17898	s << '}';
17899	return s;
17900}
17901
17902std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToMicromapInfoEXT& value)
17903{
17904	s << "VkCopyMemoryToMicromapInfoEXT = {\n";
17905	s << "\tsType = " << value.sType << '\n';
17906	s << "\tpNext = " << value.pNext << '\n';
17907	s << "\tsrc = " << value.src << '\n';
17908	s << "\tdst = " << value.dst << '\n';
17909	s << "\tmode = " << value.mode << '\n';
17910	s << '}';
17911	return s;
17912}
17913
17914std::ostream& operator<< (std::ostream& s, const VkMicromapBuildSizesInfoEXT& value)
17915{
17916	s << "VkMicromapBuildSizesInfoEXT = {\n";
17917	s << "\tsType = " << value.sType << '\n';
17918	s << "\tpNext = " << value.pNext << '\n';
17919	s << "\tmicromapSize = " << value.micromapSize << '\n';
17920	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
17921	s << "\tdiscardable = " << value.discardable << '\n';
17922	s << '}';
17923	return s;
17924}
17925
17926std::ostream& operator<< (std::ostream& s, const VkMicromapUsageEXT& value)
17927{
17928	s << "VkMicromapUsageEXT = {\n";
17929	s << "\tcount = " << value.count << '\n';
17930	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
17931	s << "\tformat = " << value.format << '\n';
17932	s << '}';
17933	return s;
17934}
17935
17936std::ostream& operator<< (std::ostream& s, const VkMicromapTriangleEXT& value)
17937{
17938	s << "VkMicromapTriangleEXT = {\n";
17939	s << "\tdataOffset = " << value.dataOffset << '\n';
17940	s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
17941	s << "\tformat = " << value.format << '\n';
17942	s << '}';
17943	return s;
17944}
17945
17946std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapFeaturesEXT& value)
17947{
17948	s << "VkPhysicalDeviceOpacityMicromapFeaturesEXT = {\n";
17949	s << "\tsType = " << value.sType << '\n';
17950	s << "\tpNext = " << value.pNext << '\n';
17951	s << "\tmicromap = " << value.micromap << '\n';
17952	s << "\tmicromapCaptureReplay = " << value.micromapCaptureReplay << '\n';
17953	s << "\tmicromapHostCommands = " << value.micromapHostCommands << '\n';
17954	s << '}';
17955	return s;
17956}
17957
17958std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapPropertiesEXT& value)
17959{
17960	s << "VkPhysicalDeviceOpacityMicromapPropertiesEXT = {\n";
17961	s << "\tsType = " << value.sType << '\n';
17962	s << "\tpNext = " << value.pNext << '\n';
17963	s << "\tmaxOpacity2StateSubdivisionLevel = " << value.maxOpacity2StateSubdivisionLevel << '\n';
17964	s << "\tmaxOpacity4StateSubdivisionLevel = " << value.maxOpacity4StateSubdivisionLevel << '\n';
17965	s << '}';
17966	return s;
17967}
17968
17969std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesOpacityMicromapEXT& value)
17970{
17971	s << "VkAccelerationStructureTrianglesOpacityMicromapEXT = {\n";
17972	s << "\tsType = " << value.sType << '\n';
17973	s << "\tpNext = " << value.pNext << '\n';
17974	s << "\tindexType = " << value.indexType << '\n';
17975	s << "\tindexBuffer = " << value.indexBuffer << '\n';
17976	s << "\tindexStride = " << value.indexStride << '\n';
17977	s << "\tbaseTriangle = " << value.baseTriangle << '\n';
17978	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
17979	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
17980	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
17981	s << "\tmicromap = " << value.micromap << '\n';
17982	s << '}';
17983	return s;
17984}
17985
17986std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDisplacementMicromapFeaturesNV& value)
17987{
17988	s << "VkPhysicalDeviceDisplacementMicromapFeaturesNV = {\n";
17989	s << "\tsType = " << value.sType << '\n';
17990	s << "\tpNext = " << value.pNext << '\n';
17991	s << "\tdisplacementMicromap = " << value.displacementMicromap << '\n';
17992	s << '}';
17993	return s;
17994}
17995
17996std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDisplacementMicromapPropertiesNV& value)
17997{
17998	s << "VkPhysicalDeviceDisplacementMicromapPropertiesNV = {\n";
17999	s << "\tsType = " << value.sType << '\n';
18000	s << "\tpNext = " << value.pNext << '\n';
18001	s << "\tmaxDisplacementMicromapSubdivisionLevel = " << value.maxDisplacementMicromapSubdivisionLevel << '\n';
18002	s << '}';
18003	return s;
18004}
18005
18006std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesDisplacementMicromapNV& value)
18007{
18008	s << "VkAccelerationStructureTrianglesDisplacementMicromapNV = {\n";
18009	s << "\tsType = " << value.sType << '\n';
18010	s << "\tpNext = " << value.pNext << '\n';
18011	s << "\tdisplacementBiasAndScaleFormat = " << value.displacementBiasAndScaleFormat << '\n';
18012	s << "\tdisplacementVectorFormat = " << value.displacementVectorFormat << '\n';
18013	s << "\tdisplacementBiasAndScaleBuffer = " << value.displacementBiasAndScaleBuffer << '\n';
18014	s << "\tdisplacementBiasAndScaleStride = " << value.displacementBiasAndScaleStride << '\n';
18015	s << "\tdisplacementVectorBuffer = " << value.displacementVectorBuffer << '\n';
18016	s << "\tdisplacementVectorStride = " << value.displacementVectorStride << '\n';
18017	s << "\tdisplacedMicromapPrimitiveFlags = " << value.displacedMicromapPrimitiveFlags << '\n';
18018	s << "\tdisplacedMicromapPrimitiveFlagsStride = " << value.displacedMicromapPrimitiveFlagsStride << '\n';
18019	s << "\tindexType = " << value.indexType << '\n';
18020	s << "\tindexBuffer = " << value.indexBuffer << '\n';
18021	s << "\tindexStride = " << value.indexStride << '\n';
18022	s << "\tbaseTriangle = " << value.baseTriangle << '\n';
18023	s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
18024	s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
18025	s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
18026	s << "\tmicromap = " << value.micromap << '\n';
18027	s << '}';
18028	return s;
18029}
18030
18031std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
18032{
18033	s << "VkPipelinePropertiesIdentifierEXT = {\n";
18034	s << "\tsType = " << value.sType << '\n';
18035	s << "\tpNext = " << value.pNext << '\n';
18036	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';
18037	s << '}';
18038	return s;
18039}
18040
18041std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
18042{
18043	s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
18044	s << "\tsType = " << value.sType << '\n';
18045	s << "\tpNext = " << value.pNext << '\n';
18046	s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
18047	s << '}';
18048	return s;
18049}
18050
18051std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
18052{
18053	s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
18054	s << "\tsType = " << value.sType << '\n';
18055	s << "\tpNext = " << value.pNext << '\n';
18056	s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
18057	s << '}';
18058	return s;
18059}
18060
18061std::ostream& operator<< (std::ostream& s, const VkExternalMemoryAcquireUnmodifiedEXT& value)
18062{
18063	s << "VkExternalMemoryAcquireUnmodifiedEXT = {\n";
18064	s << "\tsType = " << value.sType << '\n';
18065	s << "\tpNext = " << value.pNext << '\n';
18066	s << "\tacquireUnmodifiedMemory = " << value.acquireUnmodifiedMemory << '\n';
18067	s << '}';
18068	return s;
18069}
18070
18071std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
18072{
18073	s << "VkExportMetalObjectCreateInfoEXT = {\n";
18074	s << "\tsType = " << value.sType << '\n';
18075	s << "\tpNext = " << value.pNext << '\n';
18076	s << "\texportObjectType = " << value.exportObjectType << '\n';
18077	s << '}';
18078	return s;
18079}
18080
18081std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
18082{
18083	s << "VkExportMetalObjectsInfoEXT = {\n";
18084	s << "\tsType = " << value.sType << '\n';
18085	s << "\tpNext = " << value.pNext << '\n';
18086	s << '}';
18087	return s;
18088}
18089
18090std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
18091{
18092	s << "VkExportMetalDeviceInfoEXT = {\n";
18093	s << "\tsType = " << value.sType << '\n';
18094	s << "\tpNext = " << value.pNext << '\n';
18095	s << "\tmtlDevice = " << value.mtlDevice << '\n';
18096	s << '}';
18097	return s;
18098}
18099
18100std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
18101{
18102	s << "VkExportMetalCommandQueueInfoEXT = {\n";
18103	s << "\tsType = " << value.sType << '\n';
18104	s << "\tpNext = " << value.pNext << '\n';
18105	s << "\tqueue = " << value.queue << '\n';
18106	s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
18107	s << '}';
18108	return s;
18109}
18110
18111std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
18112{
18113	s << "VkExportMetalBufferInfoEXT = {\n";
18114	s << "\tsType = " << value.sType << '\n';
18115	s << "\tpNext = " << value.pNext << '\n';
18116	s << "\tmemory = " << value.memory << '\n';
18117	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
18118	s << '}';
18119	return s;
18120}
18121
18122std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
18123{
18124	s << "VkImportMetalBufferInfoEXT = {\n";
18125	s << "\tsType = " << value.sType << '\n';
18126	s << "\tpNext = " << value.pNext << '\n';
18127	s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
18128	s << '}';
18129	return s;
18130}
18131
18132std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
18133{
18134	s << "VkExportMetalTextureInfoEXT = {\n";
18135	s << "\tsType = " << value.sType << '\n';
18136	s << "\tpNext = " << value.pNext << '\n';
18137	s << "\timage = " << value.image << '\n';
18138	s << "\timageView = " << value.imageView << '\n';
18139	s << "\tbufferView = " << value.bufferView << '\n';
18140	s << "\tplane = " << value.plane << '\n';
18141	s << "\tmtlTexture = " << value.mtlTexture << '\n';
18142	s << '}';
18143	return s;
18144}
18145
18146std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
18147{
18148	s << "VkImportMetalTextureInfoEXT = {\n";
18149	s << "\tsType = " << value.sType << '\n';
18150	s << "\tpNext = " << value.pNext << '\n';
18151	s << "\tplane = " << value.plane << '\n';
18152	s << "\tmtlTexture = " << value.mtlTexture << '\n';
18153	s << '}';
18154	return s;
18155}
18156
18157std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
18158{
18159	s << "VkExportMetalIOSurfaceInfoEXT = {\n";
18160	s << "\tsType = " << value.sType << '\n';
18161	s << "\tpNext = " << value.pNext << '\n';
18162	s << "\timage = " << value.image << '\n';
18163	s << "\tioSurface = " << value.ioSurface << '\n';
18164	s << '}';
18165	return s;
18166}
18167
18168std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
18169{
18170	s << "VkImportMetalIOSurfaceInfoEXT = {\n";
18171	s << "\tsType = " << value.sType << '\n';
18172	s << "\tpNext = " << value.pNext << '\n';
18173	s << "\tioSurface = " << value.ioSurface << '\n';
18174	s << '}';
18175	return s;
18176}
18177
18178std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
18179{
18180	s << "VkExportMetalSharedEventInfoEXT = {\n";
18181	s << "\tsType = " << value.sType << '\n';
18182	s << "\tpNext = " << value.pNext << '\n';
18183	s << "\tsemaphore = " << value.semaphore << '\n';
18184	s << "\tevent = " << value.event << '\n';
18185	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
18186	s << '}';
18187	return s;
18188}
18189
18190std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
18191{
18192	s << "VkImportMetalSharedEventInfoEXT = {\n";
18193	s << "\tsType = " << value.sType << '\n';
18194	s << "\tpNext = " << value.pNext << '\n';
18195	s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
18196	s << '}';
18197	return s;
18198}
18199
18200std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
18201{
18202	s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
18203	s << "\tsType = " << value.sType << '\n';
18204	s << "\tpNext = " << value.pNext << '\n';
18205	s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
18206	s << '}';
18207	return s;
18208}
18209
18210std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeatures& value)
18211{
18212	s << "VkPhysicalDevicePipelineRobustnessFeatures = {\n";
18213	s << "\tsType = " << value.sType << '\n';
18214	s << "\tpNext = " << value.pNext << '\n';
18215	s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
18216	s << '}';
18217	return s;
18218}
18219
18220std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfo& value)
18221{
18222	s << "VkPipelineRobustnessCreateInfo = {\n";
18223	s << "\tsType = " << value.sType << '\n';
18224	s << "\tpNext = " << value.pNext << '\n';
18225	s << "\tstorageBuffers = " << value.storageBuffers << '\n';
18226	s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
18227	s << "\tvertexInputs = " << value.vertexInputs << '\n';
18228	s << "\timages = " << value.images << '\n';
18229	s << '}';
18230	return s;
18231}
18232
18233std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessProperties& value)
18234{
18235	s << "VkPhysicalDevicePipelineRobustnessProperties = {\n";
18236	s << "\tsType = " << value.sType << '\n';
18237	s << "\tpNext = " << value.pNext << '\n';
18238	s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
18239	s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
18240	s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
18241	s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
18242	s << '}';
18243	return s;
18244}
18245
18246std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
18247{
18248	s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
18249	s << "\tsType = " << value.sType << '\n';
18250	s << "\tpNext = " << value.pNext << '\n';
18251	s << "\tfilterCenter = " << value.filterCenter << '\n';
18252	s << "\tfilterSize = " << value.filterSize << '\n';
18253	s << "\tnumPhases = " << value.numPhases << '\n';
18254	s << '}';
18255	return s;
18256}
18257
18258std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
18259{
18260	s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
18261	s << "\tsType = " << value.sType << '\n';
18262	s << "\tpNext = " << value.pNext << '\n';
18263	s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
18264	s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
18265	s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
18266	s << '}';
18267	return s;
18268}
18269
18270std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
18271{
18272	s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
18273	s << "\tsType = " << value.sType << '\n';
18274	s << "\tpNext = " << value.pNext << '\n';
18275	s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
18276	s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
18277	s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
18278	s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
18279	s << '}';
18280	return s;
18281}
18282
18283std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
18284{
18285	s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
18286	s << "\tsType = " << value.sType << '\n';
18287	s << "\tpNext = " << value.pNext << '\n';
18288	s << "\ttileProperties = " << value.tileProperties << '\n';
18289	s << '}';
18290	return s;
18291}
18292
18293std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
18294{
18295	s << "VkTilePropertiesQCOM = {\n";
18296	s << "\tsType = " << value.sType << '\n';
18297	s << "\tpNext = " << value.pNext << '\n';
18298	s << "\ttileSize = " << value.tileSize << '\n';
18299	s << "\tapronSize = " << value.apronSize << '\n';
18300	s << "\torigin = " << value.origin << '\n';
18301	s << '}';
18302	return s;
18303}
18304
18305std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAmigoProfilingFeaturesSEC& value)
18306{
18307	s << "VkPhysicalDeviceAmigoProfilingFeaturesSEC = {\n";
18308	s << "\tsType = " << value.sType << '\n';
18309	s << "\tpNext = " << value.pNext << '\n';
18310	s << "\tamigoProfiling = " << value.amigoProfiling << '\n';
18311	s << '}';
18312	return s;
18313}
18314
18315std::ostream& operator<< (std::ostream& s, const VkAmigoProfilingSubmitInfoSEC& value)
18316{
18317	s << "VkAmigoProfilingSubmitInfoSEC = {\n";
18318	s << "\tsType = " << value.sType << '\n';
18319	s << "\tpNext = " << value.pNext << '\n';
18320	s << "\tfirstDrawTimestamp = " << value.firstDrawTimestamp << '\n';
18321	s << "\tswapBufferTimestamp = " << value.swapBufferTimestamp << '\n';
18322	s << '}';
18323	return s;
18324}
18325
18326std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT& value)
18327{
18328	s << "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = {\n";
18329	s << "\tsType = " << value.sType << '\n';
18330	s << "\tpNext = " << value.pNext << '\n';
18331	s << "\tattachmentFeedbackLoopLayout = " << value.attachmentFeedbackLoopLayout << '\n';
18332	s << '}';
18333	return s;
18334}
18335
18336std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT& value)
18337{
18338	s << "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = {\n";
18339	s << "\tsType = " << value.sType << '\n';
18340	s << "\tpNext = " << value.pNext << '\n';
18341	s << "\tdepthClampZeroOne = " << value.depthClampZeroOne << '\n';
18342	s << '}';
18343	return s;
18344}
18345
18346std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAddressBindingReportFeaturesEXT& value)
18347{
18348	s << "VkPhysicalDeviceAddressBindingReportFeaturesEXT = {\n";
18349	s << "\tsType = " << value.sType << '\n';
18350	s << "\tpNext = " << value.pNext << '\n';
18351	s << "\treportAddressBinding = " << value.reportAddressBinding << '\n';
18352	s << '}';
18353	return s;
18354}
18355
18356std::ostream& operator<< (std::ostream& s, const VkDeviceAddressBindingCallbackDataEXT& value)
18357{
18358	s << "VkDeviceAddressBindingCallbackDataEXT = {\n";
18359	s << "\tsType = " << value.sType << '\n';
18360	s << "\tpNext = " << value.pNext << '\n';
18361	s << "\tflags = " << getDeviceAddressBindingFlagsEXTStr(value.flags) << '\n';
18362	s << "\tbaseAddress = " << value.baseAddress << '\n';
18363	s << "\tsize = " << value.size << '\n';
18364	s << "\tbindingType = " << value.bindingType << '\n';
18365	s << '}';
18366	return s;
18367}
18368
18369std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowFeaturesNV& value)
18370{
18371	s << "VkPhysicalDeviceOpticalFlowFeaturesNV = {\n";
18372	s << "\tsType = " << value.sType << '\n';
18373	s << "\tpNext = " << value.pNext << '\n';
18374	s << "\topticalFlow = " << value.opticalFlow << '\n';
18375	s << '}';
18376	return s;
18377}
18378
18379std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowPropertiesNV& value)
18380{
18381	s << "VkPhysicalDeviceOpticalFlowPropertiesNV = {\n";
18382	s << "\tsType = " << value.sType << '\n';
18383	s << "\tpNext = " << value.pNext << '\n';
18384	s << "\tsupportedOutputGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedOutputGridSizes) << '\n';
18385	s << "\tsupportedHintGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedHintGridSizes) << '\n';
18386	s << "\thintSupported = " << value.hintSupported << '\n';
18387	s << "\tcostSupported = " << value.costSupported << '\n';
18388	s << "\tbidirectionalFlowSupported = " << value.bidirectionalFlowSupported << '\n';
18389	s << "\tglobalFlowSupported = " << value.globalFlowSupported << '\n';
18390	s << "\tminWidth = " << value.minWidth << '\n';
18391	s << "\tminHeight = " << value.minHeight << '\n';
18392	s << "\tmaxWidth = " << value.maxWidth << '\n';
18393	s << "\tmaxHeight = " << value.maxHeight << '\n';
18394	s << "\tmaxNumRegionsOfInterest = " << value.maxNumRegionsOfInterest << '\n';
18395	s << '}';
18396	return s;
18397}
18398
18399std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatInfoNV& value)
18400{
18401	s << "VkOpticalFlowImageFormatInfoNV = {\n";
18402	s << "\tsType = " << value.sType << '\n';
18403	s << "\tpNext = " << value.pNext << '\n';
18404	s << "\tusage = " << getOpticalFlowUsageFlagsNVStr(value.usage) << '\n';
18405	s << '}';
18406	return s;
18407}
18408
18409std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatPropertiesNV& value)
18410{
18411	s << "VkOpticalFlowImageFormatPropertiesNV = {\n";
18412	s << "\tsType = " << value.sType << '\n';
18413	s << "\tpNext = " << value.pNext << '\n';
18414	s << "\tformat = " << value.format << '\n';
18415	s << '}';
18416	return s;
18417}
18418
18419std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreateInfoNV& value)
18420{
18421	s << "VkOpticalFlowSessionCreateInfoNV = {\n";
18422	s << "\tsType = " << value.sType << '\n';
18423	s << "\tpNext = " << value.pNext << '\n';
18424	s << "\twidth = " << value.width << '\n';
18425	s << "\theight = " << value.height << '\n';
18426	s << "\timageFormat = " << value.imageFormat << '\n';
18427	s << "\tflowVectorFormat = " << value.flowVectorFormat << '\n';
18428	s << "\tcostFormat = " << value.costFormat << '\n';
18429	s << "\toutputGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.outputGridSize) << '\n';
18430	s << "\thintGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.hintGridSize) << '\n';
18431	s << "\tperformanceLevel = " << value.performanceLevel << '\n';
18432	s << "\tflags = " << getOpticalFlowSessionCreateFlagsNVStr(value.flags) << '\n';
18433	s << '}';
18434	return s;
18435}
18436
18437std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreatePrivateDataInfoNV& value)
18438{
18439	s << "VkOpticalFlowSessionCreatePrivateDataInfoNV = {\n";
18440	s << "\tsType = " << value.sType << '\n';
18441	s << "\tpNext = " << value.pNext << '\n';
18442	s << "\tid = " << value.id << '\n';
18443	s << "\tsize = " << value.size << '\n';
18444	s << "\tpPrivateData = " << value.pPrivateData << '\n';
18445	s << '}';
18446	return s;
18447}
18448
18449std::ostream& operator<< (std::ostream& s, const VkOpticalFlowExecuteInfoNV& value)
18450{
18451	s << "VkOpticalFlowExecuteInfoNV = {\n";
18452	s << "\tsType = " << value.sType << '\n';
18453	s << "\tpNext = " << value.pNext << '\n';
18454	s << "\tflags = " << getOpticalFlowExecuteFlagsNVStr(value.flags) << '\n';
18455	s << "\tregionCount = " << value.regionCount << '\n';
18456	s << "\tpRegions = " << value.pRegions << '\n';
18457	s << '}';
18458	return s;
18459}
18460
18461std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFaultFeaturesEXT& value)
18462{
18463	s << "VkPhysicalDeviceFaultFeaturesEXT = {\n";
18464	s << "\tsType = " << value.sType << '\n';
18465	s << "\tpNext = " << value.pNext << '\n';
18466	s << "\tdeviceFault = " << value.deviceFault << '\n';
18467	s << "\tdeviceFaultVendorBinary = " << value.deviceFaultVendorBinary << '\n';
18468	s << '}';
18469	return s;
18470}
18471
18472std::ostream& operator<< (std::ostream& s, const VkDeviceFaultAddressInfoEXT& value)
18473{
18474	s << "VkDeviceFaultAddressInfoEXT = {\n";
18475	s << "\taddressType = " << value.addressType << '\n';
18476	s << "\treportedAddress = " << value.reportedAddress << '\n';
18477	s << "\taddressPrecision = " << value.addressPrecision << '\n';
18478	s << '}';
18479	return s;
18480}
18481
18482std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorInfoEXT& value)
18483{
18484	s << "VkDeviceFaultVendorInfoEXT = {\n";
18485	s << "\tdescription = " << (const char*)value.description << '\n';
18486	s << "\tvendorFaultCode = " << value.vendorFaultCode << '\n';
18487	s << "\tvendorFaultData = " << value.vendorFaultData << '\n';
18488	s << '}';
18489	return s;
18490}
18491
18492std::ostream& operator<< (std::ostream& s, const VkDeviceFaultCountsEXT& value)
18493{
18494	s << "VkDeviceFaultCountsEXT = {\n";
18495	s << "\tsType = " << value.sType << '\n';
18496	s << "\tpNext = " << value.pNext << '\n';
18497	s << "\taddressInfoCount = " << value.addressInfoCount << '\n';
18498	s << "\tvendorInfoCount = " << value.vendorInfoCount << '\n';
18499	s << "\tvendorBinarySize = " << value.vendorBinarySize << '\n';
18500	s << '}';
18501	return s;
18502}
18503
18504std::ostream& operator<< (std::ostream& s, const VkDeviceFaultInfoEXT& value)
18505{
18506	s << "VkDeviceFaultInfoEXT = {\n";
18507	s << "\tsType = " << value.sType << '\n';
18508	s << "\tpNext = " << value.pNext << '\n';
18509	s << "\tdescription = " << (const char*)value.description << '\n';
18510	s << "\tpAddressInfos = " << value.pAddressInfos << '\n';
18511	s << "\tpVendorInfos = " << value.pVendorInfos << '\n';
18512	s << "\tpVendorBinaryData = " << value.pVendorBinaryData << '\n';
18513	s << '}';
18514	return s;
18515}
18516
18517std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorBinaryHeaderVersionOneEXT& value)
18518{
18519	s << "VkDeviceFaultVendorBinaryHeaderVersionOneEXT = {\n";
18520	s << "\theaderSize = " << value.headerSize << '\n';
18521	s << "\theaderVersion = " << value.headerVersion << '\n';
18522	s << "\tvendorID = " << value.vendorID << '\n';
18523	s << "\tdeviceID = " << value.deviceID << '\n';
18524	s << "\tdriverVersion = " << value.driverVersion << '\n';
18525	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';
18526	s << "\tapplicationNameOffset = " << value.applicationNameOffset << '\n';
18527	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
18528	s << "\tengineNameOffset = " << value.engineNameOffset << '\n';
18529	s << "\tengineVersion = " << value.engineVersion << '\n';
18530	s << "\tapiVersion = " << value.apiVersion << '\n';
18531	s << '}';
18532	return s;
18533}
18534
18535std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT& value)
18536{
18537	s << "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = {\n";
18538	s << "\tsType = " << value.sType << '\n';
18539	s << "\tpNext = " << value.pNext << '\n';
18540	s << "\tpipelineLibraryGroupHandles = " << value.pipelineLibraryGroupHandles << '\n';
18541	s << '}';
18542	return s;
18543}
18544
18545std::ostream& operator<< (std::ostream& s, const VkDepthBiasInfoEXT& value)
18546{
18547	s << "VkDepthBiasInfoEXT = {\n";
18548	s << "\tsType = " << value.sType << '\n';
18549	s << "\tpNext = " << value.pNext << '\n';
18550	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
18551	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
18552	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
18553	s << '}';
18554	return s;
18555}
18556
18557std::ostream& operator<< (std::ostream& s, const VkDepthBiasRepresentationInfoEXT& value)
18558{
18559	s << "VkDepthBiasRepresentationInfoEXT = {\n";
18560	s << "\tsType = " << value.sType << '\n';
18561	s << "\tpNext = " << value.pNext << '\n';
18562	s << "\tdepthBiasRepresentation = " << value.depthBiasRepresentation << '\n';
18563	s << "\tdepthBiasExact = " << value.depthBiasExact << '\n';
18564	s << '}';
18565	return s;
18566}
18567
18568std::ostream& operator<< (std::ostream& s, const VkDecompressMemoryRegionNV& value)
18569{
18570	s << "VkDecompressMemoryRegionNV = {\n";
18571	s << "\tsrcAddress = " << value.srcAddress << '\n';
18572	s << "\tdstAddress = " << value.dstAddress << '\n';
18573	s << "\tcompressedSize = " << value.compressedSize << '\n';
18574	s << "\tdecompressedSize = " << value.decompressedSize << '\n';
18575	s << "\tdecompressionMethod = " << getMemoryDecompressionMethodFlagsNVStr(value.decompressionMethod) << '\n';
18576	s << '}';
18577	return s;
18578}
18579
18580std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM& value)
18581{
18582	s << "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = {\n";
18583	s << "\tsType = " << value.sType << '\n';
18584	s << "\tpNext = " << value.pNext << '\n';
18585	s << "\tshaderCoreMask = " << value.shaderCoreMask << '\n';
18586	s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
18587	s << "\tshaderWarpsPerCore = " << value.shaderWarpsPerCore << '\n';
18588	s << '}';
18589	return s;
18590}
18591
18592std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM& value)
18593{
18594	s << "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = {\n";
18595	s << "\tsType = " << value.sType << '\n';
18596	s << "\tpNext = " << value.pNext << '\n';
18597	s << "\tshaderCoreBuiltins = " << value.shaderCoreBuiltins << '\n';
18598	s << '}';
18599	return s;
18600}
18601
18602std::ostream& operator<< (std::ostream& s, const VkFrameBoundaryEXT& value)
18603{
18604	s << "VkFrameBoundaryEXT = {\n";
18605	s << "\tsType = " << value.sType << '\n';
18606	s << "\tpNext = " << value.pNext << '\n';
18607	s << "\tflags = " << getFrameBoundaryFlagsEXTStr(value.flags) << '\n';
18608	s << "\tframeID = " << value.frameID << '\n';
18609	s << "\timageCount = " << value.imageCount << '\n';
18610	s << "\tpImages = " << value.pImages << '\n';
18611	s << "\tbufferCount = " << value.bufferCount << '\n';
18612	s << "\tpBuffers = " << value.pBuffers << '\n';
18613	s << "\ttagName = " << value.tagName << '\n';
18614	s << "\ttagSize = " << value.tagSize << '\n';
18615	s << "\tpTag = " << value.pTag << '\n';
18616	s << '}';
18617	return s;
18618}
18619
18620std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFrameBoundaryFeaturesEXT& value)
18621{
18622	s << "VkPhysicalDeviceFrameBoundaryFeaturesEXT = {\n";
18623	s << "\tsType = " << value.sType << '\n';
18624	s << "\tpNext = " << value.pNext << '\n';
18625	s << "\tframeBoundary = " << value.frameBoundary << '\n';
18626	s << '}';
18627	return s;
18628}
18629
18630std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT& value)
18631{
18632	s << "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = {\n";
18633	s << "\tsType = " << value.sType << '\n';
18634	s << "\tpNext = " << value.pNext << '\n';
18635	s << "\tdynamicRenderingUnusedAttachments = " << value.dynamicRenderingUnusedAttachments << '\n';
18636	s << '}';
18637	return s;
18638}
18639
18640std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeEXT& value)
18641{
18642	s << "VkSurfacePresentModeEXT = {\n";
18643	s << "\tsType = " << value.sType << '\n';
18644	s << "\tpNext = " << value.pNext << '\n';
18645	s << "\tpresentMode = " << value.presentMode << '\n';
18646	s << '}';
18647	return s;
18648}
18649
18650std::ostream& operator<< (std::ostream& s, const VkSurfacePresentScalingCapabilitiesEXT& value)
18651{
18652	s << "VkSurfacePresentScalingCapabilitiesEXT = {\n";
18653	s << "\tsType = " << value.sType << '\n';
18654	s << "\tpNext = " << value.pNext << '\n';
18655	s << "\tsupportedPresentScaling = " << getPresentScalingFlagsEXTStr(value.supportedPresentScaling) << '\n';
18656	s << "\tsupportedPresentGravityX = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityX) << '\n';
18657	s << "\tsupportedPresentGravityY = " << getPresentGravityFlagsEXTStr(value.supportedPresentGravityY) << '\n';
18658	s << "\tminScaledImageExtent = " << value.minScaledImageExtent << '\n';
18659	s << "\tmaxScaledImageExtent = " << value.maxScaledImageExtent << '\n';
18660	s << '}';
18661	return s;
18662}
18663
18664std::ostream& operator<< (std::ostream& s, const VkSurfacePresentModeCompatibilityEXT& value)
18665{
18666	s << "VkSurfacePresentModeCompatibilityEXT = {\n";
18667	s << "\tsType = " << value.sType << '\n';
18668	s << "\tpNext = " << value.pNext << '\n';
18669	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
18670	s << "\tpPresentModes = " << value.pPresentModes << '\n';
18671	s << '}';
18672	return s;
18673}
18674
18675std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT& value)
18676{
18677	s << "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT = {\n";
18678	s << "\tsType = " << value.sType << '\n';
18679	s << "\tpNext = " << value.pNext << '\n';
18680	s << "\tswapchainMaintenance1 = " << value.swapchainMaintenance1 << '\n';
18681	s << '}';
18682	return s;
18683}
18684
18685std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentFenceInfoEXT& value)
18686{
18687	s << "VkSwapchainPresentFenceInfoEXT = {\n";
18688	s << "\tsType = " << value.sType << '\n';
18689	s << "\tpNext = " << value.pNext << '\n';
18690	s << "\tswapchainCount = " << value.swapchainCount << '\n';
18691	s << "\tpFences = " << value.pFences << '\n';
18692	s << '}';
18693	return s;
18694}
18695
18696std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModesCreateInfoEXT& value)
18697{
18698	s << "VkSwapchainPresentModesCreateInfoEXT = {\n";
18699	s << "\tsType = " << value.sType << '\n';
18700	s << "\tpNext = " << value.pNext << '\n';
18701	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
18702	s << "\tpPresentModes = " << value.pPresentModes << '\n';
18703	s << '}';
18704	return s;
18705}
18706
18707std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentModeInfoEXT& value)
18708{
18709	s << "VkSwapchainPresentModeInfoEXT = {\n";
18710	s << "\tsType = " << value.sType << '\n';
18711	s << "\tpNext = " << value.pNext << '\n';
18712	s << "\tswapchainCount = " << value.swapchainCount << '\n';
18713	s << "\tpPresentModes = " << value.pPresentModes << '\n';
18714	s << '}';
18715	return s;
18716}
18717
18718std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentScalingCreateInfoEXT& value)
18719{
18720	s << "VkSwapchainPresentScalingCreateInfoEXT = {\n";
18721	s << "\tsType = " << value.sType << '\n';
18722	s << "\tpNext = " << value.pNext << '\n';
18723	s << "\tscalingBehavior = " << getPresentScalingFlagsEXTStr(value.scalingBehavior) << '\n';
18724	s << "\tpresentGravityX = " << getPresentGravityFlagsEXTStr(value.presentGravityX) << '\n';
18725	s << "\tpresentGravityY = " << getPresentGravityFlagsEXTStr(value.presentGravityY) << '\n';
18726	s << '}';
18727	return s;
18728}
18729
18730std::ostream& operator<< (std::ostream& s, const VkReleaseSwapchainImagesInfoEXT& value)
18731{
18732	s << "VkReleaseSwapchainImagesInfoEXT = {\n";
18733	s << "\tsType = " << value.sType << '\n';
18734	s << "\tpNext = " << value.pNext << '\n';
18735	s << "\tswapchain = " << value.swapchain << '\n';
18736	s << "\timageIndexCount = " << value.imageIndexCount << '\n';
18737	s << "\tpImageIndices = " << value.pImageIndices << '\n';
18738	s << '}';
18739	return s;
18740}
18741
18742std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthBiasControlFeaturesEXT& value)
18743{
18744	s << "VkPhysicalDeviceDepthBiasControlFeaturesEXT = {\n";
18745	s << "\tsType = " << value.sType << '\n';
18746	s << "\tpNext = " << value.pNext << '\n';
18747	s << "\tdepthBiasControl = " << value.depthBiasControl << '\n';
18748	s << "\tleastRepresentableValueForceUnormRepresentation = " << value.leastRepresentableValueForceUnormRepresentation << '\n';
18749	s << "\tfloatRepresentation = " << value.floatRepresentation << '\n';
18750	s << "\tdepthBiasExact = " << value.depthBiasExact << '\n';
18751	s << '}';
18752	return s;
18753}
18754
18755std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV& value)
18756{
18757	s << "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV = {\n";
18758	s << "\tsType = " << value.sType << '\n';
18759	s << "\tpNext = " << value.pNext << '\n';
18760	s << "\trayTracingInvocationReorder = " << value.rayTracingInvocationReorder << '\n';
18761	s << '}';
18762	return s;
18763}
18764
18765std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV& value)
18766{
18767	s << "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV = {\n";
18768	s << "\tsType = " << value.sType << '\n';
18769	s << "\tpNext = " << value.pNext << '\n';
18770	s << "\trayTracingInvocationReorderReorderingHint = " << value.rayTracingInvocationReorderReorderingHint << '\n';
18771	s << '}';
18772	return s;
18773}
18774
18775std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV& value)
18776{
18777	s << "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = {\n";
18778	s << "\tsType = " << value.sType << '\n';
18779	s << "\tpNext = " << value.pNext << '\n';
18780	s << "\textendedSparseAddressSpace = " << value.extendedSparseAddressSpace << '\n';
18781	s << '}';
18782	return s;
18783}
18784
18785std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV& value)
18786{
18787	s << "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV = {\n";
18788	s << "\tsType = " << value.sType << '\n';
18789	s << "\tpNext = " << value.pNext << '\n';
18790	s << "\textendedSparseAddressSpaceSize = " << value.extendedSparseAddressSpaceSize << '\n';
18791	s << "\textendedSparseImageUsageFlags = " << getImageUsageFlagsStr(value.extendedSparseImageUsageFlags) << '\n';
18792	s << "\textendedSparseBufferUsageFlags = " << getBufferUsageFlagsStr(value.extendedSparseBufferUsageFlags) << '\n';
18793	s << '}';
18794	return s;
18795}
18796
18797std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingInfoLUNARG& value)
18798{
18799	s << "VkDirectDriverLoadingInfoLUNARG = {\n";
18800	s << "\tsType = " << value.sType << '\n';
18801	s << "\tpNext = " << value.pNext << '\n';
18802	s << "\tflags = " << getDirectDriverLoadingFlagsLUNARGStr(value.flags) << '\n';
18803	s << "\tpfnGetInstanceProcAddr = " << value.pfnGetInstanceProcAddr << '\n';
18804	s << '}';
18805	return s;
18806}
18807
18808std::ostream& operator<< (std::ostream& s, const VkDirectDriverLoadingListLUNARG& value)
18809{
18810	s << "VkDirectDriverLoadingListLUNARG = {\n";
18811	s << "\tsType = " << value.sType << '\n';
18812	s << "\tpNext = " << value.pNext << '\n';
18813	s << "\tmode = " << value.mode << '\n';
18814	s << "\tdriverCount = " << value.driverCount << '\n';
18815	s << "\tpDrivers = " << value.pDrivers << '\n';
18816	s << '}';
18817	return s;
18818}
18819
18820std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM& value)
18821{
18822	s << "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = {\n";
18823	s << "\tsType = " << value.sType << '\n';
18824	s << "\tpNext = " << value.pNext << '\n';
18825	s << "\tmultiviewPerViewViewports = " << value.multiviewPerViewViewports << '\n';
18826	s << '}';
18827	return s;
18828}
18829
18830std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR& value)
18831{
18832	s << "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR = {\n";
18833	s << "\tsType = " << value.sType << '\n';
18834	s << "\tpNext = " << value.pNext << '\n';
18835	s << "\trayTracingPositionFetch = " << value.rayTracingPositionFetch << '\n';
18836	s << '}';
18837	return s;
18838}
18839
18840std::ostream& operator<< (std::ostream& s, const VkDeviceImageSubresourceInfo& value)
18841{
18842	s << "VkDeviceImageSubresourceInfo = {\n";
18843	s << "\tsType = " << value.sType << '\n';
18844	s << "\tpNext = " << value.pNext << '\n';
18845	s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
18846	s << "\tpSubresource = " << value.pSubresource << '\n';
18847	s << '}';
18848	return s;
18849}
18850
18851std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesARM& value)
18852{
18853	s << "VkPhysicalDeviceShaderCorePropertiesARM = {\n";
18854	s << "\tsType = " << value.sType << '\n';
18855	s << "\tpNext = " << value.pNext << '\n';
18856	s << "\tpixelRate = " << value.pixelRate << '\n';
18857	s << "\ttexelRate = " << value.texelRate << '\n';
18858	s << "\tfmaRate = " << value.fmaRate << '\n';
18859	s << '}';
18860	return s;
18861}
18862
18863std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM& value)
18864{
18865	s << "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = {\n";
18866	s << "\tsType = " << value.sType << '\n';
18867	s << "\tpNext = " << value.pNext << '\n';
18868	s << "\tmultiviewPerViewRenderAreas = " << value.multiviewPerViewRenderAreas << '\n';
18869	s << '}';
18870	return s;
18871}
18872
18873std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM& value)
18874{
18875	s << "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = {\n";
18876	s << "\tsType = " << value.sType << '\n';
18877	s << "\tpNext = " << value.pNext << '\n';
18878	s << "\tperViewRenderAreaCount = " << value.perViewRenderAreaCount << '\n';
18879	s << "\tpPerViewRenderAreas = " << value.pPerViewRenderAreas << '\n';
18880	s << '}';
18881	return s;
18882}
18883
18884std::ostream& operator<< (std::ostream& s, const VkQueryLowLatencySupportNV& value)
18885{
18886	s << "VkQueryLowLatencySupportNV = {\n";
18887	s << "\tsType = " << value.sType << '\n';
18888	s << "\tpNext = " << value.pNext << '\n';
18889	s << "\tpQueriedLowLatencyData = " << value.pQueriedLowLatencyData << '\n';
18890	s << '}';
18891	return s;
18892}
18893
18894std::ostream& operator<< (std::ostream& s, const VkMemoryMapInfo& value)
18895{
18896	s << "VkMemoryMapInfo = {\n";
18897	s << "\tsType = " << value.sType << '\n';
18898	s << "\tpNext = " << value.pNext << '\n';
18899	s << "\tflags = " << getMemoryMapFlagsStr(value.flags) << '\n';
18900	s << "\tmemory = " << value.memory << '\n';
18901	s << "\toffset = " << value.offset << '\n';
18902	s << "\tsize = " << value.size << '\n';
18903	s << '}';
18904	return s;
18905}
18906
18907std::ostream& operator<< (std::ostream& s, const VkMemoryUnmapInfo& value)
18908{
18909	s << "VkMemoryUnmapInfo = {\n";
18910	s << "\tsType = " << value.sType << '\n';
18911	s << "\tpNext = " << value.pNext << '\n';
18912	s << "\tflags = " << getMemoryUnmapFlagsStr(value.flags) << '\n';
18913	s << "\tmemory = " << value.memory << '\n';
18914	s << '}';
18915	return s;
18916}
18917
18918std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderObjectFeaturesEXT& value)
18919{
18920	s << "VkPhysicalDeviceShaderObjectFeaturesEXT = {\n";
18921	s << "\tsType = " << value.sType << '\n';
18922	s << "\tpNext = " << value.pNext << '\n';
18923	s << "\tshaderObject = " << value.shaderObject << '\n';
18924	s << '}';
18925	return s;
18926}
18927
18928std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderObjectPropertiesEXT& value)
18929{
18930	s << "VkPhysicalDeviceShaderObjectPropertiesEXT = {\n";
18931	s << "\tsType = " << value.sType << '\n';
18932	s << "\tpNext = " << value.pNext << '\n';
18933	s << "\tshaderBinaryUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderBinaryUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderBinaryUUID))) << '\n';
18934	s << "\tshaderBinaryVersion = " << value.shaderBinaryVersion << '\n';
18935	s << '}';
18936	return s;
18937}
18938
18939std::ostream& operator<< (std::ostream& s, const VkShaderCreateInfoEXT& value)
18940{
18941	s << "VkShaderCreateInfoEXT = {\n";
18942	s << "\tsType = " << value.sType << '\n';
18943	s << "\tpNext = " << value.pNext << '\n';
18944	s << "\tflags = " << getShaderCreateFlagsEXTStr(value.flags) << '\n';
18945	s << "\tstage = " << value.stage << '\n';
18946	s << "\tnextStage = " << getShaderStageFlagsStr(value.nextStage) << '\n';
18947	s << "\tcodeType = " << value.codeType << '\n';
18948	s << "\tcodeSize = " << value.codeSize << '\n';
18949	s << "\tpCode = " << value.pCode << '\n';
18950	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
18951	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
18952	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
18953	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
18954	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
18955	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
18956	s << '}';
18957	return s;
18958}
18959
18960std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTileImageFeaturesEXT& value)
18961{
18962	s << "VkPhysicalDeviceShaderTileImageFeaturesEXT = {\n";
18963	s << "\tsType = " << value.sType << '\n';
18964	s << "\tpNext = " << value.pNext << '\n';
18965	s << "\tshaderTileImageColorReadAccess = " << value.shaderTileImageColorReadAccess << '\n';
18966	s << "\tshaderTileImageDepthReadAccess = " << value.shaderTileImageDepthReadAccess << '\n';
18967	s << "\tshaderTileImageStencilReadAccess = " << value.shaderTileImageStencilReadAccess << '\n';
18968	s << '}';
18969	return s;
18970}
18971
18972std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTileImagePropertiesEXT& value)
18973{
18974	s << "VkPhysicalDeviceShaderTileImagePropertiesEXT = {\n";
18975	s << "\tsType = " << value.sType << '\n';
18976	s << "\tpNext = " << value.pNext << '\n';
18977	s << "\tshaderTileImageCoherentReadAccelerated = " << value.shaderTileImageCoherentReadAccelerated << '\n';
18978	s << "\tshaderTileImageReadSampleFromPixelRateInvocation = " << value.shaderTileImageReadSampleFromPixelRateInvocation << '\n';
18979	s << "\tshaderTileImageReadFromHelperInvocation = " << value.shaderTileImageReadFromHelperInvocation << '\n';
18980	s << '}';
18981	return s;
18982}
18983
18984std::ostream& operator<< (std::ostream& s, const VkImportScreenBufferInfoQNX& value)
18985{
18986	s << "VkImportScreenBufferInfoQNX = {\n";
18987	s << "\tsType = " << value.sType << '\n';
18988	s << "\tpNext = " << value.pNext << '\n';
18989	s << "\tbuffer = " << value.buffer << '\n';
18990	s << '}';
18991	return s;
18992}
18993
18994std::ostream& operator<< (std::ostream& s, const VkScreenBufferPropertiesQNX& value)
18995{
18996	s << "VkScreenBufferPropertiesQNX = {\n";
18997	s << "\tsType = " << value.sType << '\n';
18998	s << "\tpNext = " << value.pNext << '\n';
18999	s << "\tallocationSize = " << value.allocationSize << '\n';
19000	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
19001	s << '}';
19002	return s;
19003}
19004
19005std::ostream& operator<< (std::ostream& s, const VkScreenBufferFormatPropertiesQNX& value)
19006{
19007	s << "VkScreenBufferFormatPropertiesQNX = {\n";
19008	s << "\tsType = " << value.sType << '\n';
19009	s << "\tpNext = " << value.pNext << '\n';
19010	s << "\tformat = " << value.format << '\n';
19011	s << "\texternalFormat = " << value.externalFormat << '\n';
19012	s << "\tscreenUsage = " << value.screenUsage << '\n';
19013	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
19014	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
19015	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
19016	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
19017	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
19018	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
19019	s << '}';
19020	return s;
19021}
19022
19023std::ostream& operator<< (std::ostream& s, const VkExternalFormatQNX& value)
19024{
19025	s << "VkExternalFormatQNX = {\n";
19026	s << "\tsType = " << value.sType << '\n';
19027	s << "\tpNext = " << value.pNext << '\n';
19028	s << "\texternalFormat = " << value.externalFormat << '\n';
19029	s << '}';
19030	return s;
19031}
19032
19033std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX& value)
19034{
19035	s << "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = {\n";
19036	s << "\tsType = " << value.sType << '\n';
19037	s << "\tpNext = " << value.pNext << '\n';
19038	s << "\tscreenBufferImport = " << value.screenBufferImport << '\n';
19039	s << '}';
19040	return s;
19041}
19042
19043std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesKHR& value)
19044{
19045	s << "VkPhysicalDeviceCooperativeMatrixFeaturesKHR = {\n";
19046	s << "\tsType = " << value.sType << '\n';
19047	s << "\tpNext = " << value.pNext << '\n';
19048	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
19049	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
19050	s << '}';
19051	return s;
19052}
19053
19054std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesKHR& value)
19055{
19056	s << "VkCooperativeMatrixPropertiesKHR = {\n";
19057	s << "\tsType = " << value.sType << '\n';
19058	s << "\tpNext = " << value.pNext << '\n';
19059	s << "\tMSize = " << value.MSize << '\n';
19060	s << "\tNSize = " << value.NSize << '\n';
19061	s << "\tKSize = " << value.KSize << '\n';
19062	s << "\tAType = " << value.AType << '\n';
19063	s << "\tBType = " << value.BType << '\n';
19064	s << "\tCType = " << value.CType << '\n';
19065	s << "\tResultType = " << value.ResultType << '\n';
19066	s << "\tsaturatingAccumulation = " << value.saturatingAccumulation << '\n';
19067	s << "\tscope = " << value.scope << '\n';
19068	s << '}';
19069	return s;
19070}
19071
19072std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesKHR& value)
19073{
19074	s << "VkPhysicalDeviceCooperativeMatrixPropertiesKHR = {\n";
19075	s << "\tsType = " << value.sType << '\n';
19076	s << "\tpNext = " << value.pNext << '\n';
19077	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
19078	s << '}';
19079	return s;
19080}
19081
19082std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEnqueuePropertiesAMDX& value)
19083{
19084	s << "VkPhysicalDeviceShaderEnqueuePropertiesAMDX = {\n";
19085	s << "\tsType = " << value.sType << '\n';
19086	s << "\tpNext = " << value.pNext << '\n';
19087	s << "\tmaxExecutionGraphDepth = " << value.maxExecutionGraphDepth << '\n';
19088	s << "\tmaxExecutionGraphShaderOutputNodes = " << value.maxExecutionGraphShaderOutputNodes << '\n';
19089	s << "\tmaxExecutionGraphShaderPayloadSize = " << value.maxExecutionGraphShaderPayloadSize << '\n';
19090	s << "\tmaxExecutionGraphShaderPayloadCount = " << value.maxExecutionGraphShaderPayloadCount << '\n';
19091	s << "\texecutionGraphDispatchAddressAlignment = " << value.executionGraphDispatchAddressAlignment << '\n';
19092	s << "\tmaxExecutionGraphWorkgroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxExecutionGraphWorkgroupCount), DE_ARRAY_END(value.maxExecutionGraphWorkgroupCount)) << '\n';
19093	s << "\tmaxExecutionGraphWorkgroups = " << value.maxExecutionGraphWorkgroups << '\n';
19094	s << '}';
19095	return s;
19096}
19097
19098std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEnqueueFeaturesAMDX& value)
19099{
19100	s << "VkPhysicalDeviceShaderEnqueueFeaturesAMDX = {\n";
19101	s << "\tsType = " << value.sType << '\n';
19102	s << "\tpNext = " << value.pNext << '\n';
19103	s << "\tshaderEnqueue = " << value.shaderEnqueue << '\n';
19104	s << "\tshaderMeshEnqueue = " << value.shaderMeshEnqueue << '\n';
19105	s << '}';
19106	return s;
19107}
19108
19109std::ostream& operator<< (std::ostream& s, const VkExecutionGraphPipelineCreateInfoAMDX& value)
19110{
19111	s << "VkExecutionGraphPipelineCreateInfoAMDX = {\n";
19112	s << "\tsType = " << value.sType << '\n';
19113	s << "\tpNext = " << value.pNext << '\n';
19114	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
19115	s << "\tstageCount = " << value.stageCount << '\n';
19116	s << "\tpStages = " << value.pStages << '\n';
19117	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
19118	s << "\tlayout = " << value.layout << '\n';
19119	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
19120	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
19121	s << '}';
19122	return s;
19123}
19124
19125std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageNodeCreateInfoAMDX& value)
19126{
19127	s << "VkPipelineShaderStageNodeCreateInfoAMDX = {\n";
19128	s << "\tsType = " << value.sType << '\n';
19129	s << "\tpNext = " << value.pNext << '\n';
19130	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
19131	s << "\tindex = " << value.index << '\n';
19132	s << '}';
19133	return s;
19134}
19135
19136std::ostream& operator<< (std::ostream& s, const VkExecutionGraphPipelineScratchSizeAMDX& value)
19137{
19138	s << "VkExecutionGraphPipelineScratchSizeAMDX = {\n";
19139	s << "\tsType = " << value.sType << '\n';
19140	s << "\tpNext = " << value.pNext << '\n';
19141	s << "\tminSize = " << value.minSize << '\n';
19142	s << "\tmaxSize = " << value.maxSize << '\n';
19143	s << "\tsizeGranularity = " << value.sizeGranularity << '\n';
19144	s << '}';
19145	return s;
19146}
19147
19148std::ostream& operator<< (std::ostream& s, const VkDispatchGraphInfoAMDX& value)
19149{
19150	s << "VkDispatchGraphInfoAMDX = {\n";
19151	s << "\tnodeIndex = " << value.nodeIndex << '\n';
19152	s << "\tpayloadCount = " << value.payloadCount << '\n';
19153	s << "\tpayloads = " << value.payloads << '\n';
19154	s << "\tpayloadStride = " << value.payloadStride << '\n';
19155	s << '}';
19156	return s;
19157}
19158
19159std::ostream& operator<< (std::ostream& s, const VkDispatchGraphCountInfoAMDX& value)
19160{
19161	s << "VkDispatchGraphCountInfoAMDX = {\n";
19162	s << "\tcount = " << value.count << '\n';
19163	s << "\tinfos = " << value.infos << '\n';
19164	s << "\tstride = " << value.stride << '\n';
19165	s << '}';
19166	return s;
19167}
19168
19169std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAntiLagFeaturesAMD& value)
19170{
19171	s << "VkPhysicalDeviceAntiLagFeaturesAMD = {\n";
19172	s << "\tsType = " << value.sType << '\n';
19173	s << "\tpNext = " << value.pNext << '\n';
19174	s << "\tantiLag = " << value.antiLag << '\n';
19175	s << '}';
19176	return s;
19177}
19178
19179std::ostream& operator<< (std::ostream& s, const VkAntiLagDataAMD& value)
19180{
19181	s << "VkAntiLagDataAMD = {\n";
19182	s << "\tsType = " << value.sType << '\n';
19183	s << "\tpNext = " << value.pNext << '\n';
19184	s << "\tmode = " << value.mode << '\n';
19185	s << "\tmaxFPS = " << value.maxFPS << '\n';
19186	s << "\tpPresentationInfo = " << value.pPresentationInfo << '\n';
19187	s << '}';
19188	return s;
19189}
19190
19191std::ostream& operator<< (std::ostream& s, const VkAntiLagPresentationInfoAMD& value)
19192{
19193	s << "VkAntiLagPresentationInfoAMD = {\n";
19194	s << "\tsType = " << value.sType << '\n';
19195	s << "\tpNext = " << value.pNext << '\n';
19196	s << "\tstage = " << value.stage << '\n';
19197	s << "\tframeIndex = " << value.frameIndex << '\n';
19198	s << '}';
19199	return s;
19200}
19201
19202std::ostream& operator<< (std::ostream& s, const VkBindMemoryStatus& value)
19203{
19204	s << "VkBindMemoryStatus = {\n";
19205	s << "\tsType = " << value.sType << '\n';
19206	s << "\tpNext = " << value.pNext << '\n';
19207	s << "\tpResult = " << value.pResult << '\n';
19208	s << '}';
19209	return s;
19210}
19211
19212std::ostream& operator<< (std::ostream& s, const VkBindDescriptorSetsInfo& value)
19213{
19214	s << "VkBindDescriptorSetsInfo = {\n";
19215	s << "\tsType = " << value.sType << '\n';
19216	s << "\tpNext = " << value.pNext << '\n';
19217	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
19218	s << "\tlayout = " << value.layout << '\n';
19219	s << "\tfirstSet = " << value.firstSet << '\n';
19220	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
19221	s << "\tpDescriptorSets = " << value.pDescriptorSets << '\n';
19222	s << "\tdynamicOffsetCount = " << value.dynamicOffsetCount << '\n';
19223	s << "\tpDynamicOffsets = " << value.pDynamicOffsets << '\n';
19224	s << '}';
19225	return s;
19226}
19227
19228std::ostream& operator<< (std::ostream& s, const VkPushConstantsInfo& value)
19229{
19230	s << "VkPushConstantsInfo = {\n";
19231	s << "\tsType = " << value.sType << '\n';
19232	s << "\tpNext = " << value.pNext << '\n';
19233	s << "\tlayout = " << value.layout << '\n';
19234	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
19235	s << "\toffset = " << value.offset << '\n';
19236	s << "\tsize = " << value.size << '\n';
19237	s << "\tpValues = " << value.pValues << '\n';
19238	s << '}';
19239	return s;
19240}
19241
19242std::ostream& operator<< (std::ostream& s, const VkPushDescriptorSetInfo& value)
19243{
19244	s << "VkPushDescriptorSetInfo = {\n";
19245	s << "\tsType = " << value.sType << '\n';
19246	s << "\tpNext = " << value.pNext << '\n';
19247	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
19248	s << "\tlayout = " << value.layout << '\n';
19249	s << "\tset = " << value.set << '\n';
19250	s << "\tdescriptorWriteCount = " << value.descriptorWriteCount << '\n';
19251	s << "\tpDescriptorWrites = " << value.pDescriptorWrites << '\n';
19252	s << '}';
19253	return s;
19254}
19255
19256std::ostream& operator<< (std::ostream& s, const VkPushDescriptorSetWithTemplateInfo& value)
19257{
19258	s << "VkPushDescriptorSetWithTemplateInfo = {\n";
19259	s << "\tsType = " << value.sType << '\n';
19260	s << "\tpNext = " << value.pNext << '\n';
19261	s << "\tdescriptorUpdateTemplate = " << value.descriptorUpdateTemplate << '\n';
19262	s << "\tlayout = " << value.layout << '\n';
19263	s << "\tset = " << value.set << '\n';
19264	s << "\tpData = " << value.pData << '\n';
19265	s << '}';
19266	return s;
19267}
19268
19269std::ostream& operator<< (std::ostream& s, const VkSetDescriptorBufferOffsetsInfoEXT& value)
19270{
19271	s << "VkSetDescriptorBufferOffsetsInfoEXT = {\n";
19272	s << "\tsType = " << value.sType << '\n';
19273	s << "\tpNext = " << value.pNext << '\n';
19274	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
19275	s << "\tlayout = " << value.layout << '\n';
19276	s << "\tfirstSet = " << value.firstSet << '\n';
19277	s << "\tsetCount = " << value.setCount << '\n';
19278	s << "\tpBufferIndices = " << value.pBufferIndices << '\n';
19279	s << "\tpOffsets = " << value.pOffsets << '\n';
19280	s << '}';
19281	return s;
19282}
19283
19284std::ostream& operator<< (std::ostream& s, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT& value)
19285{
19286	s << "VkBindDescriptorBufferEmbeddedSamplersInfoEXT = {\n";
19287	s << "\tsType = " << value.sType << '\n';
19288	s << "\tpNext = " << value.pNext << '\n';
19289	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
19290	s << "\tlayout = " << value.layout << '\n';
19291	s << "\tset = " << value.set << '\n';
19292	s << '}';
19293	return s;
19294}
19295
19296std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCubicClampFeaturesQCOM& value)
19297{
19298	s << "VkPhysicalDeviceCubicClampFeaturesQCOM = {\n";
19299	s << "\tsType = " << value.sType << '\n';
19300	s << "\tpNext = " << value.pNext << '\n';
19301	s << "\tcubicRangeClamp = " << value.cubicRangeClamp << '\n';
19302	s << '}';
19303	return s;
19304}
19305
19306std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM& value)
19307{
19308	s << "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM = {\n";
19309	s << "\tsType = " << value.sType << '\n';
19310	s << "\tpNext = " << value.pNext << '\n';
19311	s << "\tycbcrDegamma = " << value.ycbcrDegamma << '\n';
19312	s << '}';
19313	return s;
19314}
19315
19316std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM& value)
19317{
19318	s << "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = {\n";
19319	s << "\tsType = " << value.sType << '\n';
19320	s << "\tpNext = " << value.pNext << '\n';
19321	s << "\tenableYDegamma = " << value.enableYDegamma << '\n';
19322	s << "\tenableCbCrDegamma = " << value.enableCbCrDegamma << '\n';
19323	s << '}';
19324	return s;
19325}
19326
19327std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCubicWeightsFeaturesQCOM& value)
19328{
19329	s << "VkPhysicalDeviceCubicWeightsFeaturesQCOM = {\n";
19330	s << "\tsType = " << value.sType << '\n';
19331	s << "\tpNext = " << value.pNext << '\n';
19332	s << "\tselectableCubicWeights = " << value.selectableCubicWeights << '\n';
19333	s << '}';
19334	return s;
19335}
19336
19337std::ostream& operator<< (std::ostream& s, const VkSamplerCubicWeightsCreateInfoQCOM& value)
19338{
19339	s << "VkSamplerCubicWeightsCreateInfoQCOM = {\n";
19340	s << "\tsType = " << value.sType << '\n';
19341	s << "\tpNext = " << value.pNext << '\n';
19342	s << "\tcubicWeights = " << value.cubicWeights << '\n';
19343	s << '}';
19344	return s;
19345}
19346
19347std::ostream& operator<< (std::ostream& s, const VkBlitImageCubicWeightsInfoQCOM& value)
19348{
19349	s << "VkBlitImageCubicWeightsInfoQCOM = {\n";
19350	s << "\tsType = " << value.sType << '\n';
19351	s << "\tpNext = " << value.pNext << '\n';
19352	s << "\tcubicWeights = " << value.cubicWeights << '\n';
19353	s << '}';
19354	return s;
19355}
19356
19357std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessing2FeaturesQCOM& value)
19358{
19359	s << "VkPhysicalDeviceImageProcessing2FeaturesQCOM = {\n";
19360	s << "\tsType = " << value.sType << '\n';
19361	s << "\tpNext = " << value.pNext << '\n';
19362	s << "\ttextureBlockMatch2 = " << value.textureBlockMatch2 << '\n';
19363	s << '}';
19364	return s;
19365}
19366
19367std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessing2PropertiesQCOM& value)
19368{
19369	s << "VkPhysicalDeviceImageProcessing2PropertiesQCOM = {\n";
19370	s << "\tsType = " << value.sType << '\n';
19371	s << "\tpNext = " << value.pNext << '\n';
19372	s << "\tmaxBlockMatchWindow = " << value.maxBlockMatchWindow << '\n';
19373	s << '}';
19374	return s;
19375}
19376
19377std::ostream& operator<< (std::ostream& s, const VkSamplerBlockMatchWindowCreateInfoQCOM& value)
19378{
19379	s << "VkSamplerBlockMatchWindowCreateInfoQCOM = {\n";
19380	s << "\tsType = " << value.sType << '\n';
19381	s << "\tpNext = " << value.pNext << '\n';
19382	s << "\twindowExtent = " << value.windowExtent << '\n';
19383	s << "\twindowCompareMode = " << value.windowCompareMode << '\n';
19384	s << '}';
19385	return s;
19386}
19387
19388std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV& value)
19389{
19390	s << "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV = {\n";
19391	s << "\tsType = " << value.sType << '\n';
19392	s << "\tpNext = " << value.pNext << '\n';
19393	s << "\tdescriptorPoolOverallocation = " << value.descriptorPoolOverallocation << '\n';
19394	s << '}';
19395	return s;
19396}
19397
19398std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLayeredDriverPropertiesMSFT& value)
19399{
19400	s << "VkPhysicalDeviceLayeredDriverPropertiesMSFT = {\n";
19401	s << "\tsType = " << value.sType << '\n';
19402	s << "\tpNext = " << value.pNext << '\n';
19403	s << "\tunderlyingAPI = " << value.underlyingAPI << '\n';
19404	s << '}';
19405	return s;
19406}
19407
19408std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerStageDescriptorSetFeaturesNV& value)
19409{
19410	s << "VkPhysicalDevicePerStageDescriptorSetFeaturesNV = {\n";
19411	s << "\tsType = " << value.sType << '\n';
19412	s << "\tpNext = " << value.pNext << '\n';
19413	s << "\tperStageDescriptorSet = " << value.perStageDescriptorSet << '\n';
19414	s << "\tdynamicPipelineLayout = " << value.dynamicPipelineLayout << '\n';
19415	s << '}';
19416	return s;
19417}
19418
19419std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFormatResolveFeaturesANDROID& value)
19420{
19421	s << "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID = {\n";
19422	s << "\tsType = " << value.sType << '\n';
19423	s << "\tpNext = " << value.pNext << '\n';
19424	s << "\texternalFormatResolve = " << value.externalFormatResolve << '\n';
19425	s << '}';
19426	return s;
19427}
19428
19429std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFormatResolvePropertiesANDROID& value)
19430{
19431	s << "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID = {\n";
19432	s << "\tsType = " << value.sType << '\n';
19433	s << "\tpNext = " << value.pNext << '\n';
19434	s << "\tnullColorAttachmentWithExternalFormatResolve = " << value.nullColorAttachmentWithExternalFormatResolve << '\n';
19435	s << "\texternalFormatResolveChromaOffsetX = " << value.externalFormatResolveChromaOffsetX << '\n';
19436	s << "\texternalFormatResolveChromaOffsetY = " << value.externalFormatResolveChromaOffsetY << '\n';
19437	s << '}';
19438	return s;
19439}
19440
19441std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatResolvePropertiesANDROID& value)
19442{
19443	s << "VkAndroidHardwareBufferFormatResolvePropertiesANDROID = {\n";
19444	s << "\tsType = " << value.sType << '\n';
19445	s << "\tpNext = " << value.pNext << '\n';
19446	s << "\tcolorAttachmentFormat = " << value.colorAttachmentFormat << '\n';
19447	s << '}';
19448	return s;
19449}
19450
19451std::ostream& operator<< (std::ostream& s, const VkLatencySleepModeInfoNV& value)
19452{
19453	s << "VkLatencySleepModeInfoNV = {\n";
19454	s << "\tsType = " << value.sType << '\n';
19455	s << "\tpNext = " << value.pNext << '\n';
19456	s << "\tlowLatencyMode = " << value.lowLatencyMode << '\n';
19457	s << "\tlowLatencyBoost = " << value.lowLatencyBoost << '\n';
19458	s << "\tminimumIntervalUs = " << value.minimumIntervalUs << '\n';
19459	s << '}';
19460	return s;
19461}
19462
19463std::ostream& operator<< (std::ostream& s, const VkLatencySleepInfoNV& value)
19464{
19465	s << "VkLatencySleepInfoNV = {\n";
19466	s << "\tsType = " << value.sType << '\n';
19467	s << "\tpNext = " << value.pNext << '\n';
19468	s << "\tsignalSemaphore = " << value.signalSemaphore << '\n';
19469	s << "\tvalue = " << value.value << '\n';
19470	s << '}';
19471	return s;
19472}
19473
19474std::ostream& operator<< (std::ostream& s, const VkSetLatencyMarkerInfoNV& value)
19475{
19476	s << "VkSetLatencyMarkerInfoNV = {\n";
19477	s << "\tsType = " << value.sType << '\n';
19478	s << "\tpNext = " << value.pNext << '\n';
19479	s << "\tpresentID = " << value.presentID << '\n';
19480	s << "\tmarker = " << value.marker << '\n';
19481	s << '}';
19482	return s;
19483}
19484
19485std::ostream& operator<< (std::ostream& s, const VkGetLatencyMarkerInfoNV& value)
19486{
19487	s << "VkGetLatencyMarkerInfoNV = {\n";
19488	s << "\tsType = " << value.sType << '\n';
19489	s << "\tpNext = " << value.pNext << '\n';
19490	s << "\ttimingCount = " << value.timingCount << '\n';
19491	s << "\tpTimings = " << value.pTimings << '\n';
19492	s << '}';
19493	return s;
19494}
19495
19496std::ostream& operator<< (std::ostream& s, const VkLatencyTimingsFrameReportNV& value)
19497{
19498	s << "VkLatencyTimingsFrameReportNV = {\n";
19499	s << "\tsType = " << value.sType << '\n';
19500	s << "\tpNext = " << value.pNext << '\n';
19501	s << "\tpresentID = " << value.presentID << '\n';
19502	s << "\tinputSampleTimeUs = " << value.inputSampleTimeUs << '\n';
19503	s << "\tsimStartTimeUs = " << value.simStartTimeUs << '\n';
19504	s << "\tsimEndTimeUs = " << value.simEndTimeUs << '\n';
19505	s << "\trenderSubmitStartTimeUs = " << value.renderSubmitStartTimeUs << '\n';
19506	s << "\trenderSubmitEndTimeUs = " << value.renderSubmitEndTimeUs << '\n';
19507	s << "\tpresentStartTimeUs = " << value.presentStartTimeUs << '\n';
19508	s << "\tpresentEndTimeUs = " << value.presentEndTimeUs << '\n';
19509	s << "\tdriverStartTimeUs = " << value.driverStartTimeUs << '\n';
19510	s << "\tdriverEndTimeUs = " << value.driverEndTimeUs << '\n';
19511	s << "\tosRenderQueueStartTimeUs = " << value.osRenderQueueStartTimeUs << '\n';
19512	s << "\tosRenderQueueEndTimeUs = " << value.osRenderQueueEndTimeUs << '\n';
19513	s << "\tgpuRenderStartTimeUs = " << value.gpuRenderStartTimeUs << '\n';
19514	s << "\tgpuRenderEndTimeUs = " << value.gpuRenderEndTimeUs << '\n';
19515	s << '}';
19516	return s;
19517}
19518
19519std::ostream& operator<< (std::ostream& s, const VkOutOfBandQueueTypeInfoNV& value)
19520{
19521	s << "VkOutOfBandQueueTypeInfoNV = {\n";
19522	s << "\tsType = " << value.sType << '\n';
19523	s << "\tpNext = " << value.pNext << '\n';
19524	s << "\tqueueType = " << value.queueType << '\n';
19525	s << '}';
19526	return s;
19527}
19528
19529std::ostream& operator<< (std::ostream& s, const VkLatencySubmissionPresentIdNV& value)
19530{
19531	s << "VkLatencySubmissionPresentIdNV = {\n";
19532	s << "\tsType = " << value.sType << '\n';
19533	s << "\tpNext = " << value.pNext << '\n';
19534	s << "\tpresentID = " << value.presentID << '\n';
19535	s << '}';
19536	return s;
19537}
19538
19539std::ostream& operator<< (std::ostream& s, const VkSwapchainLatencyCreateInfoNV& value)
19540{
19541	s << "VkSwapchainLatencyCreateInfoNV = {\n";
19542	s << "\tsType = " << value.sType << '\n';
19543	s << "\tpNext = " << value.pNext << '\n';
19544	s << "\tlatencyModeEnable = " << value.latencyModeEnable << '\n';
19545	s << '}';
19546	return s;
19547}
19548
19549std::ostream& operator<< (std::ostream& s, const VkLatencySurfaceCapabilitiesNV& value)
19550{
19551	s << "VkLatencySurfaceCapabilitiesNV = {\n";
19552	s << "\tsType = " << value.sType << '\n';
19553	s << "\tpNext = " << value.pNext << '\n';
19554	s << "\tpresentModeCount = " << value.presentModeCount << '\n';
19555	s << "\tpPresentModes = " << value.pPresentModes << '\n';
19556	s << '}';
19557	return s;
19558}
19559
19560std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCudaKernelLaunchFeaturesNV& value)
19561{
19562	s << "VkPhysicalDeviceCudaKernelLaunchFeaturesNV = {\n";
19563	s << "\tsType = " << value.sType << '\n';
19564	s << "\tpNext = " << value.pNext << '\n';
19565	s << "\tcudaKernelLaunchFeatures = " << value.cudaKernelLaunchFeatures << '\n';
19566	s << '}';
19567	return s;
19568}
19569
19570std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCudaKernelLaunchPropertiesNV& value)
19571{
19572	s << "VkPhysicalDeviceCudaKernelLaunchPropertiesNV = {\n";
19573	s << "\tsType = " << value.sType << '\n';
19574	s << "\tpNext = " << value.pNext << '\n';
19575	s << "\tcomputeCapabilityMinor = " << value.computeCapabilityMinor << '\n';
19576	s << "\tcomputeCapabilityMajor = " << value.computeCapabilityMajor << '\n';
19577	s << '}';
19578	return s;
19579}
19580
19581std::ostream& operator<< (std::ostream& s, const VkDeviceQueueShaderCoreControlCreateInfoARM& value)
19582{
19583	s << "VkDeviceQueueShaderCoreControlCreateInfoARM = {\n";
19584	s << "\tsType = " << value.sType << '\n';
19585	s << "\tpNext = " << value.pNext << '\n';
19586	s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
19587	s << '}';
19588	return s;
19589}
19590
19591std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSchedulingControlsFeaturesARM& value)
19592{
19593	s << "VkPhysicalDeviceSchedulingControlsFeaturesARM = {\n";
19594	s << "\tsType = " << value.sType << '\n';
19595	s << "\tpNext = " << value.pNext << '\n';
19596	s << "\tschedulingControls = " << value.schedulingControls << '\n';
19597	s << '}';
19598	return s;
19599}
19600
19601std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSchedulingControlsPropertiesARM& value)
19602{
19603	s << "VkPhysicalDeviceSchedulingControlsPropertiesARM = {\n";
19604	s << "\tsType = " << value.sType << '\n';
19605	s << "\tpNext = " << value.pNext << '\n';
19606	s << "\tschedulingControlsFlags = " << getPhysicalDeviceSchedulingControlsFlagsARMStr(value.schedulingControlsFlags) << '\n';
19607	s << '}';
19608	return s;
19609}
19610
19611std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG& value)
19612{
19613	s << "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG = {\n";
19614	s << "\tsType = " << value.sType << '\n';
19615	s << "\tpNext = " << value.pNext << '\n';
19616	s << "\trelaxedLineRasterization = " << value.relaxedLineRasterization << '\n';
19617	s << '}';
19618	return s;
19619}
19620
19621std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRenderPassStripedFeaturesARM& value)
19622{
19623	s << "VkPhysicalDeviceRenderPassStripedFeaturesARM = {\n";
19624	s << "\tsType = " << value.sType << '\n';
19625	s << "\tpNext = " << value.pNext << '\n';
19626	s << "\trenderPassStriped = " << value.renderPassStriped << '\n';
19627	s << '}';
19628	return s;
19629}
19630
19631std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRenderPassStripedPropertiesARM& value)
19632{
19633	s << "VkPhysicalDeviceRenderPassStripedPropertiesARM = {\n";
19634	s << "\tsType = " << value.sType << '\n';
19635	s << "\tpNext = " << value.pNext << '\n';
19636	s << "\trenderPassStripeGranularity = " << value.renderPassStripeGranularity << '\n';
19637	s << "\tmaxRenderPassStripes = " << value.maxRenderPassStripes << '\n';
19638	s << '}';
19639	return s;
19640}
19641
19642std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeInfoARM& value)
19643{
19644	s << "VkRenderPassStripeInfoARM = {\n";
19645	s << "\tsType = " << value.sType << '\n';
19646	s << "\tpNext = " << value.pNext << '\n';
19647	s << "\tstripeArea = " << value.stripeArea << '\n';
19648	s << '}';
19649	return s;
19650}
19651
19652std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeBeginInfoARM& value)
19653{
19654	s << "VkRenderPassStripeBeginInfoARM = {\n";
19655	s << "\tsType = " << value.sType << '\n';
19656	s << "\tpNext = " << value.pNext << '\n';
19657	s << "\tstripeInfoCount = " << value.stripeInfoCount << '\n';
19658	s << "\tpStripeInfos = " << value.pStripeInfos << '\n';
19659	s << '}';
19660	return s;
19661}
19662
19663std::ostream& operator<< (std::ostream& s, const VkRenderPassStripeSubmitInfoARM& value)
19664{
19665	s << "VkRenderPassStripeSubmitInfoARM = {\n";
19666	s << "\tsType = " << value.sType << '\n';
19667	s << "\tpNext = " << value.pNext << '\n';
19668	s << "\tstripeSemaphoreInfoCount = " << value.stripeSemaphoreInfoCount << '\n';
19669	s << "\tpStripeSemaphoreInfos = " << value.pStripeSemaphoreInfos << '\n';
19670	s << '}';
19671	return s;
19672}
19673
19674std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR& value)
19675{
19676	s << "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR = {\n";
19677	s << "\tsType = " << value.sType << '\n';
19678	s << "\tpNext = " << value.pNext << '\n';
19679	s << "\tshaderMaximalReconvergence = " << value.shaderMaximalReconvergence << '\n';
19680	s << '}';
19681	return s;
19682}
19683
19684std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupRotateFeatures& value)
19685{
19686	s << "VkPhysicalDeviceShaderSubgroupRotateFeatures = {\n";
19687	s << "\tsType = " << value.sType << '\n';
19688	s << "\tpNext = " << value.pNext << '\n';
19689	s << "\tshaderSubgroupRotate = " << value.shaderSubgroupRotate << '\n';
19690	s << "\tshaderSubgroupRotateClustered = " << value.shaderSubgroupRotateClustered << '\n';
19691	s << '}';
19692	return s;
19693}
19694
19695std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderExpectAssumeFeatures& value)
19696{
19697	s << "VkPhysicalDeviceShaderExpectAssumeFeatures = {\n";
19698	s << "\tsType = " << value.sType << '\n';
19699	s << "\tpNext = " << value.pNext << '\n';
19700	s << "\tshaderExpectAssume = " << value.shaderExpectAssume << '\n';
19701	s << '}';
19702	return s;
19703}
19704
19705std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloatControls2Features& value)
19706{
19707	s << "VkPhysicalDeviceShaderFloatControls2Features = {\n";
19708	s << "\tsType = " << value.sType << '\n';
19709	s << "\tpNext = " << value.pNext << '\n';
19710	s << "\tshaderFloatControls2 = " << value.shaderFloatControls2 << '\n';
19711	s << '}';
19712	return s;
19713}
19714
19715std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingLocalReadFeatures& value)
19716{
19717	s << "VkPhysicalDeviceDynamicRenderingLocalReadFeatures = {\n";
19718	s << "\tsType = " << value.sType << '\n';
19719	s << "\tpNext = " << value.pNext << '\n';
19720	s << "\tdynamicRenderingLocalRead = " << value.dynamicRenderingLocalRead << '\n';
19721	s << '}';
19722	return s;
19723}
19724
19725std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentLocationInfo& value)
19726{
19727	s << "VkRenderingAttachmentLocationInfo = {\n";
19728	s << "\tsType = " << value.sType << '\n';
19729	s << "\tpNext = " << value.pNext << '\n';
19730	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
19731	s << "\tpColorAttachmentLocations = " << value.pColorAttachmentLocations << '\n';
19732	s << '}';
19733	return s;
19734}
19735
19736std::ostream& operator<< (std::ostream& s, const VkRenderingInputAttachmentIndexInfo& value)
19737{
19738	s << "VkRenderingInputAttachmentIndexInfo = {\n";
19739	s << "\tsType = " << value.sType << '\n';
19740	s << "\tpNext = " << value.pNext << '\n';
19741	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
19742	s << "\tpColorAttachmentInputIndices = " << value.pColorAttachmentInputIndices << '\n';
19743	s << "\tpDepthInputAttachmentIndex = " << value.pDepthInputAttachmentIndex << '\n';
19744	s << "\tpStencilInputAttachmentIndex = " << value.pStencilInputAttachmentIndex << '\n';
19745	s << '}';
19746	return s;
19747}
19748
19749std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderQuadControlFeaturesKHR& value)
19750{
19751	s << "VkPhysicalDeviceShaderQuadControlFeaturesKHR = {\n";
19752	s << "\tsType = " << value.sType << '\n';
19753	s << "\tpNext = " << value.pNext << '\n';
19754	s << "\tshaderQuadControl = " << value.shaderQuadControl << '\n';
19755	s << '}';
19756	return s;
19757}
19758
19759std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV& value)
19760{
19761	s << "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = {\n";
19762	s << "\tsType = " << value.sType << '\n';
19763	s << "\tpNext = " << value.pNext << '\n';
19764	s << "\tshaderFloat16VectorAtomics = " << value.shaderFloat16VectorAtomics << '\n';
19765	s << '}';
19766	return s;
19767}
19768
19769std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT& value)
19770{
19771	s << "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT = {\n";
19772	s << "\tsType = " << value.sType << '\n';
19773	s << "\tpNext = " << value.pNext << '\n';
19774	s << "\tmemoryMapPlaced = " << value.memoryMapPlaced << '\n';
19775	s << "\tmemoryMapRangePlaced = " << value.memoryMapRangePlaced << '\n';
19776	s << "\tmemoryUnmapReserve = " << value.memoryUnmapReserve << '\n';
19777	s << '}';
19778	return s;
19779}
19780
19781std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMapMemoryPlacedPropertiesEXT& value)
19782{
19783	s << "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT = {\n";
19784	s << "\tsType = " << value.sType << '\n';
19785	s << "\tpNext = " << value.pNext << '\n';
19786	s << "\tminPlacedMemoryMapAlignment = " << value.minPlacedMemoryMapAlignment << '\n';
19787	s << '}';
19788	return s;
19789}
19790
19791std::ostream& operator<< (std::ostream& s, const VkMemoryMapPlacedInfoEXT& value)
19792{
19793	s << "VkMemoryMapPlacedInfoEXT = {\n";
19794	s << "\tsType = " << value.sType << '\n';
19795	s << "\tpNext = " << value.pNext << '\n';
19796	s << "\tpPlacedAddress = " << value.pPlacedAddress << '\n';
19797	s << '}';
19798	return s;
19799}
19800
19801std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRawAccessChainsFeaturesNV& value)
19802{
19803	s << "VkPhysicalDeviceRawAccessChainsFeaturesNV = {\n";
19804	s << "\tsType = " << value.sType << '\n';
19805	s << "\tpNext = " << value.pNext << '\n';
19806	s << "\tshaderRawAccessChains = " << value.shaderRawAccessChains << '\n';
19807	s << '}';
19808	return s;
19809}
19810
19811std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCommandBufferInheritanceFeaturesNV& value)
19812{
19813	s << "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV = {\n";
19814	s << "\tsType = " << value.sType << '\n';
19815	s << "\tpNext = " << value.pNext << '\n';
19816	s << "\tcommandBufferInheritance = " << value.commandBufferInheritance << '\n';
19817	s << '}';
19818	return s;
19819}
19820
19821std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageAlignmentControlFeaturesMESA& value)
19822{
19823	s << "VkPhysicalDeviceImageAlignmentControlFeaturesMESA = {\n";
19824	s << "\tsType = " << value.sType << '\n';
19825	s << "\tpNext = " << value.pNext << '\n';
19826	s << "\timageAlignmentControl = " << value.imageAlignmentControl << '\n';
19827	s << '}';
19828	return s;
19829}
19830
19831std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageAlignmentControlPropertiesMESA& value)
19832{
19833	s << "VkPhysicalDeviceImageAlignmentControlPropertiesMESA = {\n";
19834	s << "\tsType = " << value.sType << '\n';
19835	s << "\tpNext = " << value.pNext << '\n';
19836	s << "\tsupportedImageAlignmentMask = " << value.supportedImageAlignmentMask << '\n';
19837	s << '}';
19838	return s;
19839}
19840
19841std::ostream& operator<< (std::ostream& s, const VkImageAlignmentControlCreateInfoMESA& value)
19842{
19843	s << "VkImageAlignmentControlCreateInfoMESA = {\n";
19844	s << "\tsType = " << value.sType << '\n';
19845	s << "\tpNext = " << value.pNext << '\n';
19846	s << "\tmaximumRequestedAlignment = " << value.maximumRequestedAlignment << '\n';
19847	s << '}';
19848	return s;
19849}
19850
19851std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT& value)
19852{
19853	s << "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT = {\n";
19854	s << "\tsType = " << value.sType << '\n';
19855	s << "\tpNext = " << value.pNext << '\n';
19856	s << "\tshaderReplicatedComposites = " << value.shaderReplicatedComposites << '\n';
19857	s << '}';
19858	return s;
19859}
19860
19861std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT& value)
19862{
19863	s << "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT = {\n";
19864	s << "\tsType = " << value.sType << '\n';
19865	s << "\tpNext = " << value.pNext << '\n';
19866	s << "\tpresentModeFifoLatestReady = " << value.presentModeFifoLatestReady << '\n';
19867	s << '}';
19868	return s;
19869}
19870
19871std::ostream& operator<< (std::ostream& s, const VkDepthClampRangeEXT& value)
19872{
19873	s << "VkDepthClampRangeEXT = {\n";
19874	s << "\tminDepthClamp = " << value.minDepthClamp << '\n';
19875	s << "\tmaxDepthClamp = " << value.maxDepthClamp << '\n';
19876	s << '}';
19877	return s;
19878}
19879
19880std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrix2FeaturesNV& value)
19881{
19882	s << "VkPhysicalDeviceCooperativeMatrix2FeaturesNV = {\n";
19883	s << "\tsType = " << value.sType << '\n';
19884	s << "\tpNext = " << value.pNext << '\n';
19885	s << "\tcooperativeMatrixWorkgroupScope = " << value.cooperativeMatrixWorkgroupScope << '\n';
19886	s << "\tcooperativeMatrixFlexibleDimensions = " << value.cooperativeMatrixFlexibleDimensions << '\n';
19887	s << "\tcooperativeMatrixReductions = " << value.cooperativeMatrixReductions << '\n';
19888	s << "\tcooperativeMatrixConversions = " << value.cooperativeMatrixConversions << '\n';
19889	s << "\tcooperativeMatrixPerElementOperations = " << value.cooperativeMatrixPerElementOperations << '\n';
19890	s << "\tcooperativeMatrixTensorAddressing = " << value.cooperativeMatrixTensorAddressing << '\n';
19891	s << "\tcooperativeMatrixBlockLoads = " << value.cooperativeMatrixBlockLoads << '\n';
19892	s << '}';
19893	return s;
19894}
19895
19896std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrix2PropertiesNV& value)
19897{
19898	s << "VkPhysicalDeviceCooperativeMatrix2PropertiesNV = {\n";
19899	s << "\tsType = " << value.sType << '\n';
19900	s << "\tpNext = " << value.pNext << '\n';
19901	s << "\tcooperativeMatrixWorkgroupScopeMaxWorkgroupSize = " << value.cooperativeMatrixWorkgroupScopeMaxWorkgroupSize << '\n';
19902	s << "\tcooperativeMatrixFlexibleDimensionsMaxDimension = " << value.cooperativeMatrixFlexibleDimensionsMaxDimension << '\n';
19903	s << "\tcooperativeMatrixWorkgroupScopeReservedSharedMemory = " << value.cooperativeMatrixWorkgroupScopeReservedSharedMemory << '\n';
19904	s << '}';
19905	return s;
19906}
19907
19908std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixFlexibleDimensionsPropertiesNV& value)
19909{
19910	s << "VkCooperativeMatrixFlexibleDimensionsPropertiesNV = {\n";
19911	s << "\tsType = " << value.sType << '\n';
19912	s << "\tpNext = " << value.pNext << '\n';
19913	s << "\tMGranularity = " << value.MGranularity << '\n';
19914	s << "\tNGranularity = " << value.NGranularity << '\n';
19915	s << "\tKGranularity = " << value.KGranularity << '\n';
19916	s << "\tAType = " << value.AType << '\n';
19917	s << "\tBType = " << value.BType << '\n';
19918	s << "\tCType = " << value.CType << '\n';
19919	s << "\tResultType = " << value.ResultType << '\n';
19920	s << "\tsaturatingAccumulation = " << value.saturatingAccumulation << '\n';
19921	s << "\tscope = " << value.scope << '\n';
19922	s << "\tworkgroupInvocations = " << value.workgroupInvocations << '\n';
19923	s << '}';
19924	return s;
19925}
19926
19927std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHdrVividFeaturesHUAWEI& value)
19928{
19929	s << "VkPhysicalDeviceHdrVividFeaturesHUAWEI = {\n";
19930	s << "\tsType = " << value.sType << '\n';
19931	s << "\tpNext = " << value.pNext << '\n';
19932	s << "\thdrVivid = " << value.hdrVivid << '\n';
19933	s << '}';
19934	return s;
19935}
19936
19937std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT& value)
19938{
19939	s << "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT = {\n";
19940	s << "\tsType = " << value.sType << '\n';
19941	s << "\tpNext = " << value.pNext << '\n';
19942	s << "\tvertexAttributeRobustness = " << value.vertexAttributeRobustness << '\n';
19943	s << '}';
19944	return s;
19945}
19946
19947std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
19948{
19949	s << "StdVideoH264SpsVuiFlags = {\n";
19950	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
19951	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
19952	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
19953	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
19954	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
19955	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
19956	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
19957	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
19958	s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
19959	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
19960	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
19961	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
19962	s << '}';
19963	return s;
19964}
19965
19966std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
19967{
19968	s << "StdVideoH264HrdParameters = {\n";
19969	s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
19970	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
19971	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
19972	s << "\treserved1 = " << value.reserved1 << '\n';
19973	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';
19974	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';
19975	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';
19976	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
19977	s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
19978	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
19979	s << "\ttime_offset_length = " << value.time_offset_length << '\n';
19980	s << '}';
19981	return s;
19982}
19983
19984std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
19985{
19986	s << "StdVideoH264SequenceParameterSetVui = {\n";
19987	s << "\tflags = " << value.flags << '\n';
19988	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
19989	s << "\tsar_width = " << value.sar_width << '\n';
19990	s << "\tsar_height = " << value.sar_height << '\n';
19991	s << "\tvideo_format = " << value.video_format << '\n';
19992	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
19993	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
19994	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
19995	s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
19996	s << "\ttime_scale = " << value.time_scale << '\n';
19997	s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
19998	s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
19999	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
20000	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
20001	s << "\treserved1 = " << value.reserved1 << '\n';
20002	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
20003	s << '}';
20004	return s;
20005}
20006
20007std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
20008{
20009	s << "StdVideoH264SpsFlags = {\n";
20010	s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
20011	s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
20012	s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
20013	s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
20014	s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
20015	s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
20016	s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
20017	s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
20018	s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
20019	s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
20020	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
20021	s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
20022	s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
20023	s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
20024	s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
20025	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
20026	s << '}';
20027	return s;
20028}
20029
20030std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
20031{
20032	s << "StdVideoH264ScalingLists = {\n";
20033	s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
20034	s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
20035	s << "\tScalingList4x4 = " << '\n';
20036	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS ; ++i0)
20037		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4[i0]), DE_ARRAY_END(value.ScalingList4x4[i0])) << '\n';
20038	s << "\tScalingList8x8 = " << '\n';
20039	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS ; ++i0)
20040		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8[i0]), DE_ARRAY_END(value.ScalingList8x8[i0])) << '\n';
20041	s << '}';
20042	return s;
20043}
20044
20045std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
20046{
20047	s << "StdVideoH264SequenceParameterSet = {\n";
20048	s << "\tflags = " << value.flags << '\n';
20049	s << "\tprofile_idc = " << value.profile_idc << '\n';
20050	s << "\tlevel_idc = " << value.level_idc << '\n';
20051	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
20052	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
20053	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
20054	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
20055	s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
20056	s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
20057	s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
20058	s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
20059	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
20060	s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
20061	s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
20062	s << "\treserved1 = " << value.reserved1 << '\n';
20063	s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
20064	s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
20065	s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
20066	s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
20067	s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
20068	s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
20069	s << "\treserved2 = " << value.reserved2 << '\n';
20070	s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
20071	s << "\tpScalingLists = " << value.pScalingLists << '\n';
20072	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
20073	s << '}';
20074	return s;
20075}
20076
20077std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
20078{
20079	s << "StdVideoH264PpsFlags = {\n";
20080	s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
20081	s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
20082	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
20083	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
20084	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
20085	s << "\tbottom_field_pic_order_in_frame_present_flag = " << value.bottom_field_pic_order_in_frame_present_flag << '\n';
20086	s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
20087	s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
20088	s << '}';
20089	return s;
20090}
20091
20092std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
20093{
20094	s << "StdVideoH264PictureParameterSet = {\n";
20095	s << "\tflags = " << value.flags << '\n';
20096	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
20097	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
20098	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
20099	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
20100	s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
20101	s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
20102	s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
20103	s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
20104	s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
20105	s << "\tpScalingLists = " << value.pScalingLists << '\n';
20106	s << '}';
20107	return s;
20108}
20109
20110std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
20111{
20112	s << "StdVideoDecodeH264PictureInfoFlags = {\n";
20113	s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
20114	s << "\tis_intra = " << value.is_intra << '\n';
20115	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
20116	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
20117	s << "\tis_reference = " << value.is_reference << '\n';
20118	s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
20119	s << '}';
20120	return s;
20121}
20122
20123std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
20124{
20125	s << "StdVideoDecodeH264PictureInfo = {\n";
20126	s << "\tflags = " << value.flags << '\n';
20127	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
20128	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
20129	s << "\treserved1 = " << value.reserved1 << '\n';
20130	s << "\treserved2 = " << value.reserved2 << '\n';
20131	s << "\tframe_num = " << value.frame_num << '\n';
20132	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
20133	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
20134	s << '}';
20135	return s;
20136}
20137
20138std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
20139{
20140	s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
20141	s << "\ttop_field_flag = " << value.top_field_flag << '\n';
20142	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
20143	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
20144	s << "\tis_non_existing = " << value.is_non_existing << '\n';
20145	s << '}';
20146	return s;
20147}
20148
20149std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
20150{
20151	s << "StdVideoDecodeH264ReferenceInfo = {\n";
20152	s << "\tflags = " << value.flags << '\n';
20153	s << "\tFrameNum = " << value.FrameNum << '\n';
20154	s << "\treserved = " << value.reserved << '\n';
20155	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
20156	s << '}';
20157	return s;
20158}
20159
20160std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
20161{
20162	s << "StdVideoEncodeH264WeightTableFlags = {\n";
20163	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
20164	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
20165	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
20166	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
20167	s << '}';
20168	return s;
20169}
20170
20171std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
20172{
20173	s << "StdVideoEncodeH264WeightTable = {\n";
20174	s << "\tflags = " << value.flags << '\n';
20175	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
20176	s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
20177	s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
20178	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
20179	s << "\tchroma_weight_l0 = " << '\n';
20180	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
20181		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0[i0]), DE_ARRAY_END(value.chroma_weight_l0[i0])) << '\n';
20182	s << "\tchroma_offset_l0 = " << '\n';
20183	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
20184		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0[i0]), DE_ARRAY_END(value.chroma_offset_l0[i0])) << '\n';
20185	s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
20186	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
20187	s << "\tchroma_weight_l1 = " << '\n';
20188	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
20189		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1[i0]), DE_ARRAY_END(value.chroma_weight_l1[i0])) << '\n';
20190	s << "\tchroma_offset_l1 = " << '\n';
20191	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H264_MAX_NUM_LIST_REF ; ++i0)
20192		s << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1[i0]), DE_ARRAY_END(value.chroma_offset_l1[i0])) << '\n';
20193	s << '}';
20194	return s;
20195}
20196
20197std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
20198{
20199	s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
20200	s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
20201	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
20202	s << "\treserved = " << value.reserved << '\n';
20203	s << '}';
20204	return s;
20205}
20206
20207std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
20208{
20209	s << "StdVideoEncodeH264PictureInfoFlags = {\n";
20210	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
20211	s << "\tis_reference = " << value.is_reference << '\n';
20212	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
20213	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
20214	s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
20215	s << "\treserved = " << value.reserved << '\n';
20216	s << '}';
20217	return s;
20218}
20219
20220std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
20221{
20222	s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
20223	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
20224	s << "\treserved = " << value.reserved << '\n';
20225	s << '}';
20226	return s;
20227}
20228
20229std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceListsInfoFlags& value)
20230{
20231	s << "StdVideoEncodeH264ReferenceListsInfoFlags = {\n";
20232	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
20233	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
20234	s << "\treserved = " << value.reserved << '\n';
20235	s << '}';
20236	return s;
20237}
20238
20239std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
20240{
20241	s << "StdVideoEncodeH264RefListModEntry = {\n";
20242	s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
20243	s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
20244	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
20245	s << '}';
20246	return s;
20247}
20248
20249std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
20250{
20251	s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
20252	s << "\tmemory_management_control_operation = " << value.memory_management_control_operation << '\n';
20253	s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
20254	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
20255	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
20256	s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
20257	s << '}';
20258	return s;
20259}
20260
20261std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceListsInfo& value)
20262{
20263	s << "StdVideoEncodeH264ReferenceListsInfo = {\n";
20264	s << "\tflags = " << value.flags << '\n';
20265	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
20266	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
20267	s << "\tRefPicList0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList0))) << '\n';
20268	s << "\tRefPicList1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList1))) << '\n';
20269	s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
20270	s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
20271	s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
20272	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
20273	s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
20274	s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
20275	s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
20276	s << '}';
20277	return s;
20278}
20279
20280std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
20281{
20282	s << "StdVideoEncodeH264PictureInfo = {\n";
20283	s << "\tflags = " << value.flags << '\n';
20284	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
20285	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
20286	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
20287	s << "\tprimary_pic_type = " << value.primary_pic_type << '\n';
20288	s << "\tframe_num = " << value.frame_num << '\n';
20289	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
20290	s << "\ttemporal_id = " << value.temporal_id << '\n';
20291	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
20292	s << "\tpRefLists = " << value.pRefLists << '\n';
20293	s << '}';
20294	return s;
20295}
20296
20297std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
20298{
20299	s << "StdVideoEncodeH264ReferenceInfo = {\n";
20300	s << "\tflags = " << value.flags << '\n';
20301	s << "\tprimary_pic_type = " << value.primary_pic_type << '\n';
20302	s << "\tFrameNum = " << value.FrameNum << '\n';
20303	s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
20304	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
20305	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
20306	s << "\ttemporal_id = " << value.temporal_id << '\n';
20307	s << '}';
20308	return s;
20309}
20310
20311std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
20312{
20313	s << "StdVideoEncodeH264SliceHeader = {\n";
20314	s << "\tflags = " << value.flags << '\n';
20315	s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
20316	s << "\tslice_type = " << value.slice_type << '\n';
20317	s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
20318	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
20319	s << "\tslice_qp_delta = " << value.slice_qp_delta << '\n';
20320	s << "\treserved1 = " << value.reserved1 << '\n';
20321	s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
20322	s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
20323	s << "\tpWeightTable = " << value.pWeightTable << '\n';
20324	s << '}';
20325	return s;
20326}
20327
20328std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevelFlags& value)
20329{
20330	s << "StdVideoH265ProfileTierLevelFlags = {\n";
20331	s << "\tgeneral_tier_flag = " << value.general_tier_flag << '\n';
20332	s << "\tgeneral_progressive_source_flag = " << value.general_progressive_source_flag << '\n';
20333	s << "\tgeneral_interlaced_source_flag = " << value.general_interlaced_source_flag << '\n';
20334	s << "\tgeneral_non_packed_constraint_flag = " << value.general_non_packed_constraint_flag << '\n';
20335	s << "\tgeneral_frame_only_constraint_flag = " << value.general_frame_only_constraint_flag << '\n';
20336	s << '}';
20337	return s;
20338}
20339
20340std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevel& value)
20341{
20342	s << "StdVideoH265ProfileTierLevel = {\n";
20343	s << "\tflags = " << value.flags << '\n';
20344	s << "\tgeneral_profile_idc = " << value.general_profile_idc << '\n';
20345	s << "\tgeneral_level_idc = " << value.general_level_idc << '\n';
20346	s << '}';
20347	return s;
20348}
20349
20350std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
20351{
20352	s << "StdVideoH265DecPicBufMgr = {\n";
20353	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';
20354	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';
20355	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';
20356	s << '}';
20357	return s;
20358}
20359
20360std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
20361{
20362	s << "StdVideoH265SubLayerHrdParameters = {\n";
20363	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';
20364	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';
20365	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';
20366	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';
20367	s << "\tcbr_flag = " << value.cbr_flag << '\n';
20368	s << '}';
20369	return s;
20370}
20371
20372std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
20373{
20374	s << "StdVideoH265HrdFlags = {\n";
20375	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
20376	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
20377	s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
20378	s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
20379	s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
20380	s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
20381	s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
20382	s << '}';
20383	return s;
20384}
20385
20386std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
20387{
20388	s << "StdVideoH265HrdParameters = {\n";
20389	s << "\tflags = " << value.flags << '\n';
20390	s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
20391	s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
20392	s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
20393	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
20394	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
20395	s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
20396	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
20397	s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
20398	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
20399	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';
20400	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';
20401	s << "\treserved = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.reserved), DE_ARRAY_END(value.reserved)) << '\n';
20402	s << "\tpSubLayerHrdParametersNal = " << value.pSubLayerHrdParametersNal << '\n';
20403	s << "\tpSubLayerHrdParametersVcl = " << value.pSubLayerHrdParametersVcl << '\n';
20404	s << '}';
20405	return s;
20406}
20407
20408std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
20409{
20410	s << "StdVideoH265VpsFlags = {\n";
20411	s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
20412	s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
20413	s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
20414	s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
20415	s << '}';
20416	return s;
20417}
20418
20419std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
20420{
20421	s << "StdVideoH265VideoParameterSet = {\n";
20422	s << "\tflags = " << value.flags << '\n';
20423	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
20424	s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
20425	s << "\treserved1 = " << value.reserved1 << '\n';
20426	s << "\treserved2 = " << value.reserved2 << '\n';
20427	s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
20428	s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
20429	s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
20430	s << "\treserved3 = " << value.reserved3 << '\n';
20431	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
20432	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
20433	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
20434	s << '}';
20435	return s;
20436}
20437
20438std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
20439{
20440	s << "StdVideoH265ScalingLists = {\n";
20441	s << "\tScalingList4x4 = " << '\n';
20442	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS ; ++i0)
20443		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4[i0]), DE_ARRAY_END(value.ScalingList4x4[i0])) << '\n';
20444	s << "\tScalingList8x8 = " << '\n';
20445	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS ; ++i0)
20446		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8[i0]), DE_ARRAY_END(value.ScalingList8x8[i0])) << '\n';
20447	s << "\tScalingList16x16 = " << '\n';
20448	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS ; ++i0)
20449		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16[i0]), DE_ARRAY_END(value.ScalingList16x16[i0])) << '\n';
20450	s << "\tScalingList32x32 = " << '\n';
20451	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS ; ++i0)
20452		s << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32[i0]), DE_ARRAY_END(value.ScalingList32x32[i0])) << '\n';
20453	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';
20454	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';
20455	s << '}';
20456	return s;
20457}
20458
20459std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSetFlags& value)
20460{
20461	s << "StdVideoH265ShortTermRefPicSetFlags = {\n";
20462	s << "\tinter_ref_pic_set_prediction_flag = " << value.inter_ref_pic_set_prediction_flag << '\n';
20463	s << "\tdelta_rps_sign = " << value.delta_rps_sign << '\n';
20464	s << '}';
20465	return s;
20466}
20467
20468std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSet& value)
20469{
20470	s << "StdVideoH265ShortTermRefPicSet = {\n";
20471	s << "\tflags = " << value.flags << '\n';
20472	s << "\tdelta_idx_minus1 = " << value.delta_idx_minus1 << '\n';
20473	s << "\tuse_delta_flag = " << value.use_delta_flag << '\n';
20474	s << "\tabs_delta_rps_minus1 = " << value.abs_delta_rps_minus1 << '\n';
20475	s << "\tused_by_curr_pic_flag = " << value.used_by_curr_pic_flag << '\n';
20476	s << "\tused_by_curr_pic_s0_flag = " << value.used_by_curr_pic_s0_flag << '\n';
20477	s << "\tused_by_curr_pic_s1_flag = " << value.used_by_curr_pic_s1_flag << '\n';
20478	s << "\treserved1 = " << value.reserved1 << '\n';
20479	s << "\treserved2 = " << value.reserved2 << '\n';
20480	s << "\treserved3 = " << value.reserved3 << '\n';
20481	s << "\tnum_negative_pics = " << value.num_negative_pics << '\n';
20482	s << "\tnum_positive_pics = " << value.num_positive_pics << '\n';
20483	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';
20484	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';
20485	s << '}';
20486	return s;
20487}
20488
20489std::ostream& operator<< (std::ostream& s, const StdVideoH265LongTermRefPicsSps& value)
20490{
20491	s << "StdVideoH265LongTermRefPicsSps = {\n";
20492	s << "\tused_by_curr_pic_lt_sps_flag = " << value.used_by_curr_pic_lt_sps_flag << '\n';
20493	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';
20494	s << '}';
20495	return s;
20496}
20497
20498std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
20499{
20500	s << "StdVideoH265SpsVuiFlags = {\n";
20501	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
20502	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
20503	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
20504	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
20505	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
20506	s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
20507	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
20508	s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
20509	s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
20510	s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
20511	s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
20512	s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
20513	s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
20514	s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
20515	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
20516	s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
20517	s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
20518	s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
20519	s << '}';
20520	return s;
20521}
20522
20523std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
20524{
20525	s << "StdVideoH265SequenceParameterSetVui = {\n";
20526	s << "\tflags = " << value.flags << '\n';
20527	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
20528	s << "\tsar_width = " << value.sar_width << '\n';
20529	s << "\tsar_height = " << value.sar_height << '\n';
20530	s << "\tvideo_format = " << value.video_format << '\n';
20531	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
20532	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
20533	s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
20534	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
20535	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
20536	s << "\treserved1 = " << value.reserved1 << '\n';
20537	s << "\treserved2 = " << value.reserved2 << '\n';
20538	s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
20539	s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
20540	s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
20541	s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
20542	s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
20543	s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
20544	s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
20545	s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
20546	s << "\treserved3 = " << value.reserved3 << '\n';
20547	s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
20548	s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
20549	s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
20550	s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
20551	s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
20552	s << '}';
20553	return s;
20554}
20555
20556std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
20557{
20558	s << "StdVideoH265PredictorPaletteEntries = {\n";
20559	s << "\tPredictorPaletteEntries = " << '\n';
20560	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE ; ++i0)
20561		s << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries[i0]), DE_ARRAY_END(value.PredictorPaletteEntries[i0])) << '\n';
20562	s << '}';
20563	return s;
20564}
20565
20566std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
20567{
20568	s << "StdVideoH265SpsFlags = {\n";
20569	s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
20570	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
20571	s << "\tconformance_window_flag = " << value.conformance_window_flag << '\n';
20572	s << "\tsps_sub_layer_ordering_info_present_flag = " << value.sps_sub_layer_ordering_info_present_flag << '\n';
20573	s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
20574	s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
20575	s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
20576	s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
20577	s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
20578	s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
20579	s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
20580	s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
20581	s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
20582	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
20583	s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
20584	s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
20585	s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
20586	s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
20587	s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
20588	s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
20589	s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
20590	s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
20591	s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
20592	s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
20593	s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
20594	s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
20595	s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
20596	s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
20597	s << "\tsps_palette_predictor_initializers_present_flag = " << value.sps_palette_predictor_initializers_present_flag << '\n';
20598	s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
20599	s << '}';
20600	return s;
20601}
20602
20603std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
20604{
20605	s << "StdVideoH265SequenceParameterSet = {\n";
20606	s << "\tflags = " << value.flags << '\n';
20607	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
20608	s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
20609	s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
20610	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
20611	s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
20612	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
20613	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
20614	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
20615	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
20616	s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
20617	s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
20618	s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
20619	s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
20620	s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
20621	s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
20622	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
20623	s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
20624	s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
20625	s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
20626	s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
20627	s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
20628	s << "\treserved1 = " << value.reserved1 << '\n';
20629	s << "\treserved2 = " << value.reserved2 << '\n';
20630	s << "\tpalette_max_size = " << value.palette_max_size << '\n';
20631	s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
20632	s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
20633	s << "\tsps_num_palette_predictor_initializers_minus1 = " << value.sps_num_palette_predictor_initializers_minus1 << '\n';
20634	s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
20635	s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
20636	s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
20637	s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
20638	s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
20639	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
20640	s << "\tpScalingLists = " << value.pScalingLists << '\n';
20641	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
20642	s << "\tpLongTermRefPicsSps = " << value.pLongTermRefPicsSps << '\n';
20643	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
20644	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
20645	s << '}';
20646	return s;
20647}
20648
20649std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
20650{
20651	s << "StdVideoH265PpsFlags = {\n";
20652	s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
20653	s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
20654	s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
20655	s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
20656	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
20657	s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
20658	s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
20659	s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
20660	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
20661	s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
20662	s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
20663	s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
20664	s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
20665	s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
20666	s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
20667	s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
20668	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
20669	s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
20670	s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
20671	s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
20672	s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
20673	s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
20674	s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
20675	s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
20676	s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
20677	s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
20678	s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
20679	s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
20680	s << "\tpps_palette_predictor_initializers_present_flag = " << value.pps_palette_predictor_initializers_present_flag << '\n';
20681	s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
20682	s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
20683	s << '}';
20684	return s;
20685}
20686
20687std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
20688{
20689	s << "StdVideoH265PictureParameterSet = {\n";
20690	s << "\tflags = " << value.flags << '\n';
20691	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
20692	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
20693	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
20694	s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
20695	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
20696	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
20697	s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
20698	s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
20699	s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
20700	s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
20701	s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
20702	s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
20703	s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
20704	s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
20705	s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
20706	s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
20707	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';
20708	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';
20709	s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
20710	s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
20711	s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
20712	s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
20713	s << "\tpps_act_cr_qp_offset_plus3 = " << value.pps_act_cr_qp_offset_plus3 << '\n';
20714	s << "\tpps_num_palette_predictor_initializers = " << value.pps_num_palette_predictor_initializers << '\n';
20715	s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
20716	s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
20717	s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
20718	s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
20719	s << "\treserved1 = " << value.reserved1 << '\n';
20720	s << "\treserved2 = " << value.reserved2 << '\n';
20721	s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
20722	s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
20723	s << "\treserved3 = " << value.reserved3 << '\n';
20724	s << "\tpScalingLists = " << value.pScalingLists << '\n';
20725	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
20726	s << '}';
20727	return s;
20728}
20729
20730std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
20731{
20732	s << "StdVideoDecodeH265PictureInfoFlags = {\n";
20733	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
20734	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
20735	s << "\tIsReference = " << value.IsReference << '\n';
20736	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
20737	s << '}';
20738	return s;
20739}
20740
20741std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
20742{
20743	s << "StdVideoDecodeH265PictureInfo = {\n";
20744	s << "\tflags = " << value.flags << '\n';
20745	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
20746	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
20747	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
20748	s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
20749	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
20750	s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
20751	s << "\treserved = " << value.reserved << '\n';
20752	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';
20753	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';
20754	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';
20755	s << '}';
20756	return s;
20757}
20758
20759std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
20760{
20761	s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
20762	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
20763	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
20764	s << '}';
20765	return s;
20766}
20767
20768std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
20769{
20770	s << "StdVideoDecodeH265ReferenceInfo = {\n";
20771	s << "\tflags = " << value.flags << '\n';
20772	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
20773	s << '}';
20774	return s;
20775}
20776
20777std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
20778{
20779	s << "StdVideoEncodeH265WeightTableFlags = {\n";
20780	s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
20781	s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
20782	s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
20783	s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
20784	s << '}';
20785	return s;
20786}
20787
20788std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
20789{
20790	s << "StdVideoEncodeH265WeightTable = {\n";
20791	s << "\tflags = " << value.flags << '\n';
20792	s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
20793	s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
20794	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';
20795	s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
20796	s << "\tdelta_chroma_weight_l0 = " << '\n';
20797	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
20798		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0[i0]), DE_ARRAY_END(value.delta_chroma_weight_l0[i0])) << '\n';
20799	s << "\tdelta_chroma_offset_l0 = " << '\n';
20800	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
20801		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0[i0]), DE_ARRAY_END(value.delta_chroma_offset_l0[i0])) << '\n';
20802	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';
20803	s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
20804	s << "\tdelta_chroma_weight_l1 = " << '\n';
20805	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
20806		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1[i0]), DE_ARRAY_END(value.delta_chroma_weight_l1[i0])) << '\n';
20807	s << "\tdelta_chroma_offset_l1 = " << '\n';
20808	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_H265_MAX_NUM_LIST_REF ; ++i0)
20809		s << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1[i0]), DE_ARRAY_END(value.delta_chroma_offset_l1[i0])) << '\n';
20810	s << '}';
20811	return s;
20812}
20813
20814std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265LongTermRefPics& value)
20815{
20816	s << "StdVideoEncodeH265LongTermRefPics = {\n";
20817	s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
20818	s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
20819	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';
20820	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';
20821	s << "\tused_by_curr_pic_lt_flag = " << value.used_by_curr_pic_lt_flag << '\n';
20822	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';
20823	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';
20824	s << '}';
20825	return s;
20826}
20827
20828std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
20829{
20830	s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
20831	s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
20832	s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
20833	s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
20834	s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
20835	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
20836	s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
20837	s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
20838	s << "\tcu_chroma_qp_offset_enabled_flag = " << value.cu_chroma_qp_offset_enabled_flag << '\n';
20839	s << "\tdeblocking_filter_override_flag = " << value.deblocking_filter_override_flag << '\n';
20840	s << "\tslice_deblocking_filter_disabled_flag = " << value.slice_deblocking_filter_disabled_flag << '\n';
20841	s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
20842	s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
20843	s << "\treserved = " << value.reserved << '\n';
20844	s << '}';
20845	return s;
20846}
20847
20848std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
20849{
20850	s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
20851	s << "\tflags = " << value.flags << '\n';
20852	s << "\tslice_type = " << value.slice_type << '\n';
20853	s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
20854	s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
20855	s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
20856	s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
20857	s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
20858	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
20859	s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
20860	s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
20861	s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
20862	s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
20863	s << "\tslice_qp_delta = " << value.slice_qp_delta << '\n';
20864	s << "\treserved1 = " << value.reserved1 << '\n';
20865	s << "\tpWeightTable = " << value.pWeightTable << '\n';
20866	s << '}';
20867	return s;
20868}
20869
20870std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceListsInfoFlags& value)
20871{
20872	s << "StdVideoEncodeH265ReferenceListsInfoFlags = {\n";
20873	s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
20874	s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
20875	s << "\treserved = " << value.reserved << '\n';
20876	s << '}';
20877	return s;
20878}
20879
20880std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceListsInfo& value)
20881{
20882	s << "StdVideoEncodeH265ReferenceListsInfo = {\n";
20883	s << "\tflags = " << value.flags << '\n';
20884	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
20885	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
20886	s << "\tRefPicList0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList0))) << '\n';
20887	s << "\tRefPicList1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicList1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicList1))) << '\n';
20888	s << "\tlist_entry_l0 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.list_entry_l0)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.list_entry_l0))) << '\n';
20889	s << "\tlist_entry_l1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.list_entry_l1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.list_entry_l1))) << '\n';
20890	s << '}';
20891	return s;
20892}
20893
20894std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
20895{
20896	s << "StdVideoEncodeH265PictureInfoFlags = {\n";
20897	s << "\tis_reference = " << value.is_reference << '\n';
20898	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
20899	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
20900	s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
20901	s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
20902	s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
20903	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
20904	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
20905	s << "\tslice_temporal_mvp_enabled_flag = " << value.slice_temporal_mvp_enabled_flag << '\n';
20906	s << "\treserved = " << value.reserved << '\n';
20907	s << '}';
20908	return s;
20909}
20910
20911std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
20912{
20913	s << "StdVideoEncodeH265PictureInfo = {\n";
20914	s << "\tflags = " << value.flags << '\n';
20915	s << "\tpic_type = " << value.pic_type << '\n';
20916	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
20917	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
20918	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
20919	s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
20920	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
20921	s << "\tTemporalId = " << value.TemporalId << '\n';
20922	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
20923	s << "\tpRefLists = " << value.pRefLists << '\n';
20924	s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
20925	s << "\tpLongTermRefPics = " << value.pLongTermRefPics << '\n';
20926	s << '}';
20927	return s;
20928}
20929
20930std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
20931{
20932	s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
20933	s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
20934	s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
20935	s << "\treserved = " << value.reserved << '\n';
20936	s << '}';
20937	return s;
20938}
20939
20940std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
20941{
20942	s << "StdVideoEncodeH265ReferenceInfo = {\n";
20943	s << "\tflags = " << value.flags << '\n';
20944	s << "\tpic_type = " << value.pic_type << '\n';
20945	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
20946	s << "\tTemporalId = " << value.TemporalId << '\n';
20947	s << '}';
20948	return s;
20949}
20950
20951std::ostream& operator<< (std::ostream& s, const StdVideoAV1ColorConfigFlags& value)
20952{
20953	s << "StdVideoAV1ColorConfigFlags = {\n";
20954	s << "\tmono_chrome = " << value.mono_chrome << '\n';
20955	s << "\tcolor_range = " << value.color_range << '\n';
20956	s << "\tseparate_uv_delta_q = " << value.separate_uv_delta_q << '\n';
20957	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
20958	s << "\treserved = " << value.reserved << '\n';
20959	s << '}';
20960	return s;
20961}
20962
20963std::ostream& operator<< (std::ostream& s, const StdVideoAV1ColorConfig& value)
20964{
20965	s << "StdVideoAV1ColorConfig = {\n";
20966	s << "\tflags = " << value.flags << '\n';
20967	s << "\tBitDepth = " << value.BitDepth << '\n';
20968	s << "\tsubsampling_x = " << value.subsampling_x << '\n';
20969	s << "\tsubsampling_y = " << value.subsampling_y << '\n';
20970	s << "\treserved1 = " << value.reserved1 << '\n';
20971	s << "\tcolor_primaries = " << value.color_primaries << '\n';
20972	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
20973	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
20974	s << "\tchroma_sample_position = " << value.chroma_sample_position << '\n';
20975	s << '}';
20976	return s;
20977}
20978
20979std::ostream& operator<< (std::ostream& s, const StdVideoAV1TimingInfoFlags& value)
20980{
20981	s << "StdVideoAV1TimingInfoFlags = {\n";
20982	s << "\tequal_picture_interval = " << value.equal_picture_interval << '\n';
20983	s << "\treserved = " << value.reserved << '\n';
20984	s << '}';
20985	return s;
20986}
20987
20988std::ostream& operator<< (std::ostream& s, const StdVideoAV1TimingInfo& value)
20989{
20990	s << "StdVideoAV1TimingInfo = {\n";
20991	s << "\tflags = " << value.flags << '\n';
20992	s << "\tnum_units_in_display_tick = " << value.num_units_in_display_tick << '\n';
20993	s << "\ttime_scale = " << value.time_scale << '\n';
20994	s << "\tnum_ticks_per_picture_minus_1 = " << value.num_ticks_per_picture_minus_1 << '\n';
20995	s << '}';
20996	return s;
20997}
20998
20999std::ostream& operator<< (std::ostream& s, const StdVideoAV1SequenceHeaderFlags& value)
21000{
21001	s << "StdVideoAV1SequenceHeaderFlags = {\n";
21002	s << "\tstill_picture = " << value.still_picture << '\n';
21003	s << "\treduced_still_picture_header = " << value.reduced_still_picture_header << '\n';
21004	s << "\tuse_128x128_superblock = " << value.use_128x128_superblock << '\n';
21005	s << "\tenable_filter_intra = " << value.enable_filter_intra << '\n';
21006	s << "\tenable_intra_edge_filter = " << value.enable_intra_edge_filter << '\n';
21007	s << "\tenable_interintra_compound = " << value.enable_interintra_compound << '\n';
21008	s << "\tenable_masked_compound = " << value.enable_masked_compound << '\n';
21009	s << "\tenable_warped_motion = " << value.enable_warped_motion << '\n';
21010	s << "\tenable_dual_filter = " << value.enable_dual_filter << '\n';
21011	s << "\tenable_order_hint = " << value.enable_order_hint << '\n';
21012	s << "\tenable_jnt_comp = " << value.enable_jnt_comp << '\n';
21013	s << "\tenable_ref_frame_mvs = " << value.enable_ref_frame_mvs << '\n';
21014	s << "\tframe_id_numbers_present_flag = " << value.frame_id_numbers_present_flag << '\n';
21015	s << "\tenable_superres = " << value.enable_superres << '\n';
21016	s << "\tenable_cdef = " << value.enable_cdef << '\n';
21017	s << "\tenable_restoration = " << value.enable_restoration << '\n';
21018	s << "\tfilm_grain_params_present = " << value.film_grain_params_present << '\n';
21019	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
21020	s << "\tinitial_display_delay_present_flag = " << value.initial_display_delay_present_flag << '\n';
21021	s << "\treserved = " << value.reserved << '\n';
21022	s << '}';
21023	return s;
21024}
21025
21026std::ostream& operator<< (std::ostream& s, const StdVideoAV1SequenceHeader& value)
21027{
21028	s << "StdVideoAV1SequenceHeader = {\n";
21029	s << "\tflags = " << value.flags << '\n';
21030	s << "\tseq_profile = " << value.seq_profile << '\n';
21031	s << "\tframe_width_bits_minus_1 = " << value.frame_width_bits_minus_1 << '\n';
21032	s << "\tframe_height_bits_minus_1 = " << value.frame_height_bits_minus_1 << '\n';
21033	s << "\tmax_frame_width_minus_1 = " << value.max_frame_width_minus_1 << '\n';
21034	s << "\tmax_frame_height_minus_1 = " << value.max_frame_height_minus_1 << '\n';
21035	s << "\tdelta_frame_id_length_minus_2 = " << value.delta_frame_id_length_minus_2 << '\n';
21036	s << "\tadditional_frame_id_length_minus_1 = " << value.additional_frame_id_length_minus_1 << '\n';
21037	s << "\torder_hint_bits_minus_1 = " << value.order_hint_bits_minus_1 << '\n';
21038	s << "\tseq_force_integer_mv = " << value.seq_force_integer_mv << '\n';
21039	s << "\tseq_force_screen_content_tools = " << value.seq_force_screen_content_tools << '\n';
21040	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
21041	s << "\tpColorConfig = " << value.pColorConfig << '\n';
21042	s << "\tpTimingInfo = " << value.pTimingInfo << '\n';
21043	s << '}';
21044	return s;
21045}
21046
21047std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopFilterFlags& value)
21048{
21049	s << "StdVideoAV1LoopFilterFlags = {\n";
21050	s << "\tloop_filter_delta_enabled = " << value.loop_filter_delta_enabled << '\n';
21051	s << "\tloop_filter_delta_update = " << value.loop_filter_delta_update << '\n';
21052	s << "\treserved = " << value.reserved << '\n';
21053	s << '}';
21054	return s;
21055}
21056
21057std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopFilter& value)
21058{
21059	s << "StdVideoAV1LoopFilter = {\n";
21060	s << "\tflags = " << value.flags << '\n';
21061	s << "\tloop_filter_level = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.loop_filter_level)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.loop_filter_level))) << '\n';
21062	s << "\tloop_filter_sharpness = " << value.loop_filter_sharpness << '\n';
21063	s << "\tupdate_ref_delta = " << value.update_ref_delta << '\n';
21064	s << "\tloop_filter_ref_deltas = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.loop_filter_ref_deltas), DE_ARRAY_END(value.loop_filter_ref_deltas)) << '\n';
21065	s << "\tupdate_mode_delta = " << value.update_mode_delta << '\n';
21066	s << "\tloop_filter_mode_deltas = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.loop_filter_mode_deltas), DE_ARRAY_END(value.loop_filter_mode_deltas)) << '\n';
21067	s << '}';
21068	return s;
21069}
21070
21071std::ostream& operator<< (std::ostream& s, const StdVideoAV1QuantizationFlags& value)
21072{
21073	s << "StdVideoAV1QuantizationFlags = {\n";
21074	s << "\tusing_qmatrix = " << value.using_qmatrix << '\n';
21075	s << "\tdiff_uv_delta = " << value.diff_uv_delta << '\n';
21076	s << "\treserved = " << value.reserved << '\n';
21077	s << '}';
21078	return s;
21079}
21080
21081std::ostream& operator<< (std::ostream& s, const StdVideoAV1Quantization& value)
21082{
21083	s << "StdVideoAV1Quantization = {\n";
21084	s << "\tflags = " << value.flags << '\n';
21085	s << "\tbase_q_idx = " << value.base_q_idx << '\n';
21086	s << "\tDeltaQYDc = " << value.DeltaQYDc << '\n';
21087	s << "\tDeltaQUDc = " << value.DeltaQUDc << '\n';
21088	s << "\tDeltaQUAc = " << value.DeltaQUAc << '\n';
21089	s << "\tDeltaQVDc = " << value.DeltaQVDc << '\n';
21090	s << "\tDeltaQVAc = " << value.DeltaQVAc << '\n';
21091	s << "\tqm_y = " << value.qm_y << '\n';
21092	s << "\tqm_u = " << value.qm_u << '\n';
21093	s << "\tqm_v = " << value.qm_v << '\n';
21094	s << '}';
21095	return s;
21096}
21097
21098std::ostream& operator<< (std::ostream& s, const StdVideoAV1Segmentation& value)
21099{
21100	s << "StdVideoAV1Segmentation = {\n";
21101	s << "\tFeatureEnabled = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.FeatureEnabled)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.FeatureEnabled))) << '\n';
21102	s << "\tFeatureData = " << '\n';
21103	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_AV1_MAX_SEGMENTS ; ++i0)
21104		s << tcu::formatArray(DE_ARRAY_BEGIN(value.FeatureData[i0]), DE_ARRAY_END(value.FeatureData[i0])) << '\n';
21105	s << '}';
21106	return s;
21107}
21108
21109std::ostream& operator<< (std::ostream& s, const StdVideoAV1TileInfoFlags& value)
21110{
21111	s << "StdVideoAV1TileInfoFlags = {\n";
21112	s << "\tuniform_tile_spacing_flag = " << value.uniform_tile_spacing_flag << '\n';
21113	s << "\treserved = " << value.reserved << '\n';
21114	s << '}';
21115	return s;
21116}
21117
21118std::ostream& operator<< (std::ostream& s, const StdVideoAV1TileInfo& value)
21119{
21120	s << "StdVideoAV1TileInfo = {\n";
21121	s << "\tflags = " << value.flags << '\n';
21122	s << "\tTileCols = " << value.TileCols << '\n';
21123	s << "\tTileRows = " << value.TileRows << '\n';
21124	s << "\tcontext_update_tile_id = " << value.context_update_tile_id << '\n';
21125	s << "\ttile_size_bytes_minus_1 = " << value.tile_size_bytes_minus_1 << '\n';
21126	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
21127	s << "\tpMiColStarts = " << value.pMiColStarts << '\n';
21128	s << "\tpMiRowStarts = " << value.pMiRowStarts << '\n';
21129	s << "\tpWidthInSbsMinus1 = " << value.pWidthInSbsMinus1 << '\n';
21130	s << "\tpHeightInSbsMinus1 = " << value.pHeightInSbsMinus1 << '\n';
21131	s << '}';
21132	return s;
21133}
21134
21135std::ostream& operator<< (std::ostream& s, const StdVideoAV1CDEF& value)
21136{
21137	s << "StdVideoAV1CDEF = {\n";
21138	s << "\tcdef_damping_minus_3 = " << value.cdef_damping_minus_3 << '\n';
21139	s << "\tcdef_bits = " << value.cdef_bits << '\n';
21140	s << "\tcdef_y_pri_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_y_pri_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_y_pri_strength))) << '\n';
21141	s << "\tcdef_y_sec_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_y_sec_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_y_sec_strength))) << '\n';
21142	s << "\tcdef_uv_pri_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_uv_pri_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_uv_pri_strength))) << '\n';
21143	s << "\tcdef_uv_sec_strength = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cdef_uv_sec_strength)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cdef_uv_sec_strength))) << '\n';
21144	s << '}';
21145	return s;
21146}
21147
21148std::ostream& operator<< (std::ostream& s, const StdVideoAV1LoopRestoration& value)
21149{
21150	s << "StdVideoAV1LoopRestoration = {\n";
21151	s << "\tFrameRestorationType = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.FrameRestorationType), DE_ARRAY_END(value.FrameRestorationType)) << '\n';
21152	s << "\tLoopRestorationSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.LoopRestorationSize), DE_ARRAY_END(value.LoopRestorationSize)) << '\n';
21153	s << '}';
21154	return s;
21155}
21156
21157std::ostream& operator<< (std::ostream& s, const StdVideoAV1GlobalMotion& value)
21158{
21159	s << "StdVideoAV1GlobalMotion = {\n";
21160	s << "\tGmType = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.GmType)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.GmType))) << '\n';
21161	s << "\tgm_params = " << '\n';
21162	for(uint32_t i0 = 0 ; i0 < STD_VIDEO_AV1_NUM_REF_FRAMES ; ++i0)
21163		s << tcu::formatArray(DE_ARRAY_BEGIN(value.gm_params[i0]), DE_ARRAY_END(value.gm_params[i0])) << '\n';
21164	s << '}';
21165	return s;
21166}
21167
21168std::ostream& operator<< (std::ostream& s, const StdVideoAV1FilmGrainFlags& value)
21169{
21170	s << "StdVideoAV1FilmGrainFlags = {\n";
21171	s << "\tchroma_scaling_from_luma = " << value.chroma_scaling_from_luma << '\n';
21172	s << "\toverlap_flag = " << value.overlap_flag << '\n';
21173	s << "\tclip_to_restricted_range = " << value.clip_to_restricted_range << '\n';
21174	s << "\tupdate_grain = " << value.update_grain << '\n';
21175	s << "\treserved = " << value.reserved << '\n';
21176	s << '}';
21177	return s;
21178}
21179
21180std::ostream& operator<< (std::ostream& s, const StdVideoAV1FilmGrain& value)
21181{
21182	s << "StdVideoAV1FilmGrain = {\n";
21183	s << "\tflags = " << value.flags << '\n';
21184	s << "\tgrain_scaling_minus_8 = " << value.grain_scaling_minus_8 << '\n';
21185	s << "\tar_coeff_lag = " << value.ar_coeff_lag << '\n';
21186	s << "\tar_coeff_shift_minus_6 = " << value.ar_coeff_shift_minus_6 << '\n';
21187	s << "\tgrain_scale_shift = " << value.grain_scale_shift << '\n';
21188	s << "\tgrain_seed = " << value.grain_seed << '\n';
21189	s << "\tfilm_grain_params_ref_idx = " << value.film_grain_params_ref_idx << '\n';
21190	s << "\tnum_y_points = " << value.num_y_points << '\n';
21191	s << "\tpoint_y_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_y_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_y_value))) << '\n';
21192	s << "\tpoint_y_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_y_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_y_scaling))) << '\n';
21193	s << "\tnum_cb_points = " << value.num_cb_points << '\n';
21194	s << "\tpoint_cb_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cb_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cb_value))) << '\n';
21195	s << "\tpoint_cb_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cb_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cb_scaling))) << '\n';
21196	s << "\tnum_cr_points = " << value.num_cr_points << '\n';
21197	s << "\tpoint_cr_value = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cr_value)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cr_value))) << '\n';
21198	s << "\tpoint_cr_scaling = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.point_cr_scaling)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.point_cr_scaling))) << '\n';
21199	s << "\tar_coeffs_y_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_y_plus_128), DE_ARRAY_END(value.ar_coeffs_y_plus_128)) << '\n';
21200	s << "\tar_coeffs_cb_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_cb_plus_128), DE_ARRAY_END(value.ar_coeffs_cb_plus_128)) << '\n';
21201	s << "\tar_coeffs_cr_plus_128 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ar_coeffs_cr_plus_128), DE_ARRAY_END(value.ar_coeffs_cr_plus_128)) << '\n';
21202	s << "\tcb_mult = " << value.cb_mult << '\n';
21203	s << "\tcb_luma_mult = " << value.cb_luma_mult << '\n';
21204	s << "\tcb_offset = " << value.cb_offset << '\n';
21205	s << "\tcr_mult = " << value.cr_mult << '\n';
21206	s << "\tcr_luma_mult = " << value.cr_luma_mult << '\n';
21207	s << "\tcr_offset = " << value.cr_offset << '\n';
21208	s << '}';
21209	return s;
21210}
21211
21212std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1PictureInfoFlags& value)
21213{
21214	s << "StdVideoDecodeAV1PictureInfoFlags = {\n";
21215	s << "\terror_resilient_mode = " << value.error_resilient_mode << '\n';
21216	s << "\tdisable_cdf_update = " << value.disable_cdf_update << '\n';
21217	s << "\tuse_superres = " << value.use_superres << '\n';
21218	s << "\trender_and_frame_size_different = " << value.render_and_frame_size_different << '\n';
21219	s << "\tallow_screen_content_tools = " << value.allow_screen_content_tools << '\n';
21220	s << "\tis_filter_switchable = " << value.is_filter_switchable << '\n';
21221	s << "\tforce_integer_mv = " << value.force_integer_mv << '\n';
21222	s << "\tframe_size_override_flag = " << value.frame_size_override_flag << '\n';
21223	s << "\tbuffer_removal_time_present_flag = " << value.buffer_removal_time_present_flag << '\n';
21224	s << "\tallow_intrabc = " << value.allow_intrabc << '\n';
21225	s << "\tframe_refs_short_signaling = " << value.frame_refs_short_signaling << '\n';
21226	s << "\tallow_high_precision_mv = " << value.allow_high_precision_mv << '\n';
21227	s << "\tis_motion_mode_switchable = " << value.is_motion_mode_switchable << '\n';
21228	s << "\tuse_ref_frame_mvs = " << value.use_ref_frame_mvs << '\n';
21229	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
21230	s << "\tallow_warped_motion = " << value.allow_warped_motion << '\n';
21231	s << "\treduced_tx_set = " << value.reduced_tx_set << '\n';
21232	s << "\treference_select = " << value.reference_select << '\n';
21233	s << "\tskip_mode_present = " << value.skip_mode_present << '\n';
21234	s << "\tdelta_q_present = " << value.delta_q_present << '\n';
21235	s << "\tdelta_lf_present = " << value.delta_lf_present << '\n';
21236	s << "\tdelta_lf_multi = " << value.delta_lf_multi << '\n';
21237	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
21238	s << "\tsegmentation_update_map = " << value.segmentation_update_map << '\n';
21239	s << "\tsegmentation_temporal_update = " << value.segmentation_temporal_update << '\n';
21240	s << "\tsegmentation_update_data = " << value.segmentation_update_data << '\n';
21241	s << "\tUsesLr = " << value.UsesLr << '\n';
21242	s << "\tusesChromaLr = " << value.usesChromaLr << '\n';
21243	s << "\tapply_grain = " << value.apply_grain << '\n';
21244	s << "\treserved = " << value.reserved << '\n';
21245	s << '}';
21246	return s;
21247}
21248
21249std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1PictureInfo& value)
21250{
21251	s << "StdVideoDecodeAV1PictureInfo = {\n";
21252	s << "\tflags = " << value.flags << '\n';
21253	s << "\tframe_type = " << value.frame_type << '\n';
21254	s << "\tcurrent_frame_id = " << value.current_frame_id << '\n';
21255	s << "\tOrderHint = " << value.OrderHint << '\n';
21256	s << "\tprimary_ref_frame = " << value.primary_ref_frame << '\n';
21257	s << "\trefresh_frame_flags = " << value.refresh_frame_flags << '\n';
21258	s << "\treserved1 = " << value.reserved1 << '\n';
21259	s << "\tinterpolation_filter = " << value.interpolation_filter << '\n';
21260	s << "\tTxMode = " << value.TxMode << '\n';
21261	s << "\tdelta_q_res = " << value.delta_q_res << '\n';
21262	s << "\tdelta_lf_res = " << value.delta_lf_res << '\n';
21263	s << "\tSkipModeFrame = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.SkipModeFrame)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.SkipModeFrame))) << '\n';
21264	s << "\tcoded_denom = " << value.coded_denom << '\n';
21265	s << "\treserved2 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved2)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved2))) << '\n';
21266	s << "\tOrderHints = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.OrderHints)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.OrderHints))) << '\n';
21267	s << "\texpectedFrameId = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.expectedFrameId), DE_ARRAY_END(value.expectedFrameId)) << '\n';
21268	s << "\tpTileInfo = " << value.pTileInfo << '\n';
21269	s << "\tpQuantization = " << value.pQuantization << '\n';
21270	s << "\tpSegmentation = " << value.pSegmentation << '\n';
21271	s << "\tpLoopFilter = " << value.pLoopFilter << '\n';
21272	s << "\tpCDEF = " << value.pCDEF << '\n';
21273	s << "\tpLoopRestoration = " << value.pLoopRestoration << '\n';
21274	s << "\tpGlobalMotion = " << value.pGlobalMotion << '\n';
21275	s << "\tpFilmGrain = " << value.pFilmGrain << '\n';
21276	s << '}';
21277	return s;
21278}
21279
21280std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1ReferenceInfoFlags& value)
21281{
21282	s << "StdVideoDecodeAV1ReferenceInfoFlags = {\n";
21283	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
21284	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
21285	s << "\treserved = " << value.reserved << '\n';
21286	s << '}';
21287	return s;
21288}
21289
21290std::ostream& operator<< (std::ostream& s, const StdVideoDecodeAV1ReferenceInfo& value)
21291{
21292	s << "StdVideoDecodeAV1ReferenceInfo = {\n";
21293	s << "\tflags = " << value.flags << '\n';
21294	s << "\tframe_type = " << value.frame_type << '\n';
21295	s << "\tRefFrameSignBias = " << value.RefFrameSignBias << '\n';
21296	s << "\tOrderHint = " << value.OrderHint << '\n';
21297	s << "\tSavedOrderHints = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.SavedOrderHints)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.SavedOrderHints))) << '\n';
21298	s << '}';
21299	return s;
21300}
21301
21302std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1ExtensionHeader& value)
21303{
21304	s << "StdVideoEncodeAV1ExtensionHeader = {\n";
21305	s << "\ttemporal_id = " << value.temporal_id << '\n';
21306	s << "\tspatial_id = " << value.spatial_id << '\n';
21307	s << '}';
21308	return s;
21309}
21310
21311std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1DecoderModelInfo& value)
21312{
21313	s << "StdVideoEncodeAV1DecoderModelInfo = {\n";
21314	s << "\tbuffer_delay_length_minus_1 = " << value.buffer_delay_length_minus_1 << '\n';
21315	s << "\tbuffer_removal_time_length_minus_1 = " << value.buffer_removal_time_length_minus_1 << '\n';
21316	s << "\tframe_presentation_time_length_minus_1 = " << value.frame_presentation_time_length_minus_1 << '\n';
21317	s << "\treserved1 = " << value.reserved1 << '\n';
21318	s << "\tnum_units_in_decoding_tick = " << value.num_units_in_decoding_tick << '\n';
21319	s << '}';
21320	return s;
21321}
21322
21323std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1OperatingPointInfoFlags& value)
21324{
21325	s << "StdVideoEncodeAV1OperatingPointInfoFlags = {\n";
21326	s << "\tdecoder_model_present_for_this_op = " << value.decoder_model_present_for_this_op << '\n';
21327	s << "\tlow_delay_mode_flag = " << value.low_delay_mode_flag << '\n';
21328	s << "\tinitial_display_delay_present_for_this_op = " << value.initial_display_delay_present_for_this_op << '\n';
21329	s << "\treserved = " << value.reserved << '\n';
21330	s << '}';
21331	return s;
21332}
21333
21334std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1OperatingPointInfo& value)
21335{
21336	s << "StdVideoEncodeAV1OperatingPointInfo = {\n";
21337	s << "\tflags = " << value.flags << '\n';
21338	s << "\toperating_point_idc = " << value.operating_point_idc << '\n';
21339	s << "\tseq_level_idx = " << value.seq_level_idx << '\n';
21340	s << "\tseq_tier = " << value.seq_tier << '\n';
21341	s << "\tdecoder_buffer_delay = " << value.decoder_buffer_delay << '\n';
21342	s << "\tencoder_buffer_delay = " << value.encoder_buffer_delay << '\n';
21343	s << "\tinitial_display_delay_minus_1 = " << value.initial_display_delay_minus_1 << '\n';
21344	s << '}';
21345	return s;
21346}
21347
21348std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1PictureInfoFlags& value)
21349{
21350	s << "StdVideoEncodeAV1PictureInfoFlags = {\n";
21351	s << "\terror_resilient_mode = " << value.error_resilient_mode << '\n';
21352	s << "\tdisable_cdf_update = " << value.disable_cdf_update << '\n';
21353	s << "\tuse_superres = " << value.use_superres << '\n';
21354	s << "\trender_and_frame_size_different = " << value.render_and_frame_size_different << '\n';
21355	s << "\tallow_screen_content_tools = " << value.allow_screen_content_tools << '\n';
21356	s << "\tis_filter_switchable = " << value.is_filter_switchable << '\n';
21357	s << "\tforce_integer_mv = " << value.force_integer_mv << '\n';
21358	s << "\tframe_size_override_flag = " << value.frame_size_override_flag << '\n';
21359	s << "\tbuffer_removal_time_present_flag = " << value.buffer_removal_time_present_flag << '\n';
21360	s << "\tallow_intrabc = " << value.allow_intrabc << '\n';
21361	s << "\tframe_refs_short_signaling = " << value.frame_refs_short_signaling << '\n';
21362	s << "\tallow_high_precision_mv = " << value.allow_high_precision_mv << '\n';
21363	s << "\tis_motion_mode_switchable = " << value.is_motion_mode_switchable << '\n';
21364	s << "\tuse_ref_frame_mvs = " << value.use_ref_frame_mvs << '\n';
21365	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
21366	s << "\tallow_warped_motion = " << value.allow_warped_motion << '\n';
21367	s << "\treduced_tx_set = " << value.reduced_tx_set << '\n';
21368	s << "\tskip_mode_present = " << value.skip_mode_present << '\n';
21369	s << "\tdelta_q_present = " << value.delta_q_present << '\n';
21370	s << "\tdelta_lf_present = " << value.delta_lf_present << '\n';
21371	s << "\tdelta_lf_multi = " << value.delta_lf_multi << '\n';
21372	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
21373	s << "\tsegmentation_update_map = " << value.segmentation_update_map << '\n';
21374	s << "\tsegmentation_temporal_update = " << value.segmentation_temporal_update << '\n';
21375	s << "\tsegmentation_update_data = " << value.segmentation_update_data << '\n';
21376	s << "\tUsesLr = " << value.UsesLr << '\n';
21377	s << "\tusesChromaLr = " << value.usesChromaLr << '\n';
21378	s << "\tshow_frame = " << value.show_frame << '\n';
21379	s << "\tshowable_frame = " << value.showable_frame << '\n';
21380	s << "\treserved = " << value.reserved << '\n';
21381	s << '}';
21382	return s;
21383}
21384
21385std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1PictureInfo& value)
21386{
21387	s << "StdVideoEncodeAV1PictureInfo = {\n";
21388	s << "\tflags = " << value.flags << '\n';
21389	s << "\tframe_type = " << value.frame_type << '\n';
21390	s << "\tframe_presentation_time = " << value.frame_presentation_time << '\n';
21391	s << "\tcurrent_frame_id = " << value.current_frame_id << '\n';
21392	s << "\torder_hint = " << value.order_hint << '\n';
21393	s << "\tprimary_ref_frame = " << value.primary_ref_frame << '\n';
21394	s << "\trefresh_frame_flags = " << value.refresh_frame_flags << '\n';
21395	s << "\tcoded_denom = " << value.coded_denom << '\n';
21396	s << "\trender_width_minus_1 = " << value.render_width_minus_1 << '\n';
21397	s << "\trender_height_minus_1 = " << value.render_height_minus_1 << '\n';
21398	s << "\tinterpolation_filter = " << value.interpolation_filter << '\n';
21399	s << "\tTxMode = " << value.TxMode << '\n';
21400	s << "\tdelta_q_res = " << value.delta_q_res << '\n';
21401	s << "\tdelta_lf_res = " << value.delta_lf_res << '\n';
21402	s << "\tref_order_hint = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ref_order_hint)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ref_order_hint))) << '\n';
21403	s << "\tref_frame_idx = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ref_frame_idx), DE_ARRAY_END(value.ref_frame_idx)) << '\n';
21404	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
21405	s << "\tdelta_frame_id_minus_1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_frame_id_minus_1), DE_ARRAY_END(value.delta_frame_id_minus_1)) << '\n';
21406	s << "\tpTileInfo = " << value.pTileInfo << '\n';
21407	s << "\tpQuantization = " << value.pQuantization << '\n';
21408	s << "\tpSegmentation = " << value.pSegmentation << '\n';
21409	s << "\tpLoopFilter = " << value.pLoopFilter << '\n';
21410	s << "\tpCDEF = " << value.pCDEF << '\n';
21411	s << "\tpLoopRestoration = " << value.pLoopRestoration << '\n';
21412	s << "\tpGlobalMotion = " << value.pGlobalMotion << '\n';
21413	s << "\tpExtensionHeader = " << value.pExtensionHeader << '\n';
21414	s << "\tpBufferRemovalTimes = " << value.pBufferRemovalTimes << '\n';
21415	s << '}';
21416	return s;
21417}
21418
21419std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1ReferenceInfoFlags& value)
21420{
21421	s << "StdVideoEncodeAV1ReferenceInfoFlags = {\n";
21422	s << "\tdisable_frame_end_update_cdf = " << value.disable_frame_end_update_cdf << '\n';
21423	s << "\tsegmentation_enabled = " << value.segmentation_enabled << '\n';
21424	s << "\treserved = " << value.reserved << '\n';
21425	s << '}';
21426	return s;
21427}
21428
21429std::ostream& operator<< (std::ostream& s, const StdVideoEncodeAV1ReferenceInfo& value)
21430{
21431	s << "StdVideoEncodeAV1ReferenceInfo = {\n";
21432	s << "\tflags = " << value.flags << '\n';
21433	s << "\tRefFrameId = " << value.RefFrameId << '\n';
21434	s << "\tframe_type = " << value.frame_type << '\n';
21435	s << "\tOrderHint = " << value.OrderHint << '\n';
21436	s << "\treserved1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.reserved1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.reserved1))) << '\n';
21437	s << "\tpExtensionHeader = " << value.pExtensionHeader << '\n';
21438	s << '}';
21439	return s;
21440}
21441