1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 */
4template<> const char*	getTypeName<VkBuffer>							(void) { return "VkBuffer";							}
5template<> const char*	getTypeName<VkImage>							(void) { return "VkImage";							}
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<VkSemaphore>						(void) { return "VkSemaphore";						}
11template<> const char*	getTypeName<VkCommandBuffer>					(void) { return "VkCommandBuffer";					}
12template<> const char*	getTypeName<VkFence>							(void) { return "VkFence";							}
13template<> const char*	getTypeName<VkDeviceMemory>						(void) { return "VkDeviceMemory";					}
14template<> const char*	getTypeName<VkEvent>							(void) { return "VkEvent";							}
15template<> const char*	getTypeName<VkQueryPool>						(void) { return "VkQueryPool";						}
16template<> const char*	getTypeName<VkBufferView>						(void) { return "VkBufferView";						}
17template<> const char*	getTypeName<VkImageView>						(void) { return "VkImageView";						}
18template<> const char*	getTypeName<VkShaderModule>						(void) { return "VkShaderModule";					}
19template<> const char*	getTypeName<VkPipelineCache>					(void) { return "VkPipelineCache";					}
20template<> const char*	getTypeName<VkPipelineLayout>					(void) { return "VkPipelineLayout";					}
21template<> const char*	getTypeName<VkPipeline>							(void) { return "VkPipeline";						}
22template<> const char*	getTypeName<VkRenderPass>						(void) { return "VkRenderPass";						}
23template<> const char*	getTypeName<VkDescriptorSetLayout>				(void) { return "VkDescriptorSetLayout";			}
24template<> const char*	getTypeName<VkSampler>							(void) { return "VkSampler";						}
25template<> const char*	getTypeName<VkDescriptorSet>					(void) { return "VkDescriptorSet";					}
26template<> const char*	getTypeName<VkDescriptorPool>					(void) { return "VkDescriptorPool";					}
27template<> const char*	getTypeName<VkFramebuffer>						(void) { return "VkFramebuffer";					}
28template<> const char*	getTypeName<VkCommandPool>						(void) { return "VkCommandPool";					}
29template<> const char*	getTypeName<VkSamplerYcbcrConversion>			(void) { return "VkSamplerYcbcrConversion";			}
30template<> const char*	getTypeName<VkDescriptorUpdateTemplate>			(void) { return "VkDescriptorUpdateTemplate";		}
31template<> const char*	getTypeName<VkSurfaceKHR>						(void) { return "VkSurfaceKHR";						}
32template<> const char*	getTypeName<VkSwapchainKHR>						(void) { return "VkSwapchainKHR";					}
33template<> const char*	getTypeName<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
34template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
35template<> const char*	getTypeName<VkDeferredOperationKHR>				(void) { return "VkDeferredOperationKHR";			}
36template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
37template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
38template<> const char*	getTypeName<VkValidationCacheEXT>				(void) { return "VkValidationCacheEXT";				}
39template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
40template<> const char*	getTypeName<VkPerformanceConfigurationINTEL>	(void) { return "VkPerformanceConfigurationINTEL";	}
41template<> const char*	getTypeName<VkIndirectCommandsLayoutNV>			(void) { return "VkIndirectCommandsLayoutNV";		}
42template<> const char*	getTypeName<VkPrivateDataSlotEXT>				(void) { return "VkPrivateDataSlotEXT";				}
43template<> const char*	getTypeName<VkAccelerationStructureKHR>			(void) { return "VkAccelerationStructureKHR";		}
44template<> const char*	getTypeName<VkVideoSessionKHR>					(void) { return "VkVideoSessionKHR";				}
45template<> const char*	getTypeName<VkVideoSessionParametersKHR>		(void) { return "VkVideoSessionParametersKHR";		}
46
47namespace pt
48{
49std::ostream& operator<< (std::ostream& s, XlibDisplayPtr				v) { return s << tcu::toHex(v.internal); }
50std::ostream& operator<< (std::ostream& s, XlibWindow					v) { return s << tcu::toHex(v.internal); }
51std::ostream& operator<< (std::ostream& s, XlibVisualID					v) { return s << tcu::toHex(v.internal); }
52std::ostream& operator<< (std::ostream& s, XcbConnectionPtr				v) { return s << tcu::toHex(v.internal); }
53std::ostream& operator<< (std::ostream& s, XcbWindow					v) { return s << tcu::toHex(v.internal); }
54std::ostream& operator<< (std::ostream& s, XcbVisualid					v) { return s << tcu::toHex(v.internal); }
55std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr			v) { return s << tcu::toHex(v.internal); }
56std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr			v) { return s << tcu::toHex(v.internal); }
57std::ostream& operator<< (std::ostream& s, MirConnectionPtr				v) { return s << tcu::toHex(v.internal); }
58std::ostream& operator<< (std::ostream& s, MirSurfacePtr				v) { return s << tcu::toHex(v.internal); }
59std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr		v) { return s << tcu::toHex(v.internal); }
60std::ostream& operator<< (std::ostream& s, Win32InstanceHandle			v) { return s << tcu::toHex(v.internal); }
61std::ostream& operator<< (std::ostream& s, Win32WindowHandle			v) { return s << tcu::toHex(v.internal); }
62std::ostream& operator<< (std::ostream& s, Win32Handle					v) { return s << tcu::toHex(v.internal); }
63std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr	v) { return s << tcu::toHex(v.internal); }
64std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr		v) { return s << tcu::toHex(v.internal); }
65std::ostream& operator<< (std::ostream& s, Win32MonitorHandle			v) { return s << tcu::toHex(v.internal); }
66std::ostream& operator<< (std::ostream& s, Win32LPCWSTR					v) { return s << tcu::toHex(v.internal); }
67std::ostream& operator<< (std::ostream& s, RROutput						v) { return s << tcu::toHex(v.internal); }
68std::ostream& operator<< (std::ostream& s, zx_handle_t					v) { return s << tcu::toHex(v.internal); }
69std::ostream& operator<< (std::ostream& s, GgpFrameToken				v) { return s << tcu::toHex(v.internal); }
70std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor			v) { return s << tcu::toHex(v.internal); }
71std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
72}
73
74const char* getResultName (VkResult value)
75{
76	switch (value)
77	{
78		case VK_SUCCESS:											return "VK_SUCCESS";
79		case VK_NOT_READY:											return "VK_NOT_READY";
80		case VK_TIMEOUT:											return "VK_TIMEOUT";
81		case VK_EVENT_SET:											return "VK_EVENT_SET";
82		case VK_EVENT_RESET:										return "VK_EVENT_RESET";
83		case VK_INCOMPLETE:											return "VK_INCOMPLETE";
84		case VK_ERROR_OUT_OF_HOST_MEMORY:							return "VK_ERROR_OUT_OF_HOST_MEMORY";
85		case VK_ERROR_OUT_OF_DEVICE_MEMORY:							return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
86		case VK_ERROR_INITIALIZATION_FAILED:						return "VK_ERROR_INITIALIZATION_FAILED";
87		case VK_ERROR_DEVICE_LOST:									return "VK_ERROR_DEVICE_LOST";
88		case VK_ERROR_MEMORY_MAP_FAILED:							return "VK_ERROR_MEMORY_MAP_FAILED";
89		case VK_ERROR_LAYER_NOT_PRESENT:							return "VK_ERROR_LAYER_NOT_PRESENT";
90		case VK_ERROR_EXTENSION_NOT_PRESENT:						return "VK_ERROR_EXTENSION_NOT_PRESENT";
91		case VK_ERROR_FEATURE_NOT_PRESENT:							return "VK_ERROR_FEATURE_NOT_PRESENT";
92		case VK_ERROR_INCOMPATIBLE_DRIVER:							return "VK_ERROR_INCOMPATIBLE_DRIVER";
93		case VK_ERROR_TOO_MANY_OBJECTS:								return "VK_ERROR_TOO_MANY_OBJECTS";
94		case VK_ERROR_FORMAT_NOT_SUPPORTED:							return "VK_ERROR_FORMAT_NOT_SUPPORTED";
95		case VK_ERROR_FRAGMENTED_POOL:								return "VK_ERROR_FRAGMENTED_POOL";
96		case VK_ERROR_UNKNOWN:										return "VK_ERROR_UNKNOWN";
97		case VK_ERROR_OUT_OF_POOL_MEMORY:							return "VK_ERROR_OUT_OF_POOL_MEMORY";
98		case VK_ERROR_INVALID_EXTERNAL_HANDLE:						return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
99		case VK_ERROR_FRAGMENTATION:								return "VK_ERROR_FRAGMENTATION";
100		case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:				return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
101		case VK_ERROR_SURFACE_LOST_KHR:								return "VK_ERROR_SURFACE_LOST_KHR";
102		case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:						return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
103		case VK_SUBOPTIMAL_KHR:										return "VK_SUBOPTIMAL_KHR";
104		case VK_ERROR_OUT_OF_DATE_KHR:								return "VK_ERROR_OUT_OF_DATE_KHR";
105		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
106		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
107		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
108		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
109		case VK_ERROR_NOT_PERMITTED_EXT:							return "VK_ERROR_NOT_PERMITTED_EXT";
110		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
111		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
112		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
113		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
114		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
115		case VK_PIPELINE_COMPILE_REQUIRED_EXT:						return "VK_PIPELINE_COMPILE_REQUIRED_EXT";
116		case VK_RESULT_MAX_ENUM:									return "VK_RESULT_MAX_ENUM";
117		default:													return DE_NULL;
118	}
119}
120
121const char* getStructureTypeName (VkStructureType value)
122{
123	switch (value)
124	{
125		case VK_STRUCTURE_TYPE_APPLICATION_INFO:												return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
126		case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
127		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
128		case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
129		case VK_STRUCTURE_TYPE_SUBMIT_INFO:														return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
130		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:											return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
131		case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:												return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
132		case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:												return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
133		case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
134		case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
135		case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:												return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
136		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:											return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
137		case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
138		case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:											return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
139		case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:												return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
140		case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:											return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
141		case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
142		case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
143		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
144		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
145		case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:						return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
146		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
147		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
148		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:						return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
149		case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
150		case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:						return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
151		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
152		case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
153		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
154		case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
155		case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:										return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
156		case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:												return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
157		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:								return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
158		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:										return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
159		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
160		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:											return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
161		case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:												return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
162		case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:											return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
163		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:											return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
164		case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
165		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:									return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
166		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:									return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
167		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:										return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
168		case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:											return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
169		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:											return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
170		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:											return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
171		case VK_STRUCTURE_TYPE_MEMORY_BARRIER:													return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
172		case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
173		case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
174		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
175		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:											return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
176		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:											return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
177		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
178		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:									return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
179		case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:									return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
180		case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:										return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
181		case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
182		case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:							return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
183		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:										return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
184		case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
185		case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:							return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
186		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:								return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
187		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
188		case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
189		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
190		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:								return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
191		case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:							return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
192		case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:											return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
193		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:								return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
194		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:										return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
195		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
196		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:												return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
197		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
198		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
199		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:										return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
200		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
201		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:								return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
202		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
203		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
204		case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:					return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
205		case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
206		case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:			return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
207		case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:								return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
208		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
209		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
210		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
211		case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:											return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
212		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
213		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
214		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:												return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
215		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:							return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
216		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:									return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
217		case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:									return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
218		case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:							return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
219		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
220		case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:				return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
221		case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:							return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
222		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
223		case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:								return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
224		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
225		case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
226		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:									return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
227		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
228		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
229		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
230		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
231		case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:										return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
232		case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
233		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
234		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
235		case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:									return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
236		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
237		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:									return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
238		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
239		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
240		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
241		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
242		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
243		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:									return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
244		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:										return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
245		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:											return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
246		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:											return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
247		case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:											return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
248		case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:										return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
249		case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:												return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
250		case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:												return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
251		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
252		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
253		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
254		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
255		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
256		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:					return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
257		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
258		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
259		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
260		case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
261		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
262		case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:						return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
263		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
264		case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:									return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
265		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
266		case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:								return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
267		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
268		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
269		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:								return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
270		case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:								return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
271		case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:								return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
272		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
273		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
274		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
275		case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:								return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
276		case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:							return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
277		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
278		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
279		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
280		case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:										return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
281		case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:									return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
282		case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:												return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
283		case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:											return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
284		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
285		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:										return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
286		case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:						return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
287		case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:						return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
288		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:						return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
289		case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
290		case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:												return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
291		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:							return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
292		case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
293		case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:							return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
294		case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:										return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
295		case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:									return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
296		case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
297		case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
298		case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
299		case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
300		case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
301		case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:										return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
302		case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
303		case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
304		case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
305		case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
306		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
307		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
308		case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
309		case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
310		case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
311		case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
312		case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
313		case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
314		case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
315		case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
316		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
317		case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
318		case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
319		case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
320		case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:									return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
321		case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
322		case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
323		case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:												return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
324		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
325		case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:										return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
326		case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
327		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:											return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
328		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
329		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
330		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
331		case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:					return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
332		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
333		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
334		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
335		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
336		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:								return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
337		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
338		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT";
339		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
340		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
341		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:							return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
342		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
343		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
344		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:					return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
345		case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
346		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
347		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT";
348		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
349		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:										return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
350		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
351		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
352		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
353		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
354		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:						return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
355		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:						return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
356		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
357		case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
358		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:									return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
359		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
360		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:								return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
361		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:						return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
362		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:											return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
363		case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:										return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
364		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT";
365		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:									return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
366		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
367		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
368		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
369		case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:								return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
370		case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
371		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
372		case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:										return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
373		case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
374		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:						return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
375		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:							return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
376		case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:							return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
377		case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:										return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
378		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
379		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:									return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
380		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
381		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
382		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:		return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
383		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
384		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
385		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:												return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
386		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
387		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:										return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
388		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:											return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
389		case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:											return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
390		case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:											return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
391		case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
392		case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:										return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
393		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
394		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
395		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
396		case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
397		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
398		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:		return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
399		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
400		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
401		case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:												return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
402		case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:							return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
403		case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
404		case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:								return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
405		case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
406		case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:										return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
407		case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:											return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
408		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
409		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
410		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
411		case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:								return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
412		case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:									return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
413		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:											return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
414		case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:								return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
415		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
416		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:										return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
417		case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:											return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
418		case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
419		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
420		case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:									return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
421		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:										return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
422		case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:								return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
423		case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:										return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
424		case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:									return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
425		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
426		case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:									return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
427		case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:											return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
428		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:							return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
429		case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
430		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:							return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
431		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:						return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
432		case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:				return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
433		case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:						return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
434		case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:					return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
435		case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:											return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
436		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT";
437		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT";
438		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:					return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT";
439		case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT";
440		case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:										return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
441		case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:						return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
442		case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
443		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
444		case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:										return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
445		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
446		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
447		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
448		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
449		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:					return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
450		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
451		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
452		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
453		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
454		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
455		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
456		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
457		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:							return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
458		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:					return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
459		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:					return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
460		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
461		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
462		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
463		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:						return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
464		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
465		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
466		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
467		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
468		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
469		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
470		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:				return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
471		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
472		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
473		case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:							return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
474		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
475		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
476		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
477		case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
478		case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
479		case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
480		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
481		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
482		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";
483		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
484		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
485		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";
486		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:								return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
487		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
488		case VK_STRUCTURE_TYPE_GEOMETRY_NV:														return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
489		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:											return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
490		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
491		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:						return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
492		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:					return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
493		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
494		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
495		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
496		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:									return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
497		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
498		case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:		return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
499		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
500		case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
501		case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:					return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT";
502		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:								return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
503		case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:								return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
504		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
505		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
506		case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:						return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
507		case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:									return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
508		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
509		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
510		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT";
511		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:			return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
512		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:				return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
513		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:									return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
514		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
515		case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:								return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
516		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:					return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
517		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
518		case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
519		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
520		case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:											return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
521		case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT";
522		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
523		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
524		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
525		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV";
526		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
527		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:		return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
528		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
529		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
530		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
531		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
532		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:					return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
533		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:							return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
534		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:									return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
535		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:							return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
536		case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:									return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
537		case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:					return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
538		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
539		case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:						return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
540		case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:					return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
541		case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
542		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR";
543		case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:									return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
544		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
545		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
546		case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
547		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT";
548		case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:	return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT";
549		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT";
550		case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:						return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
551		case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:			return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
552		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
553		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
554		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
555		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
556		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
557		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
558		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
559		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
560		case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
561		case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:								return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
562		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
563		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
564		case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
565		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT:								return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT";
566		case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:											return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
567		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
568		case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:								return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
569		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
570		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
571		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:				return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
572		case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:						return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
573		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
574		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
575		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:							return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
576		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:					return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
577		case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:					return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
578		case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
579		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
580		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
581		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
582		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
583		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
584		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
585		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
586		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:												return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
587		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
588		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:									return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
589		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
590		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:					return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
591		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT";
592		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
593		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
594		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
595		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
596		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
597		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:										return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
598		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
599		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
600		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
601		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:				return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
602		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
603		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT";
604		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:		return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
605		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:							return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
606		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
607		case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
608		case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:							return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
609		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
610		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
611		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
612		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
613		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
614		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
615		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT";
616		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT";
617		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT";
618		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT";
619		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
620		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
621		case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:											return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR";
622		case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR:										return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR";
623		case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR:										return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR";
624		case VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR:												return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR";
625		case VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR:												return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR";
626		case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR:										return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR";
627		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR:									return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR";
628		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR";
629		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
630		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:											return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
631		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR";
632		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
633		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
634		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";
635		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";
636		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
637		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
638		case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:								return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
639		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT";
640		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
641		case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR";
642		case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR";
643		case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR";
644		case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR:									return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR";
645		case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR:											return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR";
646		case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR:										return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR";
647		case VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR:												return "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR";
648		case VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR:												return "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR";
649		case VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR:												return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR";
650		case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR:											return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR";
651		case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR:												return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR";
652		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
653		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
654		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
655		case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:						return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
656		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
657		case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:							return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
658		case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:						return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
659		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
660		case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:							return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
661		case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:							return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
662		case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
663		case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:						return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
664		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
665		case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:									return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
666		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
667		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:							return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
668		case VK_STRUCTURE_TYPE_MAX_ENUM:														return "VK_STRUCTURE_TYPE_MAX_ENUM";
669		default:																				return DE_NULL;
670	}
671}
672
673const char* getImageLayoutName (VkImageLayout value)
674{
675	switch (value)
676	{
677		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
678		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
679		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
680		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
681		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
682		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
683		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
684		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
685		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
686		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
687		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
688		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
689		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
690		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
691		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
692		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
693		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
694		case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
695		case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
696		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
697		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
698		case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:							return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
699		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
700		case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV:						return "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV";
701		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
702		case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR:							return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR";
703		case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR:						return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR";
704		case VK_IMAGE_LAYOUT_MAX_ENUM:										return "VK_IMAGE_LAYOUT_MAX_ENUM";
705		default:															return DE_NULL;
706	}
707}
708
709const char* getObjectTypeName (VkObjectType value)
710{
711	switch (value)
712	{
713		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
714		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
715		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
716		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
717		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
718		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
719		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
720		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
721		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
722		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
723		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
724		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
725		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
726		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
727		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
728		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
729		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
730		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
731		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
732		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
733		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
734		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
735		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
736		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
737		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
738		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
739		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
740		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
741		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
742		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
743		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
744		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
745		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
746		case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:					return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
747		case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:		return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
748		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
749		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
750		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
751		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
752		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
753		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
754		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
755		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT:				return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT";
756		case VK_OBJECT_TYPE_MAX_ENUM:							return "VK_OBJECT_TYPE_MAX_ENUM";
757		default:												return DE_NULL;
758	}
759}
760
761const char* getVendorIdName (VkVendorId value)
762{
763	switch (value)
764	{
765		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
766		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
767		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
768		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
769		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
770		case VK_VENDOR_ID_POCL:		return "VK_VENDOR_ID_POCL";
771		case VK_VENDOR_ID_MAX_ENUM:	return "VK_VENDOR_ID_MAX_ENUM";
772		default:					return DE_NULL;
773	}
774}
775
776const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
777{
778	switch (value)
779	{
780		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:		return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
781		case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM:	return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
782		default:										return DE_NULL;
783	}
784}
785
786const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
787{
788	switch (value)
789	{
790		case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:	return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
791		case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:		return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
792		case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:		return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
793		case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:		return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
794		case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:	return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
795		case VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:	return "VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM";
796		default:									return DE_NULL;
797	}
798}
799
800const char* getInternalAllocationTypeName (VkInternalAllocationType value)
801{
802	switch (value)
803	{
804		case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:	return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
805		case VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:		return "VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM";
806		default:										return DE_NULL;
807	}
808}
809
810const char* getFormatName (VkFormat value)
811{
812	switch (value)
813	{
814		case VK_FORMAT_UNDEFINED:										return "VK_FORMAT_UNDEFINED";
815		case VK_FORMAT_R4G4_UNORM_PACK8:								return "VK_FORMAT_R4G4_UNORM_PACK8";
816		case VK_FORMAT_R4G4B4A4_UNORM_PACK16:							return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
817		case VK_FORMAT_B4G4R4A4_UNORM_PACK16:							return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
818		case VK_FORMAT_R5G6B5_UNORM_PACK16:								return "VK_FORMAT_R5G6B5_UNORM_PACK16";
819		case VK_FORMAT_B5G6R5_UNORM_PACK16:								return "VK_FORMAT_B5G6R5_UNORM_PACK16";
820		case VK_FORMAT_R5G5B5A1_UNORM_PACK16:							return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
821		case VK_FORMAT_B5G5R5A1_UNORM_PACK16:							return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
822		case VK_FORMAT_A1R5G5B5_UNORM_PACK16:							return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
823		case VK_FORMAT_R8_UNORM:										return "VK_FORMAT_R8_UNORM";
824		case VK_FORMAT_R8_SNORM:										return "VK_FORMAT_R8_SNORM";
825		case VK_FORMAT_R8_USCALED:										return "VK_FORMAT_R8_USCALED";
826		case VK_FORMAT_R8_SSCALED:										return "VK_FORMAT_R8_SSCALED";
827		case VK_FORMAT_R8_UINT:											return "VK_FORMAT_R8_UINT";
828		case VK_FORMAT_R8_SINT:											return "VK_FORMAT_R8_SINT";
829		case VK_FORMAT_R8_SRGB:											return "VK_FORMAT_R8_SRGB";
830		case VK_FORMAT_R8G8_UNORM:										return "VK_FORMAT_R8G8_UNORM";
831		case VK_FORMAT_R8G8_SNORM:										return "VK_FORMAT_R8G8_SNORM";
832		case VK_FORMAT_R8G8_USCALED:									return "VK_FORMAT_R8G8_USCALED";
833		case VK_FORMAT_R8G8_SSCALED:									return "VK_FORMAT_R8G8_SSCALED";
834		case VK_FORMAT_R8G8_UINT:										return "VK_FORMAT_R8G8_UINT";
835		case VK_FORMAT_R8G8_SINT:										return "VK_FORMAT_R8G8_SINT";
836		case VK_FORMAT_R8G8_SRGB:										return "VK_FORMAT_R8G8_SRGB";
837		case VK_FORMAT_R8G8B8_UNORM:									return "VK_FORMAT_R8G8B8_UNORM";
838		case VK_FORMAT_R8G8B8_SNORM:									return "VK_FORMAT_R8G8B8_SNORM";
839		case VK_FORMAT_R8G8B8_USCALED:									return "VK_FORMAT_R8G8B8_USCALED";
840		case VK_FORMAT_R8G8B8_SSCALED:									return "VK_FORMAT_R8G8B8_SSCALED";
841		case VK_FORMAT_R8G8B8_UINT:										return "VK_FORMAT_R8G8B8_UINT";
842		case VK_FORMAT_R8G8B8_SINT:										return "VK_FORMAT_R8G8B8_SINT";
843		case VK_FORMAT_R8G8B8_SRGB:										return "VK_FORMAT_R8G8B8_SRGB";
844		case VK_FORMAT_B8G8R8_UNORM:									return "VK_FORMAT_B8G8R8_UNORM";
845		case VK_FORMAT_B8G8R8_SNORM:									return "VK_FORMAT_B8G8R8_SNORM";
846		case VK_FORMAT_B8G8R8_USCALED:									return "VK_FORMAT_B8G8R8_USCALED";
847		case VK_FORMAT_B8G8R8_SSCALED:									return "VK_FORMAT_B8G8R8_SSCALED";
848		case VK_FORMAT_B8G8R8_UINT:										return "VK_FORMAT_B8G8R8_UINT";
849		case VK_FORMAT_B8G8R8_SINT:										return "VK_FORMAT_B8G8R8_SINT";
850		case VK_FORMAT_B8G8R8_SRGB:										return "VK_FORMAT_B8G8R8_SRGB";
851		case VK_FORMAT_R8G8B8A8_UNORM:									return "VK_FORMAT_R8G8B8A8_UNORM";
852		case VK_FORMAT_R8G8B8A8_SNORM:									return "VK_FORMAT_R8G8B8A8_SNORM";
853		case VK_FORMAT_R8G8B8A8_USCALED:								return "VK_FORMAT_R8G8B8A8_USCALED";
854		case VK_FORMAT_R8G8B8A8_SSCALED:								return "VK_FORMAT_R8G8B8A8_SSCALED";
855		case VK_FORMAT_R8G8B8A8_UINT:									return "VK_FORMAT_R8G8B8A8_UINT";
856		case VK_FORMAT_R8G8B8A8_SINT:									return "VK_FORMAT_R8G8B8A8_SINT";
857		case VK_FORMAT_R8G8B8A8_SRGB:									return "VK_FORMAT_R8G8B8A8_SRGB";
858		case VK_FORMAT_B8G8R8A8_UNORM:									return "VK_FORMAT_B8G8R8A8_UNORM";
859		case VK_FORMAT_B8G8R8A8_SNORM:									return "VK_FORMAT_B8G8R8A8_SNORM";
860		case VK_FORMAT_B8G8R8A8_USCALED:								return "VK_FORMAT_B8G8R8A8_USCALED";
861		case VK_FORMAT_B8G8R8A8_SSCALED:								return "VK_FORMAT_B8G8R8A8_SSCALED";
862		case VK_FORMAT_B8G8R8A8_UINT:									return "VK_FORMAT_B8G8R8A8_UINT";
863		case VK_FORMAT_B8G8R8A8_SINT:									return "VK_FORMAT_B8G8R8A8_SINT";
864		case VK_FORMAT_B8G8R8A8_SRGB:									return "VK_FORMAT_B8G8R8A8_SRGB";
865		case VK_FORMAT_A8B8G8R8_UNORM_PACK32:							return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
866		case VK_FORMAT_A8B8G8R8_SNORM_PACK32:							return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
867		case VK_FORMAT_A8B8G8R8_USCALED_PACK32:							return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
868		case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:							return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
869		case VK_FORMAT_A8B8G8R8_UINT_PACK32:							return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
870		case VK_FORMAT_A8B8G8R8_SINT_PACK32:							return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
871		case VK_FORMAT_A8B8G8R8_SRGB_PACK32:							return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
872		case VK_FORMAT_A2R10G10B10_UNORM_PACK32:						return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
873		case VK_FORMAT_A2R10G10B10_SNORM_PACK32:						return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
874		case VK_FORMAT_A2R10G10B10_USCALED_PACK32:						return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
875		case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:						return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
876		case VK_FORMAT_A2R10G10B10_UINT_PACK32:							return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
877		case VK_FORMAT_A2R10G10B10_SINT_PACK32:							return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
878		case VK_FORMAT_A2B10G10R10_UNORM_PACK32:						return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
879		case VK_FORMAT_A2B10G10R10_SNORM_PACK32:						return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
880		case VK_FORMAT_A2B10G10R10_USCALED_PACK32:						return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
881		case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:						return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
882		case VK_FORMAT_A2B10G10R10_UINT_PACK32:							return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
883		case VK_FORMAT_A2B10G10R10_SINT_PACK32:							return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
884		case VK_FORMAT_R16_UNORM:										return "VK_FORMAT_R16_UNORM";
885		case VK_FORMAT_R16_SNORM:										return "VK_FORMAT_R16_SNORM";
886		case VK_FORMAT_R16_USCALED:										return "VK_FORMAT_R16_USCALED";
887		case VK_FORMAT_R16_SSCALED:										return "VK_FORMAT_R16_SSCALED";
888		case VK_FORMAT_R16_UINT:										return "VK_FORMAT_R16_UINT";
889		case VK_FORMAT_R16_SINT:										return "VK_FORMAT_R16_SINT";
890		case VK_FORMAT_R16_SFLOAT:										return "VK_FORMAT_R16_SFLOAT";
891		case VK_FORMAT_R16G16_UNORM:									return "VK_FORMAT_R16G16_UNORM";
892		case VK_FORMAT_R16G16_SNORM:									return "VK_FORMAT_R16G16_SNORM";
893		case VK_FORMAT_R16G16_USCALED:									return "VK_FORMAT_R16G16_USCALED";
894		case VK_FORMAT_R16G16_SSCALED:									return "VK_FORMAT_R16G16_SSCALED";
895		case VK_FORMAT_R16G16_UINT:										return "VK_FORMAT_R16G16_UINT";
896		case VK_FORMAT_R16G16_SINT:										return "VK_FORMAT_R16G16_SINT";
897		case VK_FORMAT_R16G16_SFLOAT:									return "VK_FORMAT_R16G16_SFLOAT";
898		case VK_FORMAT_R16G16B16_UNORM:									return "VK_FORMAT_R16G16B16_UNORM";
899		case VK_FORMAT_R16G16B16_SNORM:									return "VK_FORMAT_R16G16B16_SNORM";
900		case VK_FORMAT_R16G16B16_USCALED:								return "VK_FORMAT_R16G16B16_USCALED";
901		case VK_FORMAT_R16G16B16_SSCALED:								return "VK_FORMAT_R16G16B16_SSCALED";
902		case VK_FORMAT_R16G16B16_UINT:									return "VK_FORMAT_R16G16B16_UINT";
903		case VK_FORMAT_R16G16B16_SINT:									return "VK_FORMAT_R16G16B16_SINT";
904		case VK_FORMAT_R16G16B16_SFLOAT:								return "VK_FORMAT_R16G16B16_SFLOAT";
905		case VK_FORMAT_R16G16B16A16_UNORM:								return "VK_FORMAT_R16G16B16A16_UNORM";
906		case VK_FORMAT_R16G16B16A16_SNORM:								return "VK_FORMAT_R16G16B16A16_SNORM";
907		case VK_FORMAT_R16G16B16A16_USCALED:							return "VK_FORMAT_R16G16B16A16_USCALED";
908		case VK_FORMAT_R16G16B16A16_SSCALED:							return "VK_FORMAT_R16G16B16A16_SSCALED";
909		case VK_FORMAT_R16G16B16A16_UINT:								return "VK_FORMAT_R16G16B16A16_UINT";
910		case VK_FORMAT_R16G16B16A16_SINT:								return "VK_FORMAT_R16G16B16A16_SINT";
911		case VK_FORMAT_R16G16B16A16_SFLOAT:								return "VK_FORMAT_R16G16B16A16_SFLOAT";
912		case VK_FORMAT_R32_UINT:										return "VK_FORMAT_R32_UINT";
913		case VK_FORMAT_R32_SINT:										return "VK_FORMAT_R32_SINT";
914		case VK_FORMAT_R32_SFLOAT:										return "VK_FORMAT_R32_SFLOAT";
915		case VK_FORMAT_R32G32_UINT:										return "VK_FORMAT_R32G32_UINT";
916		case VK_FORMAT_R32G32_SINT:										return "VK_FORMAT_R32G32_SINT";
917		case VK_FORMAT_R32G32_SFLOAT:									return "VK_FORMAT_R32G32_SFLOAT";
918		case VK_FORMAT_R32G32B32_UINT:									return "VK_FORMAT_R32G32B32_UINT";
919		case VK_FORMAT_R32G32B32_SINT:									return "VK_FORMAT_R32G32B32_SINT";
920		case VK_FORMAT_R32G32B32_SFLOAT:								return "VK_FORMAT_R32G32B32_SFLOAT";
921		case VK_FORMAT_R32G32B32A32_UINT:								return "VK_FORMAT_R32G32B32A32_UINT";
922		case VK_FORMAT_R32G32B32A32_SINT:								return "VK_FORMAT_R32G32B32A32_SINT";
923		case VK_FORMAT_R32G32B32A32_SFLOAT:								return "VK_FORMAT_R32G32B32A32_SFLOAT";
924		case VK_FORMAT_R64_UINT:										return "VK_FORMAT_R64_UINT";
925		case VK_FORMAT_R64_SINT:										return "VK_FORMAT_R64_SINT";
926		case VK_FORMAT_R64_SFLOAT:										return "VK_FORMAT_R64_SFLOAT";
927		case VK_FORMAT_R64G64_UINT:										return "VK_FORMAT_R64G64_UINT";
928		case VK_FORMAT_R64G64_SINT:										return "VK_FORMAT_R64G64_SINT";
929		case VK_FORMAT_R64G64_SFLOAT:									return "VK_FORMAT_R64G64_SFLOAT";
930		case VK_FORMAT_R64G64B64_UINT:									return "VK_FORMAT_R64G64B64_UINT";
931		case VK_FORMAT_R64G64B64_SINT:									return "VK_FORMAT_R64G64B64_SINT";
932		case VK_FORMAT_R64G64B64_SFLOAT:								return "VK_FORMAT_R64G64B64_SFLOAT";
933		case VK_FORMAT_R64G64B64A64_UINT:								return "VK_FORMAT_R64G64B64A64_UINT";
934		case VK_FORMAT_R64G64B64A64_SINT:								return "VK_FORMAT_R64G64B64A64_SINT";
935		case VK_FORMAT_R64G64B64A64_SFLOAT:								return "VK_FORMAT_R64G64B64A64_SFLOAT";
936		case VK_FORMAT_B10G11R11_UFLOAT_PACK32:							return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
937		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:							return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
938		case VK_FORMAT_D16_UNORM:										return "VK_FORMAT_D16_UNORM";
939		case VK_FORMAT_X8_D24_UNORM_PACK32:								return "VK_FORMAT_X8_D24_UNORM_PACK32";
940		case VK_FORMAT_D32_SFLOAT:										return "VK_FORMAT_D32_SFLOAT";
941		case VK_FORMAT_S8_UINT:											return "VK_FORMAT_S8_UINT";
942		case VK_FORMAT_D16_UNORM_S8_UINT:								return "VK_FORMAT_D16_UNORM_S8_UINT";
943		case VK_FORMAT_D24_UNORM_S8_UINT:								return "VK_FORMAT_D24_UNORM_S8_UINT";
944		case VK_FORMAT_D32_SFLOAT_S8_UINT:								return "VK_FORMAT_D32_SFLOAT_S8_UINT";
945		case VK_FORMAT_BC1_RGB_UNORM_BLOCK:								return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
946		case VK_FORMAT_BC1_RGB_SRGB_BLOCK:								return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
947		case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:							return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
948		case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:								return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
949		case VK_FORMAT_BC2_UNORM_BLOCK:									return "VK_FORMAT_BC2_UNORM_BLOCK";
950		case VK_FORMAT_BC2_SRGB_BLOCK:									return "VK_FORMAT_BC2_SRGB_BLOCK";
951		case VK_FORMAT_BC3_UNORM_BLOCK:									return "VK_FORMAT_BC3_UNORM_BLOCK";
952		case VK_FORMAT_BC3_SRGB_BLOCK:									return "VK_FORMAT_BC3_SRGB_BLOCK";
953		case VK_FORMAT_BC4_UNORM_BLOCK:									return "VK_FORMAT_BC4_UNORM_BLOCK";
954		case VK_FORMAT_BC4_SNORM_BLOCK:									return "VK_FORMAT_BC4_SNORM_BLOCK";
955		case VK_FORMAT_BC5_UNORM_BLOCK:									return "VK_FORMAT_BC5_UNORM_BLOCK";
956		case VK_FORMAT_BC5_SNORM_BLOCK:									return "VK_FORMAT_BC5_SNORM_BLOCK";
957		case VK_FORMAT_BC6H_UFLOAT_BLOCK:								return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
958		case VK_FORMAT_BC6H_SFLOAT_BLOCK:								return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
959		case VK_FORMAT_BC7_UNORM_BLOCK:									return "VK_FORMAT_BC7_UNORM_BLOCK";
960		case VK_FORMAT_BC7_SRGB_BLOCK:									return "VK_FORMAT_BC7_SRGB_BLOCK";
961		case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:							return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
962		case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:							return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
963		case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
964		case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
965		case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
966		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:						return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
967		case VK_FORMAT_EAC_R11_UNORM_BLOCK:								return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
968		case VK_FORMAT_EAC_R11_SNORM_BLOCK:								return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
969		case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:							return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
970		case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:							return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
971		case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:							return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
972		case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:								return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
973		case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:							return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
974		case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:								return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
975		case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:							return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
976		case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:								return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
977		case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:							return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
978		case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:								return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
979		case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:							return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
980		case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:								return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
981		case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:							return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
982		case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:								return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
983		case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:							return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
984		case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:								return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
985		case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:							return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
986		case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:								return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
987		case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:							return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
988		case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:							return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
989		case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:							return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
990		case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:							return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
991		case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:							return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
992		case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:							return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
993		case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:							return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
994		case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:							return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
995		case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:							return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
996		case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:							return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
997		case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:							return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
998		case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:							return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
999		case VK_FORMAT_G8B8G8R8_422_UNORM:								return "VK_FORMAT_G8B8G8R8_422_UNORM";
1000		case VK_FORMAT_B8G8R8G8_422_UNORM:								return "VK_FORMAT_B8G8R8G8_422_UNORM";
1001		case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:						return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
1002		case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:						return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
1003		case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:						return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
1004		case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:						return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
1005		case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:						return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
1006		case VK_FORMAT_R10X6_UNORM_PACK16:								return "VK_FORMAT_R10X6_UNORM_PACK16";
1007		case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:						return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
1008		case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:				return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
1009		case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:			return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
1010		case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:			return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
1011		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:		return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
1012		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:		return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
1013		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:		return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
1014		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:		return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
1015		case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:		return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
1016		case VK_FORMAT_R12X4_UNORM_PACK16:								return "VK_FORMAT_R12X4_UNORM_PACK16";
1017		case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:						return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
1018		case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:				return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
1019		case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:			return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
1020		case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:			return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
1021		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:		return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
1022		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:		return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
1023		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:		return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
1024		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:		return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
1025		case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:		return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
1026		case VK_FORMAT_G16B16G16R16_422_UNORM:							return "VK_FORMAT_G16B16G16R16_422_UNORM";
1027		case VK_FORMAT_B16G16R16G16_422_UNORM:							return "VK_FORMAT_B16G16R16G16_422_UNORM";
1028		case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:					return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
1029		case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:						return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
1030		case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:					return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
1031		case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:						return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
1032		case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:					return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
1033		case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:						return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
1034		case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:						return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
1035		case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:						return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
1036		case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:						return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
1037		case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:						return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
1038		case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:						return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
1039		case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:						return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
1040		case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:						return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
1041		case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT";
1042		case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT";
1043		case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT";
1044		case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT";
1045		case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT";
1046		case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT";
1047		case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT";
1048		case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT";
1049		case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT";
1050		case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT";
1051		case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT";
1052		case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT";
1053		case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT";
1054		case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:						return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT";
1055		case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT:					return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT";
1056		case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT:	return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT";
1057		case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT:	return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT";
1058		case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT:					return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT";
1059		case VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT:						return "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT";
1060		case VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT:						return "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT";
1061		case VK_FORMAT_MAX_ENUM:										return "VK_FORMAT_MAX_ENUM";
1062		default:														return DE_NULL;
1063	}
1064}
1065
1066const char* getImageTilingName (VkImageTiling value)
1067{
1068	switch (value)
1069	{
1070		case VK_IMAGE_TILING_OPTIMAL:					return "VK_IMAGE_TILING_OPTIMAL";
1071		case VK_IMAGE_TILING_LINEAR:					return "VK_IMAGE_TILING_LINEAR";
1072		case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:	return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
1073		case VK_IMAGE_TILING_MAX_ENUM:					return "VK_IMAGE_TILING_MAX_ENUM";
1074		default:										return DE_NULL;
1075	}
1076}
1077
1078const char* getImageTypeName (VkImageType value)
1079{
1080	switch (value)
1081	{
1082		case VK_IMAGE_TYPE_1D:			return "VK_IMAGE_TYPE_1D";
1083		case VK_IMAGE_TYPE_2D:			return "VK_IMAGE_TYPE_2D";
1084		case VK_IMAGE_TYPE_3D:			return "VK_IMAGE_TYPE_3D";
1085		case VK_IMAGE_TYPE_MAX_ENUM:	return "VK_IMAGE_TYPE_MAX_ENUM";
1086		default:						return DE_NULL;
1087	}
1088}
1089
1090const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1091{
1092	switch (value)
1093	{
1094		case VK_PHYSICAL_DEVICE_TYPE_OTHER:				return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1095		case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:	return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1096		case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1097		case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:		return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1098		case VK_PHYSICAL_DEVICE_TYPE_CPU:				return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1099		case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:			return "VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM";
1100		default:										return DE_NULL;
1101	}
1102}
1103
1104const char* getQueryTypeName (VkQueryType value)
1105{
1106	switch (value)
1107	{
1108		case VK_QUERY_TYPE_OCCLUSION:										return "VK_QUERY_TYPE_OCCLUSION";
1109		case VK_QUERY_TYPE_PIPELINE_STATISTICS:								return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1110		case VK_QUERY_TYPE_TIMESTAMP:										return "VK_QUERY_TYPE_TIMESTAMP";
1111		case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:							return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1112		case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:			return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1113		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:					return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1114		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1115		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:		return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1116		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1117		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:		return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1118		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1119		case VK_QUERY_TYPE_MAX_ENUM:										return "VK_QUERY_TYPE_MAX_ENUM";
1120		default:															return DE_NULL;
1121	}
1122}
1123
1124const char* getSharingModeName (VkSharingMode value)
1125{
1126	switch (value)
1127	{
1128		case VK_SHARING_MODE_EXCLUSIVE:		return "VK_SHARING_MODE_EXCLUSIVE";
1129		case VK_SHARING_MODE_CONCURRENT:	return "VK_SHARING_MODE_CONCURRENT";
1130		case VK_SHARING_MODE_MAX_ENUM:		return "VK_SHARING_MODE_MAX_ENUM";
1131		default:							return DE_NULL;
1132	}
1133}
1134
1135const char* getComponentSwizzleName (VkComponentSwizzle value)
1136{
1137	switch (value)
1138	{
1139		case VK_COMPONENT_SWIZZLE_IDENTITY:	return "VK_COMPONENT_SWIZZLE_IDENTITY";
1140		case VK_COMPONENT_SWIZZLE_ZERO:		return "VK_COMPONENT_SWIZZLE_ZERO";
1141		case VK_COMPONENT_SWIZZLE_ONE:		return "VK_COMPONENT_SWIZZLE_ONE";
1142		case VK_COMPONENT_SWIZZLE_R:		return "VK_COMPONENT_SWIZZLE_R";
1143		case VK_COMPONENT_SWIZZLE_G:		return "VK_COMPONENT_SWIZZLE_G";
1144		case VK_COMPONENT_SWIZZLE_B:		return "VK_COMPONENT_SWIZZLE_B";
1145		case VK_COMPONENT_SWIZZLE_A:		return "VK_COMPONENT_SWIZZLE_A";
1146		case VK_COMPONENT_SWIZZLE_MAX_ENUM:	return "VK_COMPONENT_SWIZZLE_MAX_ENUM";
1147		default:							return DE_NULL;
1148	}
1149}
1150
1151const char* getImageViewTypeName (VkImageViewType value)
1152{
1153	switch (value)
1154	{
1155		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
1156		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
1157		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
1158		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
1159		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1160		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1161		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1162		case VK_IMAGE_VIEW_TYPE_MAX_ENUM:	return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
1163		default:							return DE_NULL;
1164	}
1165}
1166
1167const char* getBlendFactorName (VkBlendFactor value)
1168{
1169	switch (value)
1170	{
1171		case VK_BLEND_FACTOR_ZERO:						return "VK_BLEND_FACTOR_ZERO";
1172		case VK_BLEND_FACTOR_ONE:						return "VK_BLEND_FACTOR_ONE";
1173		case VK_BLEND_FACTOR_SRC_COLOR:					return "VK_BLEND_FACTOR_SRC_COLOR";
1174		case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
1175		case VK_BLEND_FACTOR_DST_COLOR:					return "VK_BLEND_FACTOR_DST_COLOR";
1176		case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
1177		case VK_BLEND_FACTOR_SRC_ALPHA:					return "VK_BLEND_FACTOR_SRC_ALPHA";
1178		case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
1179		case VK_BLEND_FACTOR_DST_ALPHA:					return "VK_BLEND_FACTOR_DST_ALPHA";
1180		case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
1181		case VK_BLEND_FACTOR_CONSTANT_COLOR:			return "VK_BLEND_FACTOR_CONSTANT_COLOR";
1182		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
1183		case VK_BLEND_FACTOR_CONSTANT_ALPHA:			return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
1184		case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:	return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
1185		case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:		return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
1186		case VK_BLEND_FACTOR_SRC1_COLOR:				return "VK_BLEND_FACTOR_SRC1_COLOR";
1187		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
1188		case VK_BLEND_FACTOR_SRC1_ALPHA:				return "VK_BLEND_FACTOR_SRC1_ALPHA";
1189		case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:		return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
1190		case VK_BLEND_FACTOR_MAX_ENUM:					return "VK_BLEND_FACTOR_MAX_ENUM";
1191		default:										return DE_NULL;
1192	}
1193}
1194
1195const char* getBlendOpName (VkBlendOp value)
1196{
1197	switch (value)
1198	{
1199		case VK_BLEND_OP_ADD:						return "VK_BLEND_OP_ADD";
1200		case VK_BLEND_OP_SUBTRACT:					return "VK_BLEND_OP_SUBTRACT";
1201		case VK_BLEND_OP_REVERSE_SUBTRACT:			return "VK_BLEND_OP_REVERSE_SUBTRACT";
1202		case VK_BLEND_OP_MIN:						return "VK_BLEND_OP_MIN";
1203		case VK_BLEND_OP_MAX:						return "VK_BLEND_OP_MAX";
1204		case VK_BLEND_OP_ZERO_EXT:					return "VK_BLEND_OP_ZERO_EXT";
1205		case VK_BLEND_OP_SRC_EXT:					return "VK_BLEND_OP_SRC_EXT";
1206		case VK_BLEND_OP_DST_EXT:					return "VK_BLEND_OP_DST_EXT";
1207		case VK_BLEND_OP_SRC_OVER_EXT:				return "VK_BLEND_OP_SRC_OVER_EXT";
1208		case VK_BLEND_OP_DST_OVER_EXT:				return "VK_BLEND_OP_DST_OVER_EXT";
1209		case VK_BLEND_OP_SRC_IN_EXT:				return "VK_BLEND_OP_SRC_IN_EXT";
1210		case VK_BLEND_OP_DST_IN_EXT:				return "VK_BLEND_OP_DST_IN_EXT";
1211		case VK_BLEND_OP_SRC_OUT_EXT:				return "VK_BLEND_OP_SRC_OUT_EXT";
1212		case VK_BLEND_OP_DST_OUT_EXT:				return "VK_BLEND_OP_DST_OUT_EXT";
1213		case VK_BLEND_OP_SRC_ATOP_EXT:				return "VK_BLEND_OP_SRC_ATOP_EXT";
1214		case VK_BLEND_OP_DST_ATOP_EXT:				return "VK_BLEND_OP_DST_ATOP_EXT";
1215		case VK_BLEND_OP_XOR_EXT:					return "VK_BLEND_OP_XOR_EXT";
1216		case VK_BLEND_OP_MULTIPLY_EXT:				return "VK_BLEND_OP_MULTIPLY_EXT";
1217		case VK_BLEND_OP_SCREEN_EXT:				return "VK_BLEND_OP_SCREEN_EXT";
1218		case VK_BLEND_OP_OVERLAY_EXT:				return "VK_BLEND_OP_OVERLAY_EXT";
1219		case VK_BLEND_OP_DARKEN_EXT:				return "VK_BLEND_OP_DARKEN_EXT";
1220		case VK_BLEND_OP_LIGHTEN_EXT:				return "VK_BLEND_OP_LIGHTEN_EXT";
1221		case VK_BLEND_OP_COLORDODGE_EXT:			return "VK_BLEND_OP_COLORDODGE_EXT";
1222		case VK_BLEND_OP_COLORBURN_EXT:				return "VK_BLEND_OP_COLORBURN_EXT";
1223		case VK_BLEND_OP_HARDLIGHT_EXT:				return "VK_BLEND_OP_HARDLIGHT_EXT";
1224		case VK_BLEND_OP_SOFTLIGHT_EXT:				return "VK_BLEND_OP_SOFTLIGHT_EXT";
1225		case VK_BLEND_OP_DIFFERENCE_EXT:			return "VK_BLEND_OP_DIFFERENCE_EXT";
1226		case VK_BLEND_OP_EXCLUSION_EXT:				return "VK_BLEND_OP_EXCLUSION_EXT";
1227		case VK_BLEND_OP_INVERT_EXT:				return "VK_BLEND_OP_INVERT_EXT";
1228		case VK_BLEND_OP_INVERT_RGB_EXT:			return "VK_BLEND_OP_INVERT_RGB_EXT";
1229		case VK_BLEND_OP_LINEARDODGE_EXT:			return "VK_BLEND_OP_LINEARDODGE_EXT";
1230		case VK_BLEND_OP_LINEARBURN_EXT:			return "VK_BLEND_OP_LINEARBURN_EXT";
1231		case VK_BLEND_OP_VIVIDLIGHT_EXT:			return "VK_BLEND_OP_VIVIDLIGHT_EXT";
1232		case VK_BLEND_OP_LINEARLIGHT_EXT:			return "VK_BLEND_OP_LINEARLIGHT_EXT";
1233		case VK_BLEND_OP_PINLIGHT_EXT:				return "VK_BLEND_OP_PINLIGHT_EXT";
1234		case VK_BLEND_OP_HARDMIX_EXT:				return "VK_BLEND_OP_HARDMIX_EXT";
1235		case VK_BLEND_OP_HSL_HUE_EXT:				return "VK_BLEND_OP_HSL_HUE_EXT";
1236		case VK_BLEND_OP_HSL_SATURATION_EXT:		return "VK_BLEND_OP_HSL_SATURATION_EXT";
1237		case VK_BLEND_OP_HSL_COLOR_EXT:				return "VK_BLEND_OP_HSL_COLOR_EXT";
1238		case VK_BLEND_OP_HSL_LUMINOSITY_EXT:		return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
1239		case VK_BLEND_OP_PLUS_EXT:					return "VK_BLEND_OP_PLUS_EXT";
1240		case VK_BLEND_OP_PLUS_CLAMPED_EXT:			return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
1241		case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:	return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
1242		case VK_BLEND_OP_PLUS_DARKER_EXT:			return "VK_BLEND_OP_PLUS_DARKER_EXT";
1243		case VK_BLEND_OP_MINUS_EXT:					return "VK_BLEND_OP_MINUS_EXT";
1244		case VK_BLEND_OP_MINUS_CLAMPED_EXT:			return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
1245		case VK_BLEND_OP_CONTRAST_EXT:				return "VK_BLEND_OP_CONTRAST_EXT";
1246		case VK_BLEND_OP_INVERT_OVG_EXT:			return "VK_BLEND_OP_INVERT_OVG_EXT";
1247		case VK_BLEND_OP_RED_EXT:					return "VK_BLEND_OP_RED_EXT";
1248		case VK_BLEND_OP_GREEN_EXT:					return "VK_BLEND_OP_GREEN_EXT";
1249		case VK_BLEND_OP_BLUE_EXT:					return "VK_BLEND_OP_BLUE_EXT";
1250		case VK_BLEND_OP_MAX_ENUM:					return "VK_BLEND_OP_MAX_ENUM";
1251		default:									return DE_NULL;
1252	}
1253}
1254
1255const char* getCompareOpName (VkCompareOp value)
1256{
1257	switch (value)
1258	{
1259		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
1260		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
1261		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
1262		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
1263		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
1264		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
1265		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
1266		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
1267		case VK_COMPARE_OP_MAX_ENUM:			return "VK_COMPARE_OP_MAX_ENUM";
1268		default:								return DE_NULL;
1269	}
1270}
1271
1272const char* getDynamicStateName (VkDynamicState value)
1273{
1274	switch (value)
1275	{
1276		case VK_DYNAMIC_STATE_VIEWPORT:								return "VK_DYNAMIC_STATE_VIEWPORT";
1277		case VK_DYNAMIC_STATE_SCISSOR:								return "VK_DYNAMIC_STATE_SCISSOR";
1278		case VK_DYNAMIC_STATE_LINE_WIDTH:							return "VK_DYNAMIC_STATE_LINE_WIDTH";
1279		case VK_DYNAMIC_STATE_DEPTH_BIAS:							return "VK_DYNAMIC_STATE_DEPTH_BIAS";
1280		case VK_DYNAMIC_STATE_BLEND_CONSTANTS:						return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
1281		case VK_DYNAMIC_STATE_DEPTH_BOUNDS:							return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
1282		case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:					return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
1283		case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:					return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
1284		case VK_DYNAMIC_STATE_STENCIL_REFERENCE:					return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
1285		case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:				return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
1286		case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:				return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
1287		case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:					return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
1288		case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:	return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
1289		case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:		return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
1290		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:		return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
1291		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:					return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
1292		case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:			return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
1293		case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:						return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
1294		case VK_DYNAMIC_STATE_CULL_MODE_EXT:						return "VK_DYNAMIC_STATE_CULL_MODE_EXT";
1295		case VK_DYNAMIC_STATE_FRONT_FACE_EXT:						return "VK_DYNAMIC_STATE_FRONT_FACE_EXT";
1296		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT:				return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT";
1297		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT:				return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT";
1298		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT:				return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT";
1299		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT:		return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT";
1300		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT:				return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT";
1301		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT";
1302		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT:					return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT";
1303		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT:			return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT";
1304		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT:				return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT";
1305		case VK_DYNAMIC_STATE_STENCIL_OP_EXT:						return "VK_DYNAMIC_STATE_STENCIL_OP_EXT";
1306		case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:						return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
1307		case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:				return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
1308		case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT:		return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT";
1309		case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT:				return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT";
1310		case VK_DYNAMIC_STATE_LOGIC_OP_EXT:							return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
1311		case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT:			return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT";
1312		case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:				return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
1313		case VK_DYNAMIC_STATE_MAX_ENUM:								return "VK_DYNAMIC_STATE_MAX_ENUM";
1314		default:													return DE_NULL;
1315	}
1316}
1317
1318const char* getFrontFaceName (VkFrontFace value)
1319{
1320	switch (value)
1321	{
1322		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
1323		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
1324		case VK_FRONT_FACE_MAX_ENUM:			return "VK_FRONT_FACE_MAX_ENUM";
1325		default:								return DE_NULL;
1326	}
1327}
1328
1329const char* getVertexInputRateName (VkVertexInputRate value)
1330{
1331	switch (value)
1332	{
1333		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
1334		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
1335		case VK_VERTEX_INPUT_RATE_MAX_ENUM:	return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
1336		default:							return DE_NULL;
1337	}
1338}
1339
1340const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1341{
1342	switch (value)
1343	{
1344		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1345		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1346		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1347		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1348		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1349		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1350		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1351		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1352		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1353		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1354		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1355		case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:						return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
1356		default:													return DE_NULL;
1357	}
1358}
1359
1360const char* getPolygonModeName (VkPolygonMode value)
1361{
1362	switch (value)
1363	{
1364		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
1365		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
1366		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
1367		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
1368		case VK_POLYGON_MODE_MAX_ENUM:			return "VK_POLYGON_MODE_MAX_ENUM";
1369		default:								return DE_NULL;
1370	}
1371}
1372
1373const char* getStencilOpName (VkStencilOp value)
1374{
1375	switch (value)
1376	{
1377		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
1378		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
1379		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
1380		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1381		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1382		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
1383		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1384		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1385		case VK_STENCIL_OP_MAX_ENUM:			return "VK_STENCIL_OP_MAX_ENUM";
1386		default:								return DE_NULL;
1387	}
1388}
1389
1390const char* getLogicOpName (VkLogicOp value)
1391{
1392	switch (value)
1393	{
1394		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
1395		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
1396		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
1397		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
1398		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
1399		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
1400		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
1401		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
1402		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
1403		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
1404		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
1405		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
1406		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
1407		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
1408		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
1409		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
1410		case VK_LOGIC_OP_MAX_ENUM:		return "VK_LOGIC_OP_MAX_ENUM";
1411		default:						return DE_NULL;
1412	}
1413}
1414
1415const char* getBorderColorName (VkBorderColor value)
1416{
1417	switch (value)
1418	{
1419		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
1420		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
1421		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
1422		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
1423		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
1424		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
1425		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
1426		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
1427		case VK_BORDER_COLOR_MAX_ENUM:					return "VK_BORDER_COLOR_MAX_ENUM";
1428		default:										return DE_NULL;
1429	}
1430}
1431
1432const char* getFilterName (VkFilter value)
1433{
1434	switch (value)
1435	{
1436		case VK_FILTER_NEAREST:		return "VK_FILTER_NEAREST";
1437		case VK_FILTER_LINEAR:		return "VK_FILTER_LINEAR";
1438		case VK_FILTER_CUBIC_IMG:	return "VK_FILTER_CUBIC_IMG";
1439		case VK_FILTER_MAX_ENUM:	return "VK_FILTER_MAX_ENUM";
1440		default:					return DE_NULL;
1441	}
1442}
1443
1444const char* getSamplerAddressModeName (VkSamplerAddressMode value)
1445{
1446	switch (value)
1447	{
1448		case VK_SAMPLER_ADDRESS_MODE_REPEAT:				return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
1449		case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:		return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
1450		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:			return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
1451		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:		return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
1452		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:	return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
1453		case VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:				return "VK_SAMPLER_ADDRESS_MODE_MAX_ENUM";
1454		default:											return DE_NULL;
1455	}
1456}
1457
1458const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
1459{
1460	switch (value)
1461	{
1462		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
1463		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
1464		case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:	return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
1465		default:								return DE_NULL;
1466	}
1467}
1468
1469const char* getDescriptorTypeName (VkDescriptorType value)
1470{
1471	switch (value)
1472	{
1473		case VK_DESCRIPTOR_TYPE_SAMPLER:					return "VK_DESCRIPTOR_TYPE_SAMPLER";
1474		case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:		return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
1475		case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:				return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
1476		case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:				return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
1477		case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
1478		case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:		return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
1479		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:				return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
1480		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:				return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
1481		case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
1482		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
1483		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
1484		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:	return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT";
1485		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
1486		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
1487		case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:				return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
1488		case VK_DESCRIPTOR_TYPE_MAX_ENUM:					return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
1489		default:											return DE_NULL;
1490	}
1491}
1492
1493const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
1494{
1495	switch (value)
1496	{
1497		case VK_ATTACHMENT_LOAD_OP_LOAD:		return "VK_ATTACHMENT_LOAD_OP_LOAD";
1498		case VK_ATTACHMENT_LOAD_OP_CLEAR:		return "VK_ATTACHMENT_LOAD_OP_CLEAR";
1499		case VK_ATTACHMENT_LOAD_OP_DONT_CARE:	return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
1500		case VK_ATTACHMENT_LOAD_OP_MAX_ENUM:	return "VK_ATTACHMENT_LOAD_OP_MAX_ENUM";
1501		default:								return DE_NULL;
1502	}
1503}
1504
1505const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
1506{
1507	switch (value)
1508	{
1509		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
1510		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
1511		case VK_ATTACHMENT_STORE_OP_NONE_QCOM:	return "VK_ATTACHMENT_STORE_OP_NONE_QCOM";
1512		case VK_ATTACHMENT_STORE_OP_MAX_ENUM:	return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
1513		default:								return DE_NULL;
1514	}
1515}
1516
1517const char* getPipelineBindPointName (VkPipelineBindPoint value)
1518{
1519	switch (value)
1520	{
1521		case VK_PIPELINE_BIND_POINT_GRAPHICS:			return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1522		case VK_PIPELINE_BIND_POINT_COMPUTE:			return "VK_PIPELINE_BIND_POINT_COMPUTE";
1523		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:	return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1524		case VK_PIPELINE_BIND_POINT_MAX_ENUM:			return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
1525		default:										return DE_NULL;
1526	}
1527}
1528
1529const char* getCommandBufferLevelName (VkCommandBufferLevel value)
1530{
1531	switch (value)
1532	{
1533		case VK_COMMAND_BUFFER_LEVEL_PRIMARY:	return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
1534		case VK_COMMAND_BUFFER_LEVEL_SECONDARY:	return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
1535		case VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:	return "VK_COMMAND_BUFFER_LEVEL_MAX_ENUM";
1536		default:								return DE_NULL;
1537	}
1538}
1539
1540const char* getIndexTypeName (VkIndexType value)
1541{
1542	switch (value)
1543	{
1544		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
1545		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
1546		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
1547		case VK_INDEX_TYPE_UINT8_EXT:	return "VK_INDEX_TYPE_UINT8_EXT";
1548		case VK_INDEX_TYPE_MAX_ENUM:	return "VK_INDEX_TYPE_MAX_ENUM";
1549		default:						return DE_NULL;
1550	}
1551}
1552
1553const char* getSubpassContentsName (VkSubpassContents value)
1554{
1555	switch (value)
1556	{
1557		case VK_SUBPASS_CONTENTS_INLINE:					return "VK_SUBPASS_CONTENTS_INLINE";
1558		case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:	return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1559		case VK_SUBPASS_CONTENTS_MAX_ENUM:					return "VK_SUBPASS_CONTENTS_MAX_ENUM";
1560		default:											return DE_NULL;
1561	}
1562}
1563
1564const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
1565{
1566	switch (value)
1567	{
1568		case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:		return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
1569		case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:	return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
1570		case VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM:				return "VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM";
1571		default:												return DE_NULL;
1572	}
1573}
1574
1575const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
1576{
1577	switch (value)
1578	{
1579		case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
1580		case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:	return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
1581		case VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM:	return "VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM";
1582		default:										return DE_NULL;
1583	}
1584}
1585
1586const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
1587{
1588	switch (value)
1589	{
1590		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
1591		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:	return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
1592		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
1593		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
1594		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
1595		case VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM:		return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM";
1596		default:												return DE_NULL;
1597	}
1598}
1599
1600const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
1601{
1602	switch (value)
1603	{
1604		case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:	return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
1605		case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:	return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
1606		case VK_SAMPLER_YCBCR_RANGE_MAX_ENUM:	return "VK_SAMPLER_YCBCR_RANGE_MAX_ENUM";
1607		default:								return DE_NULL;
1608	}
1609}
1610
1611const char* getChromaLocationName (VkChromaLocation value)
1612{
1613	switch (value)
1614	{
1615		case VK_CHROMA_LOCATION_COSITED_EVEN:	return "VK_CHROMA_LOCATION_COSITED_EVEN";
1616		case VK_CHROMA_LOCATION_MIDPOINT:		return "VK_CHROMA_LOCATION_MIDPOINT";
1617		case VK_CHROMA_LOCATION_MAX_ENUM:		return "VK_CHROMA_LOCATION_MAX_ENUM";
1618		default:								return DE_NULL;
1619	}
1620}
1621
1622const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
1623{
1624	switch (value)
1625	{
1626		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:			return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
1627		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:	return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
1628		case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM:				return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM";
1629		default:														return DE_NULL;
1630	}
1631}
1632
1633const char* getDriverIdName (VkDriverId value)
1634{
1635	switch (value)
1636	{
1637		case VK_DRIVER_ID_AMD_PROPRIETARY:				return "VK_DRIVER_ID_AMD_PROPRIETARY";
1638		case VK_DRIVER_ID_AMD_OPEN_SOURCE:				return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
1639		case VK_DRIVER_ID_MESA_RADV:					return "VK_DRIVER_ID_MESA_RADV";
1640		case VK_DRIVER_ID_NVIDIA_PROPRIETARY:			return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
1641		case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:	return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
1642		case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:		return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
1643		case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:		return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
1644		case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:			return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
1645		case VK_DRIVER_ID_ARM_PROPRIETARY:				return "VK_DRIVER_ID_ARM_PROPRIETARY";
1646		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
1647		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
1648		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
1649		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
1650		case VK_DRIVER_ID_MOLTENVK:						return "VK_DRIVER_ID_MOLTENVK";
1651		case VK_DRIVER_ID_COREAVI_PROPRIETARY:			return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
1652		case VK_DRIVER_ID_MAX_ENUM:						return "VK_DRIVER_ID_MAX_ENUM";
1653		default:										return DE_NULL;
1654	}
1655}
1656
1657const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
1658{
1659	switch (value)
1660	{
1661		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
1662		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:			return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
1663		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:		return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
1664		case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM:	return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM";
1665		default:												return DE_NULL;
1666	}
1667}
1668
1669const char* getSamplerReductionModeName (VkSamplerReductionMode value)
1670{
1671	switch (value)
1672	{
1673		case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:	return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
1674		case VK_SAMPLER_REDUCTION_MODE_MIN:					return "VK_SAMPLER_REDUCTION_MODE_MIN";
1675		case VK_SAMPLER_REDUCTION_MODE_MAX:					return "VK_SAMPLER_REDUCTION_MODE_MAX";
1676		case VK_SAMPLER_REDUCTION_MODE_MAX_ENUM:			return "VK_SAMPLER_REDUCTION_MODE_MAX_ENUM";
1677		default:											return DE_NULL;
1678	}
1679}
1680
1681const char* getSemaphoreTypeName (VkSemaphoreType value)
1682{
1683	switch (value)
1684	{
1685		case VK_SEMAPHORE_TYPE_BINARY:		return "VK_SEMAPHORE_TYPE_BINARY";
1686		case VK_SEMAPHORE_TYPE_TIMELINE:	return "VK_SEMAPHORE_TYPE_TIMELINE";
1687		case VK_SEMAPHORE_TYPE_MAX_ENUM:	return "VK_SEMAPHORE_TYPE_MAX_ENUM";
1688		default:							return DE_NULL;
1689	}
1690}
1691
1692const char* getPresentModeKHRName (VkPresentModeKHR value)
1693{
1694	switch (value)
1695	{
1696		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
1697		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
1698		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
1699		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
1700		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
1701		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
1702		case VK_PRESENT_MODE_MAX_ENUM_KHR:					return "VK_PRESENT_MODE_MAX_ENUM_KHR";
1703		default:											return DE_NULL;
1704	}
1705}
1706
1707const char* getColorSpaceKHRName (VkColorSpaceKHR value)
1708{
1709	switch (value)
1710	{
1711		case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:				return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
1712		case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:		return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
1713		case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:		return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
1714		case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:			return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
1715		case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:			return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
1716		case VK_COLOR_SPACE_BT709_LINEAR_EXT:				return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
1717		case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:			return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
1718		case VK_COLOR_SPACE_BT2020_LINEAR_EXT:				return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
1719		case VK_COLOR_SPACE_HDR10_ST2084_EXT:				return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
1720		case VK_COLOR_SPACE_DOLBYVISION_EXT:				return "VK_COLOR_SPACE_DOLBYVISION_EXT";
1721		case VK_COLOR_SPACE_HDR10_HLG_EXT:					return "VK_COLOR_SPACE_HDR10_HLG_EXT";
1722		case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
1723		case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:			return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
1724		case VK_COLOR_SPACE_PASS_THROUGH_EXT:				return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
1725		case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:	return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
1726		case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:				return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
1727		case VK_COLOR_SPACE_MAX_ENUM_KHR:					return "VK_COLOR_SPACE_MAX_ENUM_KHR";
1728		default:											return DE_NULL;
1729	}
1730}
1731
1732const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
1733{
1734	switch (value)
1735	{
1736		case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
1737		case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
1738		case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:		return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
1739		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
1740		case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:	return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
1741		case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
1742		case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
1743		case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
1744		case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
1745		case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:				return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
1746		case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
1747		case VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR:			return "VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR";
1748		default:												return DE_NULL;
1749	}
1750}
1751
1752const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
1753{
1754	switch (value)
1755	{
1756		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:	return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
1757		case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:		return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
1758		case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
1759		case VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR:			return "VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR";
1760		default:												return DE_NULL;
1761	}
1762}
1763
1764const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
1765{
1766	switch (value)
1767	{
1768		case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
1769		case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
1770		case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
1771		case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:		return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
1772		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
1773		case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
1774		case VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR:	return "VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR";
1775		default:											return DE_NULL;
1776	}
1777}
1778
1779const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
1780{
1781	switch (value)
1782	{
1783		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
1784		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
1785		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
1786		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
1787		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:		return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
1788		case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR:	return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR";
1789		default:												return DE_NULL;
1790	}
1791}
1792
1793const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
1794{
1795	switch (value)
1796	{
1797		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
1798		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:		return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
1799		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
1800		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
1801		case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR:	return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR";
1802		default:													return DE_NULL;
1803	}
1804}
1805
1806const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
1807{
1808	switch (value)
1809	{
1810		case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
1811		case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
1812		case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
1813		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
1814		case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
1815		case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
1816		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
1817		case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
1818		case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
1819		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
1820		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
1821		case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:							return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
1822		case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
1823		case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
1824		case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
1825		case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
1826		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
1827		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
1828		case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
1829		case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
1830		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
1831		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
1832		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
1833		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
1834		case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
1835		case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
1836		case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
1837		case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
1838		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
1839		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
1840		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
1841		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
1842		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
1843		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
1844		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
1845		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
1846		case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
1847		default:															return DE_NULL;
1848	}
1849}
1850
1851const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
1852{
1853	switch (value)
1854	{
1855		case VK_RASTERIZATION_ORDER_STRICT_AMD:		return "VK_RASTERIZATION_ORDER_STRICT_AMD";
1856		case VK_RASTERIZATION_ORDER_RELAXED_AMD:	return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
1857		case VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:	return "VK_RASTERIZATION_ORDER_MAX_ENUM_AMD";
1858		default:									return DE_NULL;
1859	}
1860}
1861
1862const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
1863{
1864	switch (value)
1865	{
1866		case VK_SHADER_INFO_TYPE_STATISTICS_AMD:	return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
1867		case VK_SHADER_INFO_TYPE_BINARY_AMD:		return "VK_SHADER_INFO_TYPE_BINARY_AMD";
1868		case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:	return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
1869		case VK_SHADER_INFO_TYPE_MAX_ENUM_AMD:		return "VK_SHADER_INFO_TYPE_MAX_ENUM_AMD";
1870		default:									return DE_NULL;
1871	}
1872}
1873
1874const char* getValidationCheckEXTName (VkValidationCheckEXT value)
1875{
1876	switch (value)
1877	{
1878		case VK_VALIDATION_CHECK_ALL_EXT:		return "VK_VALIDATION_CHECK_ALL_EXT";
1879		case VK_VALIDATION_CHECK_SHADERS_EXT:	return "VK_VALIDATION_CHECK_SHADERS_EXT";
1880		case VK_VALIDATION_CHECK_MAX_ENUM_EXT:	return "VK_VALIDATION_CHECK_MAX_ENUM_EXT";
1881		default:								return DE_NULL;
1882	}
1883}
1884
1885const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
1886{
1887	switch (value)
1888	{
1889		case VK_DISPLAY_POWER_STATE_OFF_EXT:		return "VK_DISPLAY_POWER_STATE_OFF_EXT";
1890		case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:	return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
1891		case VK_DISPLAY_POWER_STATE_ON_EXT:			return "VK_DISPLAY_POWER_STATE_ON_EXT";
1892		case VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT:	return "VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT";
1893		default:									return DE_NULL;
1894	}
1895}
1896
1897const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
1898{
1899	switch (value)
1900	{
1901		case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:	return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
1902		case VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT:			return "VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT";
1903		default:										return DE_NULL;
1904	}
1905}
1906
1907const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
1908{
1909	switch (value)
1910	{
1911		case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:	return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
1912		case VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT:		return "VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT";
1913		default:										return DE_NULL;
1914	}
1915}
1916
1917const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
1918{
1919	switch (value)
1920	{
1921		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
1922		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
1923		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
1924		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
1925		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
1926		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
1927		case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
1928		case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
1929		case VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV:	return "VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV";
1930		default:											return DE_NULL;
1931	}
1932}
1933
1934const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
1935{
1936	switch (value)
1937	{
1938		case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
1939		case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:	return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
1940		case VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT:	return "VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT";
1941		default:										return DE_NULL;
1942	}
1943}
1944
1945const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
1946{
1947	switch (value)
1948	{
1949		case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
1950		case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
1951		case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:	return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
1952		case VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT:		return "VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT";
1953		default:													return DE_NULL;
1954	}
1955}
1956
1957const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
1958{
1959	switch (value)
1960	{
1961		case VK_BLEND_OVERLAP_UNCORRELATED_EXT:	return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
1962		case VK_BLEND_OVERLAP_DISJOINT_EXT:		return "VK_BLEND_OVERLAP_DISJOINT_EXT";
1963		case VK_BLEND_OVERLAP_CONJOINT_EXT:		return "VK_BLEND_OVERLAP_CONJOINT_EXT";
1964		case VK_BLEND_OVERLAP_MAX_ENUM_EXT:		return "VK_BLEND_OVERLAP_MAX_ENUM_EXT";
1965		default:								return DE_NULL;
1966	}
1967}
1968
1969const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
1970{
1971	switch (value)
1972	{
1973		case VK_COVERAGE_MODULATION_MODE_NONE_NV:		return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
1974		case VK_COVERAGE_MODULATION_MODE_RGB_NV:		return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
1975		case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:		return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
1976		case VK_COVERAGE_MODULATION_MODE_RGBA_NV:		return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
1977		case VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV:	return "VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV";
1978		default:										return DE_NULL;
1979	}
1980}
1981
1982const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
1983{
1984	switch (value)
1985	{
1986		case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:		return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
1987		case VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT:	return "VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT";
1988		default:												return DE_NULL;
1989	}
1990}
1991
1992const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
1993{
1994	switch (value)
1995	{
1996		case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:				return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
1997		case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
1998		case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
1999		case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
2000		case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
2001		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:		return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
2002		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
2003		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
2004		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
2005		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
2006		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
2007		case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
2008		case VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV:						return "VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV";
2009		default:															return DE_NULL;
2010	}
2011}
2012
2013const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
2014{
2015	switch (value)
2016	{
2017		case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
2018		case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:			return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
2019		case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
2020		case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:	return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
2021		case VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV:		return "VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV";
2022		default:											return DE_NULL;
2023	}
2024}
2025
2026const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2027{
2028	switch (value)
2029	{
2030		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2031		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2032		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2033		case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
2034		default:														return DE_NULL;
2035	}
2036}
2037
2038const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2039{
2040	switch (value)
2041	{
2042		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2043		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
2044		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2045		case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:		return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
2046		default:								return DE_NULL;
2047	}
2048}
2049
2050const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2051{
2052	switch (value)
2053	{
2054		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2055		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2056		case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2057		case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
2058		default:												return DE_NULL;
2059	}
2060}
2061
2062const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2063{
2064	switch (value)
2065	{
2066		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2067		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2068		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2069		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2070		case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2071		default:													return DE_NULL;
2072	}
2073}
2074
2075const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2076{
2077	switch (value)
2078	{
2079		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2080		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2081		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2082		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:		return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
2083		default:																	return DE_NULL;
2084	}
2085}
2086
2087const char* getQueueGlobalPriorityEXTName (VkQueueGlobalPriorityEXT value)
2088{
2089	switch (value)
2090	{
2091		case VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT:		return "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT";
2092		case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT:	return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT";
2093		case VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT:		return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT";
2094		case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT:	return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT";
2095		case VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT:	return "VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT";
2096		default:									return DE_NULL;
2097	}
2098}
2099
2100const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2101{
2102	switch (value)
2103	{
2104		case VK_TIME_DOMAIN_DEVICE_EXT:						return "VK_TIME_DOMAIN_DEVICE_EXT";
2105		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:			return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2106		case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:		return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2107		case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:	return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2108		case VK_TIME_DOMAIN_MAX_ENUM_EXT:					return "VK_TIME_DOMAIN_MAX_ENUM_EXT";
2109		default:											return DE_NULL;
2110	}
2111}
2112
2113const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2114{
2115	switch (value)
2116	{
2117		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2118		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:		return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2119		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2120		case VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD:	return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD";
2121		default:												return DE_NULL;
2122	}
2123}
2124
2125const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2126{
2127	switch (value)
2128	{
2129		case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:	return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2130		case VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL:									return "VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL";
2131		default:																				return DE_NULL;
2132	}
2133}
2134
2135const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2136{
2137	switch (value)
2138	{
2139		case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:		return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2140		case VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL:	return "VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL";
2141		default:											return DE_NULL;
2142	}
2143}
2144
2145const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2146{
2147	switch (value)
2148	{
2149		case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:		return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2150		case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:	return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2151		case VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL:			return "VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL";
2152		default:													return DE_NULL;
2153	}
2154}
2155
2156const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2157{
2158	switch (value)
2159	{
2160		case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:		return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2161		case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:	return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2162		case VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL:					return "VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL";
2163		default:															return DE_NULL;
2164	}
2165}
2166
2167const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2168{
2169	switch (value)
2170	{
2171		case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2172		case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2173		case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2174		case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:		return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2175		case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2176		case VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL:	return "VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL";
2177		default:										return DE_NULL;
2178	}
2179}
2180
2181const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
2182{
2183	switch (value)
2184	{
2185		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
2186		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
2187		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
2188		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
2189		case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:			return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
2190		case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:								return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
2191		default:																	return DE_NULL;
2192	}
2193}
2194
2195const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
2196{
2197	switch (value)
2198	{
2199		case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:					return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
2200		case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:				return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
2201		case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
2202		case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
2203		case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:	return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
2204		case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
2205		case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:		return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
2206		case VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT:			return "VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT";
2207		default:													return DE_NULL;
2208	}
2209}
2210
2211const char* getComponentTypeNVName (VkComponentTypeNV value)
2212{
2213	switch (value)
2214	{
2215		case VK_COMPONENT_TYPE_FLOAT16_NV:	return "VK_COMPONENT_TYPE_FLOAT16_NV";
2216		case VK_COMPONENT_TYPE_FLOAT32_NV:	return "VK_COMPONENT_TYPE_FLOAT32_NV";
2217		case VK_COMPONENT_TYPE_FLOAT64_NV:	return "VK_COMPONENT_TYPE_FLOAT64_NV";
2218		case VK_COMPONENT_TYPE_SINT8_NV:	return "VK_COMPONENT_TYPE_SINT8_NV";
2219		case VK_COMPONENT_TYPE_SINT16_NV:	return "VK_COMPONENT_TYPE_SINT16_NV";
2220		case VK_COMPONENT_TYPE_SINT32_NV:	return "VK_COMPONENT_TYPE_SINT32_NV";
2221		case VK_COMPONENT_TYPE_SINT64_NV:	return "VK_COMPONENT_TYPE_SINT64_NV";
2222		case VK_COMPONENT_TYPE_UINT8_NV:	return "VK_COMPONENT_TYPE_UINT8_NV";
2223		case VK_COMPONENT_TYPE_UINT16_NV:	return "VK_COMPONENT_TYPE_UINT16_NV";
2224		case VK_COMPONENT_TYPE_UINT32_NV:	return "VK_COMPONENT_TYPE_UINT32_NV";
2225		case VK_COMPONENT_TYPE_UINT64_NV:	return "VK_COMPONENT_TYPE_UINT64_NV";
2226		case VK_COMPONENT_TYPE_MAX_ENUM_NV:	return "VK_COMPONENT_TYPE_MAX_ENUM_NV";
2227		default:							return DE_NULL;
2228	}
2229}
2230
2231const char* getScopeNVName (VkScopeNV value)
2232{
2233	switch (value)
2234	{
2235		case VK_SCOPE_DEVICE_NV:		return "VK_SCOPE_DEVICE_NV";
2236		case VK_SCOPE_WORKGROUP_NV:		return "VK_SCOPE_WORKGROUP_NV";
2237		case VK_SCOPE_SUBGROUP_NV:		return "VK_SCOPE_SUBGROUP_NV";
2238		case VK_SCOPE_QUEUE_FAMILY_NV:	return "VK_SCOPE_QUEUE_FAMILY_NV";
2239		case VK_SCOPE_MAX_ENUM_NV:		return "VK_SCOPE_MAX_ENUM_NV";
2240		default:						return DE_NULL;
2241	}
2242}
2243
2244const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2245{
2246	switch (value)
2247	{
2248		case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:		return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2249		case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:	return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2250		case VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV:	return "VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV";
2251		default:										return DE_NULL;
2252	}
2253}
2254
2255const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2256{
2257	switch (value)
2258	{
2259		case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:			return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2260		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:		return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2261		case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:			return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2262		case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT:	return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2263		case VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT:			return "VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2264		default:												return DE_NULL;
2265	}
2266}
2267
2268const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2269{
2270	switch (value)
2271	{
2272		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2273		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2274		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2275		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2276		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2277		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2278		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2279		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2280		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
2281		default:												return DE_NULL;
2282	}
2283}
2284
2285const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
2286{
2287	switch (value)
2288	{
2289		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
2290		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
2291		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:				return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
2292		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
2293		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:	return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
2294		case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT:			return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT";
2295		default:														return DE_NULL;
2296	}
2297}
2298
2299const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2300{
2301	switch (value)
2302	{
2303		case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:	return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2304		case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2305		case VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV:			return "VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV";
2306		default:												return DE_NULL;
2307	}
2308}
2309
2310const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2311{
2312	switch (value)
2313	{
2314		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2315		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2316		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2317		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2318		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2319		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2320		case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:	return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2321		case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2322		case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2323		case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2324		case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:		return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2325		case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:				return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2326		case VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV:						return "VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV";
2327		default:														return DE_NULL;
2328	}
2329}
2330
2331const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2332{
2333	switch (value)
2334	{
2335		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2336		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2337		case VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:	return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2338		default:												return DE_NULL;
2339	}
2340}
2341
2342const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2343{
2344	switch (value)
2345	{
2346		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2347		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2348		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2349		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
2350		default:														return DE_NULL;
2351	}
2352}
2353
2354const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2355{
2356	switch (value)
2357	{
2358		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2359		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:	return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2360		case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR";
2361		default:														return DE_NULL;
2362	}
2363}
2364
2365const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2366{
2367	switch (value)
2368	{
2369		case VK_SHADER_GROUP_SHADER_GENERAL_KHR:		return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2370		case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:	return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2371		case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:		return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2372		case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:	return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2373		case VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR:		return "VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR";
2374		default:										return DE_NULL;
2375	}
2376}
2377
2378const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
2379{
2380	switch (value)
2381	{
2382		case VK_QUERY_RESULT_STATUS_ERROR_KHR:		return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
2383		case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:	return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
2384		case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:	return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
2385		case VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR:	return "VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR";
2386		default:									return DE_NULL;
2387	}
2388}
2389
2390const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
2391{
2392	switch (value)
2393	{
2394		case std_video_h264_chroma_format_idc_monochrome:	return "std_video_h264_chroma_format_idc_monochrome";
2395		case std_video_h264_chroma_format_idc_420:			return "std_video_h264_chroma_format_idc_420";
2396		case std_video_h264_chroma_format_idc_422:			return "std_video_h264_chroma_format_idc_422";
2397		case std_video_h264_chroma_format_idc_444:			return "std_video_h264_chroma_format_idc_444";
2398		default:											return DE_NULL;
2399	}
2400}
2401
2402const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
2403{
2404	switch (value)
2405	{
2406		case std_video_h264_profile_idc_baseline:				return "std_video_h264_profile_idc_baseline";
2407		case std_video_h264_profile_idc_main:					return "std_video_h264_profile_idc_main";
2408		case std_video_h264_profile_idc_high:					return "std_video_h264_profile_idc_high";
2409		case std_video_h264_profile_idc_high_444_predictive:	return "std_video_h264_profile_idc_high_444_predictive";
2410		case std_video_h264_profile_idc_invalid:				return "std_video_h264_profile_idc_invalid";
2411		default:												return DE_NULL;
2412	}
2413}
2414
2415const char* getdVideoH264LevelName (StdVideoH264Level value)
2416{
2417	switch (value)
2418	{
2419		case std_video_h264_level_1_0:		return "std_video_h264_level_1_0";
2420		case std_video_h264_level_1_1:		return "std_video_h264_level_1_1";
2421		case std_video_h264_level_1_2:		return "std_video_h264_level_1_2";
2422		case std_video_h264_level_1_3:		return "std_video_h264_level_1_3";
2423		case std_video_h264_level_2_0:		return "std_video_h264_level_2_0";
2424		case std_video_h264_level_2_1:		return "std_video_h264_level_2_1";
2425		case std_video_h264_level_2_2:		return "std_video_h264_level_2_2";
2426		case std_video_h264_level_3_0:		return "std_video_h264_level_3_0";
2427		case std_video_h264_level_3_1:		return "std_video_h264_level_3_1";
2428		case std_video_h264_level_3_2:		return "std_video_h264_level_3_2";
2429		case std_video_h264_level_4_0:		return "std_video_h264_level_4_0";
2430		case std_video_h264_level_4_1:		return "std_video_h264_level_4_1";
2431		case std_video_h264_level_4_2:		return "std_video_h264_level_4_2";
2432		case std_video_h264_level_5_0:		return "std_video_h264_level_5_0";
2433		case std_video_h264_level_5_1:		return "std_video_h264_level_5_1";
2434		case std_video_h264_level_5_2:		return "std_video_h264_level_5_2";
2435		case std_video_h264_level_6_0:		return "std_video_h264_level_6_0";
2436		case std_video_h264_level_6_1:		return "std_video_h264_level_6_1";
2437		case std_video_h264_level_6_2:		return "std_video_h264_level_6_2";
2438		case std_video_h264_level_invalid:	return "std_video_h264_level_invalid";
2439		default:							return DE_NULL;
2440	}
2441}
2442
2443const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
2444{
2445	switch (value)
2446	{
2447		case std_video_h264_poc_type_0:			return "std_video_h264_poc_type_0";
2448		case std_video_h264_poc_type_1:			return "std_video_h264_poc_type_1";
2449		case std_video_h264_poc_type_2:			return "std_video_h264_poc_type_2";
2450		case std_video_h264_poc_type_invalid:	return "std_video_h264_poc_type_invalid";
2451		default:								return DE_NULL;
2452	}
2453}
2454
2455const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
2456{
2457	switch (value)
2458	{
2459		case std_video_h264_aspect_ratio_idc_unspecified:	return "std_video_h264_aspect_ratio_idc_unspecified";
2460		case std_video_h264_aspect_ratio_idc_square:		return "std_video_h264_aspect_ratio_idc_square";
2461		case std_video_h264_aspect_ratio_idc_12_11:			return "std_video_h264_aspect_ratio_idc_12_11";
2462		case std_video_h264_aspect_ratio_idc_10_11:			return "std_video_h264_aspect_ratio_idc_10_11";
2463		case std_video_h264_aspect_ratio_idc_16_11:			return "std_video_h264_aspect_ratio_idc_16_11";
2464		case std_video_h264_aspect_ratio_idc_40_33:			return "std_video_h264_aspect_ratio_idc_40_33";
2465		case std_video_h264_aspect_ratio_idc_24_11:			return "std_video_h264_aspect_ratio_idc_24_11";
2466		case std_video_h264_aspect_ratio_idc_20_11:			return "std_video_h264_aspect_ratio_idc_20_11";
2467		case std_video_h264_aspect_ratio_idc_32_11:			return "std_video_h264_aspect_ratio_idc_32_11";
2468		case std_video_h264_aspect_ratio_idc_80_33:			return "std_video_h264_aspect_ratio_idc_80_33";
2469		case std_video_h264_aspect_ratio_idc_18_11:			return "std_video_h264_aspect_ratio_idc_18_11";
2470		case std_video_h264_aspect_ratio_idc_15_11:			return "std_video_h264_aspect_ratio_idc_15_11";
2471		case std_video_h264_aspect_ratio_idc_64_33:			return "std_video_h264_aspect_ratio_idc_64_33";
2472		case std_video_h264_aspect_ratio_idc_160_99:		return "std_video_h264_aspect_ratio_idc_160_99";
2473		case std_video_h264_aspect_ratio_idc_4_3:			return "std_video_h264_aspect_ratio_idc_4_3";
2474		case std_video_h264_aspect_ratio_idc_3_2:			return "std_video_h264_aspect_ratio_idc_3_2";
2475		case std_video_h264_aspect_ratio_idc_2_1:			return "std_video_h264_aspect_ratio_idc_2_1";
2476		case std_video_h264_aspect_ratio_idc_extended_sar:	return "std_video_h264_aspect_ratio_idc_extended_sar";
2477		case std_video_h264_aspect_ratio_idc_invalid:		return "std_video_h264_aspect_ratio_idc_invalid";
2478		default:											return DE_NULL;
2479	}
2480}
2481
2482const char* getdVideoH264WeightedBiPredIdcName (StdVideoH264WeightedBiPredIdc value)
2483{
2484	switch (value)
2485	{
2486		case std_video_h264_default_weighted_b_slices_prediction_idc:	return "std_video_h264_default_weighted_b_slices_prediction_idc";
2487		case std_video_h264_explicit_weighted_b_slices_prediction_idc:	return "std_video_h264_explicit_weighted_b_slices_prediction_idc";
2488		case std_video_h264_implicit_weighted_b_slices_prediction_idc:	return "std_video_h264_implicit_weighted_b_slices_prediction_idc";
2489		case std_video_h264_invalid_weighted_b_slices_prediction_idc:	return "std_video_h264_invalid_weighted_b_slices_prediction_idc";
2490		default:														return DE_NULL;
2491	}
2492}
2493
2494const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
2495{
2496	switch (value)
2497	{
2498		case std_video_h264_modification_of_pic_nums_idc_short_term_subtract:	return "std_video_h264_modification_of_pic_nums_idc_short_term_subtract";
2499		case std_video_h264_modification_of_pic_nums_idc_short_term_add:		return "std_video_h264_modification_of_pic_nums_idc_short_term_add";
2500		case std_video_h264_modification_of_pic_nums_idc_long_term:				return "std_video_h264_modification_of_pic_nums_idc_long_term";
2501		case std_video_h264_modification_of_pic_nums_idc_end:					return "std_video_h264_modification_of_pic_nums_idc_end";
2502		case std_video_h264_modification_of_pic_nums_idc_invalid:				return "std_video_h264_modification_of_pic_nums_idc_invalid";
2503		default:																return DE_NULL;
2504	}
2505}
2506
2507const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
2508{
2509	switch (value)
2510	{
2511		case std_video_h264_mem_mgmt_control_op_end:						return "std_video_h264_mem_mgmt_control_op_end";
2512		case std_video_h264_mem_mgmt_control_op_unmark_short_term:			return "std_video_h264_mem_mgmt_control_op_unmark_short_term";
2513		case std_video_h264_mem_mgmt_control_op_unmark_long_term:			return "std_video_h264_mem_mgmt_control_op_unmark_long_term";
2514		case std_video_h264_mem_mgmt_control_op_mark_long_term:				return "std_video_h264_mem_mgmt_control_op_mark_long_term";
2515		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";
2516		case std_video_h264_mem_mgmt_control_op_unmark_all:					return "std_video_h264_mem_mgmt_control_op_unmark_all";
2517		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";
2518		case std_video_h264_mem_mgmt_control_op_invalid:					return "std_video_h264_mem_mgmt_control_op_invalid";
2519		default:															return DE_NULL;
2520	}
2521}
2522
2523const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
2524{
2525	switch (value)
2526	{
2527		case std_video_h264_cabac_init_idc_0:		return "std_video_h264_cabac_init_idc_0";
2528		case std_video_h264_cabac_init_idc_1:		return "std_video_h264_cabac_init_idc_1";
2529		case std_video_h264_cabac_init_idc_2:		return "std_video_h264_cabac_init_idc_2";
2530		case std_video_h264_cabac_init_idc_invalid:	return "std_video_h264_cabac_init_idc_invalid";
2531		default:									return DE_NULL;
2532	}
2533}
2534
2535const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
2536{
2537	switch (value)
2538	{
2539		case std_video_h264_disable_deblocking_filter_idc_disabled:	return "std_video_h264_disable_deblocking_filter_idc_disabled";
2540		case std_video_h264_disable_deblocking_filter_idc_enabled:	return "std_video_h264_disable_deblocking_filter_idc_enabled";
2541		case std_video_h264_disable_deblocking_filter_idc_partial:	return "std_video_h264_disable_deblocking_filter_idc_partial";
2542		case std_video_h264_disable_deblocking_filter_idc_invalid:	return "std_video_h264_disable_deblocking_filter_idc_invalid";
2543		default:													return DE_NULL;
2544	}
2545}
2546
2547const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
2548{
2549	switch (value)
2550	{
2551		case std_video_h264_picture_type_i:			return "std_video_h264_picture_type_i";
2552		case std_video_h264_picture_type_p:			return "std_video_h264_picture_type_p";
2553		case std_video_h264_picture_type_b:			return "std_video_h264_picture_type_b";
2554		case std_video_h264_picture_type_invalid:	return "std_video_h264_picture_type_invalid";
2555		default:									return DE_NULL;
2556	}
2557}
2558
2559const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
2560{
2561	switch (value)
2562	{
2563		case std_video_h264_slice_type_i:		return "std_video_h264_slice_type_i";
2564		case std_video_h264_slice_type_p:		return "std_video_h264_slice_type_p";
2565		case std_video_h264_slice_type_b:		return "std_video_h264_slice_type_b";
2566		case std_video_h264_slice_type_invalid:	return "std_video_h264_slice_type_invalid";
2567		default:								return DE_NULL;
2568	}
2569}
2570
2571const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
2572{
2573	switch (value)
2574	{
2575		case std_video_h264_non_vcl_nalu_type_sps:				return "std_video_h264_non_vcl_nalu_type_sps";
2576		case std_video_h264_non_vcl_nalu_type_pps:				return "std_video_h264_non_vcl_nalu_type_pps";
2577		case std_video_h264_non_vcl_nalu_type_aud:				return "std_video_h264_non_vcl_nalu_type_aud";
2578		case std_video_h264_non_vcl_nalu_type_prefix:			return "std_video_h264_non_vcl_nalu_type_prefix";
2579		case std_video_h264_non_vcl_nalu_type_end_of_sequence:	return "std_video_h264_non_vcl_nalu_type_end_of_sequence";
2580		case std_video_h264_non_vcl_nalu_type_end_of_stream:	return "std_video_h264_non_vcl_nalu_type_end_of_stream";
2581		case std_video_h264_non_vcl_nalu_type_precoded:			return "std_video_h264_non_vcl_nalu_type_precoded";
2582		case std_video_h264_non_vcl_nalu_type_invalid:			return "std_video_h264_non_vcl_nalu_type_invalid";
2583		default:												return DE_NULL;
2584	}
2585}
2586
2587const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
2588{
2589	switch (value)
2590	{
2591		case std_video_h265_chroma_format_idc_monochrome:	return "std_video_h265_chroma_format_idc_monochrome";
2592		case std_video_h265_chroma_format_idc_420:			return "std_video_h265_chroma_format_idc_420";
2593		case std_video_h265_chroma_format_idc_422:			return "std_video_h265_chroma_format_idc_422";
2594		case std_video_h265_chroma_format_idc_444:			return "std_video_h265_chroma_format_idc_444";
2595		default:											return DE_NULL;
2596	}
2597}
2598
2599const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
2600{
2601	switch (value)
2602	{
2603		case std_video_h265_profile_idc_main:						return "std_video_h265_profile_idc_main";
2604		case std_video_h265_profile_idc_main_10:					return "std_video_h265_profile_idc_main_10";
2605		case std_video_h265_profile_idc_main_still_picture:			return "std_video_h265_profile_idc_main_still_picture";
2606		case std_video_h265_profile_idc_format_range_extensions:	return "std_video_h265_profile_idc_format_range_extensions";
2607		case std_video_h265_profile_idc_scc_extensions:				return "std_video_h265_profile_idc_scc_extensions";
2608		case std_video_h265_profile_idc_invalid:					return "std_video_h265_profile_idc_invalid";
2609		default:													return DE_NULL;
2610	}
2611}
2612
2613const char* getdVideoH265LevelName (StdVideoH265Level value)
2614{
2615	switch (value)
2616	{
2617		case std_video_h265_level_1_0:		return "std_video_h265_level_1_0";
2618		case std_video_h265_level_2_0:		return "std_video_h265_level_2_0";
2619		case std_video_h265_level_2_1:		return "std_video_h265_level_2_1";
2620		case std_video_h265_level_3_0:		return "std_video_h265_level_3_0";
2621		case std_video_h265_level_3_1:		return "std_video_h265_level_3_1";
2622		case std_video_h265_level_4_0:		return "std_video_h265_level_4_0";
2623		case std_video_h265_level_4_1:		return "std_video_h265_level_4_1";
2624		case std_video_h265_level_5_0:		return "std_video_h265_level_5_0";
2625		case std_video_h265_level_5_1:		return "std_video_h265_level_5_1";
2626		case std_video_h265_level_5_2:		return "std_video_h265_level_5_2";
2627		case std_video_h265_level_6_0:		return "std_video_h265_level_6_0";
2628		case std_video_h265_level_6_1:		return "std_video_h265_level_6_1";
2629		case std_video_h265_level_6_2:		return "std_video_h265_level_6_2";
2630		case std_video_h265_level_invalid:	return "std_video_h265_level_invalid";
2631		default:							return DE_NULL;
2632	}
2633}
2634
2635const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
2636{
2637	switch (value)
2638	{
2639		case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
2640		case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
2641		case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:				return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
2642		case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:	return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
2643		case VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT:					return "VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT";
2644		default:													return DE_NULL;
2645	}
2646}
2647
2648tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
2649{
2650	static const tcu::Format::BitDesc s_desc[] =
2651	{
2652		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,						"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
2653		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,									"VK_ACCESS_INDEX_READ_BIT"),
2654		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,						"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
2655		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,								"VK_ACCESS_UNIFORM_READ_BIT"),
2656		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,						"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
2657		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,									"VK_ACCESS_SHADER_READ_BIT"),
2658		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,								"VK_ACCESS_SHADER_WRITE_BIT"),
2659		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
2660		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,						"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
2661		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
2662		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,				"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
2663		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,								"VK_ACCESS_TRANSFER_READ_BIT"),
2664		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,								"VK_ACCESS_TRANSFER_WRITE_BIT"),
2665		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,									"VK_ACCESS_HOST_READ_BIT"),
2666		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,									"VK_ACCESS_HOST_WRITE_BIT"),
2667		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,									"VK_ACCESS_MEMORY_READ_BIT"),
2668		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,								"VK_ACCESS_MEMORY_WRITE_BIT"),
2669		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,				"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
2670		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
2671		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
2672		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,				"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
2673		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,		"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
2674		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
2675		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
2676		tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,					"VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
2677		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,				"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
2678		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
2679		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,					"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
2680		tcu::Format::BitDesc(VK_ACCESS_NONE_KHR,										"VK_ACCESS_NONE_KHR"),
2681		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,				"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
2682		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,				"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
2683		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,	"VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
2684		tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,								"VK_ACCESS_FLAG_BITS_MAX_ENUM"),
2685	};
2686	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2687}
2688
2689tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
2690{
2691	static const tcu::Format::BitDesc s_desc[] =
2692	{
2693		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
2694		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
2695		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
2696		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
2697		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
2698		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
2699		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
2700		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
2701		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
2702		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
2703		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
2704		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
2705		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
2706		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
2707		tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,		"VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
2708	};
2709	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2710}
2711
2712tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
2713{
2714	static const tcu::Format::BitDesc s_desc[] =
2715	{
2716		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,																"VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
2717		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,																"VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
2718		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,														"VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
2719		tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
2720		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,														"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
2721		tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,													"VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
2722		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,																"VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
2723		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,															"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
2724		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,														"VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
2725		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,													"VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2726		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,																	"VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
2727		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,																	"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
2728		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,													"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
2729		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,																"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
2730		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,																"VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
2731		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,														"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
2732		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,								"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
2733		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"),
2734		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"),
2735		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"),
2736		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,																	"VK_FORMAT_FEATURE_DISJOINT_BIT"),
2737		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,														"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
2738		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,													"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
2739		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
2740		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
2741		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
2742		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
2743		tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,														"VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
2744		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
2745		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2746		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,										"VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2747		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
2748		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
2749		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"),
2750		tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,													"VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"),
2751		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,							"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"),
2752		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,			"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"),
2753		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,			"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"),
2754		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,	"VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"),
2755		tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,																"VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"),
2756		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,													"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"),
2757		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
2758		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,																"VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM"),
2759	};
2760	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2761}
2762
2763tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
2764{
2765	static const tcu::Format::BitDesc s_desc[] =
2766	{
2767		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,						"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
2768		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,						"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
2769		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,						"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
2770		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,						"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
2771		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,						"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
2772		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,									"VK_IMAGE_CREATE_ALIAS_BIT"),
2773		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,			"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
2774		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,					"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
2775		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,			"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
2776		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,						"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
2777		tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,								"VK_IMAGE_CREATE_PROTECTED_BIT"),
2778		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,								"VK_IMAGE_CREATE_DISJOINT_BIT"),
2779		tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,						"VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
2780		tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,	"VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
2781		tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,						"VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
2782		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,		"VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
2783		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,				"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
2784		tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,		"VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
2785		tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,					"VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
2786		tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,							"VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
2787		tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,								"VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
2788		tcu::Format::BitDesc(VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,						"VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM"),
2789	};
2790	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2791}
2792
2793tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2794{
2795	static const tcu::Format::BitDesc s_desc[] =
2796	{
2797		tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,					"VK_SAMPLE_COUNT_1_BIT"),
2798		tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,					"VK_SAMPLE_COUNT_2_BIT"),
2799		tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,					"VK_SAMPLE_COUNT_4_BIT"),
2800		tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,					"VK_SAMPLE_COUNT_8_BIT"),
2801		tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,				"VK_SAMPLE_COUNT_16_BIT"),
2802		tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,				"VK_SAMPLE_COUNT_32_BIT"),
2803		tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,				"VK_SAMPLE_COUNT_64_BIT"),
2804		tcu::Format::BitDesc(VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,	"VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM"),
2805	};
2806	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2807}
2808
2809tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
2810{
2811	static const tcu::Format::BitDesc s_desc[] =
2812	{
2813		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,							"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
2814		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,							"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
2815		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,								"VK_IMAGE_USAGE_SAMPLED_BIT"),
2816		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,								"VK_IMAGE_USAGE_STORAGE_BIT"),
2817		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
2818		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,				"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2819		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,					"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
2820		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,						"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
2821		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
2822		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
2823		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
2824		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
2825		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
2826		tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,					"VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
2827		tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,					"VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
2828		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,				"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2829		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2830		tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,							"VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
2831	};
2832	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2833}
2834
2835tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
2836{
2837	static const tcu::Format::BitDesc s_desc[] =
2838	{
2839		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,		"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
2840		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,		"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
2841		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
2842		tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,		"VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
2843	};
2844	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2845}
2846
2847tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
2848{
2849	static const tcu::Format::BitDesc s_desc[] =
2850	{
2851		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,			"VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
2852		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,			"VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
2853		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,			"VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
2854		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,			"VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
2855		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,		"VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
2856		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,				"VK_MEMORY_PROPERTY_PROTECTED_BIT"),
2857		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
2858		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,	"VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
2859		tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,			"VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
2860	};
2861	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2862}
2863
2864tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
2865{
2866	static const tcu::Format::BitDesc s_desc[] =
2867	{
2868		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
2869		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
2870		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
2871		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
2872		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
2873		tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,	"VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
2874		tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,	"VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
2875		tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,	"VK_QUEUE_FLAG_BITS_MAX_ENUM"),
2876	};
2877	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2878}
2879
2880tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
2881{
2882	static const tcu::Format::BitDesc s_desc[] =
2883	{
2884		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,		"VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
2885		tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM,	"VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM"),
2886	};
2887	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2888}
2889
2890tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2891{
2892	static const tcu::Format::BitDesc s_desc[] =
2893	{
2894		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,								"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2895		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,							"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2896		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,							"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2897		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,							"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2898		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,				"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2899		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2900		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,							"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2901		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,							"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2902		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2903		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,						"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2904		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2905		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,							"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2906		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,								"VK_PIPELINE_STAGE_TRANSFER_BIT"),
2907		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2908		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,									"VK_PIPELINE_STAGE_HOST_BIT"),
2909		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,							"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2910		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,							"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2911		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,					"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2912		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2913		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2914		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2915		tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,					"VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
2916		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,							"VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
2917		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,							"VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
2918		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,			"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2919		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,					"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2920		tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE_KHR,									"VK_PIPELINE_STAGE_NONE_KHR"),
2921		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,					"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
2922		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,			"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
2923		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,	"VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2924		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,							"VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
2925	};
2926	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2927}
2928
2929tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
2930{
2931	static const tcu::Format::BitDesc s_desc[] =
2932	{
2933		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,		"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
2934		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,	"VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
2935	};
2936	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2937}
2938
2939tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2940{
2941	static const tcu::Format::BitDesc s_desc[] =
2942	{
2943		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,			"VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2944		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,		"VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2945		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT,	"VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2946		tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,			"VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM"),
2947	};
2948	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2949}
2950
2951tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
2952{
2953	static const tcu::Format::BitDesc s_desc[] =
2954	{
2955		tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,			"VK_FENCE_CREATE_SIGNALED_BIT"),
2956		tcu::Format::BitDesc(VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,	"VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM"),
2957	};
2958	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2959}
2960
2961tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2962{
2963	static const tcu::Format::BitDesc s_desc[] =
2964	{
2965		tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,	"VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"),
2966		tcu::Format::BitDesc(VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,	"VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM"),
2967	};
2968	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2969}
2970
2971tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
2972{
2973	static const tcu::Format::BitDesc s_desc[] =
2974	{
2975		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
2976		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,						"VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
2977		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,						"VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
2978		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
2979		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,					"VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
2980		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
2981		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,							"VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
2982		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
2983		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,			"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
2984		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,	"VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
2985		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,					"VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
2986		tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,								"VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM"),
2987	};
2988	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2989}
2990
2991tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
2992{
2993	static const tcu::Format::BitDesc s_desc[] =
2994	{
2995		tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,				"VK_QUERY_RESULT_64_BIT"),
2996		tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,				"VK_QUERY_RESULT_WAIT_BIT"),
2997		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,	"VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
2998		tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,			"VK_QUERY_RESULT_PARTIAL_BIT"),
2999		tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,	"VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
3000		tcu::Format::BitDesc(VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,	"VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM"),
3001	};
3002	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3003}
3004
3005tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
3006{
3007	static const tcu::Format::BitDesc s_desc[] =
3008	{
3009		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,						"VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
3010		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,						"VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
3011		tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,						"VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
3012		tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,							"VK_BUFFER_CREATE_PROTECTED_BIT"),
3013		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3014		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,	"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3015		tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3016		tcu::Format::BitDesc(VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,						"VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3017	};
3018	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3019}
3020
3021tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
3022{
3023	static const tcu::Format::BitDesc s_desc[] =
3024	{
3025		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,										"VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
3026		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,										"VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
3027		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
3028		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,								"VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
3029		tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,									"VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
3030		tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,									"VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
3031		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,										"VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
3032		tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,										"VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
3033		tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,									"VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
3034		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,								"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
3035		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
3036		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
3037		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
3038		tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,								"VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
3039		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,						"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3040		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,				"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3041		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,							"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3042		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"),
3043		tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,				"VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3044		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
3045		tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,									"VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
3046		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,							"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
3047		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,							"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
3048		tcu::Format::BitDesc(VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,									"VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3049	};
3050	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3051}
3052
3053tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
3054{
3055	static const tcu::Format::BitDesc s_desc[] =
3056	{
3057		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
3058		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
3059		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,						"VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
3060	};
3061	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3062}
3063
3064tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
3065{
3066	static const tcu::Format::BitDesc s_desc[] =
3067	{
3068		tcu::Format::BitDesc(VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM,	"VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM"),
3069	};
3070	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3071}
3072
3073tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
3074{
3075	static const tcu::Format::BitDesc s_desc[] =
3076	{
3077		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
3078		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,				"VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
3079	};
3080	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3081}
3082
3083tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
3084{
3085	static const tcu::Format::BitDesc s_desc[] =
3086	{
3087		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,				"VK_COLOR_COMPONENT_R_BIT"),
3088		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,				"VK_COLOR_COMPONENT_G_BIT"),
3089		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,				"VK_COLOR_COMPONENT_B_BIT"),
3090		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,				"VK_COLOR_COMPONENT_A_BIT"),
3091		tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,	"VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
3092	};
3093	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3094}
3095
3096tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
3097{
3098	static const tcu::Format::BitDesc s_desc[] =
3099	{
3100		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,								"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
3101		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,									"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
3102		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,											"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
3103		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,						"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
3104		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,										"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
3105		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"),
3106		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"),
3107		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"),
3108		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"),
3109		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3110		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,							"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3111		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"),
3112		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,									"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
3113		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,								"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
3114		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,				"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3115		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,								"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
3116		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,										"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
3117		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,				"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
3118		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,						"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
3119		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,											"VK_PIPELINE_CREATE_DISPATCH_BASE"),
3120		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,					"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
3121		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,										"VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
3122		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,										"VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
3123	};
3124	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3125}
3126
3127tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
3128{
3129	static const tcu::Format::BitDesc s_desc[] =
3130	{
3131		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,	"VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
3132		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,		"VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3133		tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,					"VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM"),
3134	};
3135	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3136}
3137
3138tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
3139{
3140	static const tcu::Format::BitDesc s_desc[] =
3141	{
3142		tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,					"VK_SHADER_STAGE_VERTEX_BIT"),
3143		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,		"VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
3144		tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,	"VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
3145		tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,					"VK_SHADER_STAGE_GEOMETRY_BIT"),
3146		tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,					"VK_SHADER_STAGE_FRAGMENT_BIT"),
3147		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
3148		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
3149		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
3150		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
3151		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
3152		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
3153		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
3154		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
3155		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
3156		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,					"VK_SHADER_STAGE_TASK_BIT_NV"),
3157		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,					"VK_SHADER_STAGE_MESH_BIT_NV"),
3158		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,					"VK_SHADER_STAGE_RAYGEN_BIT_NV"),
3159		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,				"VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
3160		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
3161		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,					"VK_SHADER_STAGE_MISS_BIT_NV"),
3162		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,			"VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
3163		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,				"VK_SHADER_STAGE_CALLABLE_BIT_NV"),
3164		tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,			"VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
3165	};
3166	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3167}
3168
3169tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
3170{
3171	static const tcu::Format::BitDesc s_desc[] =
3172	{
3173		tcu::Format::BitDesc(VK_CULL_MODE_NONE,					"VK_CULL_MODE_NONE"),
3174		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,			"VK_CULL_MODE_FRONT_BIT"),
3175		tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,				"VK_CULL_MODE_BACK_BIT"),
3176		tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,		"VK_CULL_MODE_FRONT_AND_BACK"),
3177		tcu::Format::BitDesc(VK_CULL_MODE_FLAG_BITS_MAX_ENUM,	"VK_CULL_MODE_FLAG_BITS_MAX_ENUM"),
3178	};
3179	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3180}
3181
3182tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
3183{
3184	static const tcu::Format::BitDesc s_desc[] =
3185	{
3186		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,							"VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
3187		tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,	"VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
3188		tcu::Format::BitDesc(VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,							"VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM"),
3189	};
3190	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3191}
3192
3193tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
3194{
3195	static const tcu::Format::BitDesc s_desc[] =
3196	{
3197		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,		"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
3198		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,		"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
3199		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,			"VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
3200		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,	"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
3201		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3202	};
3203	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3204}
3205
3206tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
3207{
3208	static const tcu::Format::BitDesc s_desc[] =
3209	{
3210		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,		"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
3211		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
3212		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,			"VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
3213		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,	"VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"),
3214		tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,				"VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
3215	};
3216	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3217}
3218
3219tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
3220{
3221	static const tcu::Format::BitDesc s_desc[] =
3222	{
3223		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,		"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
3224		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,	"VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3225	};
3226	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3227}
3228
3229tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
3230{
3231	static const tcu::Format::BitDesc s_desc[] =
3232	{
3233		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
3234		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
3235		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
3236		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,		"VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
3237		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,	"VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
3238		tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,		"VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
3239	};
3240	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3241}
3242
3243tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
3244{
3245	static const tcu::Format::BitDesc s_desc[] =
3246	{
3247		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,		"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
3248		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,	"VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"),
3249		tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,	"VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3250	};
3251	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3252}
3253
3254tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
3255{
3256	static const tcu::Format::BitDesc s_desc[] =
3257	{
3258		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
3259		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,	"VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
3260	};
3261	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3262}
3263
3264tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
3265{
3266	static const tcu::Format::BitDesc s_desc[] =
3267	{
3268		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,		"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
3269		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,	"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
3270		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,			"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
3271		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,			"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
3272		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,					"VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3273	};
3274	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3275}
3276
3277tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
3278{
3279	static const tcu::Format::BitDesc s_desc[] =
3280	{
3281		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,				"VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
3282		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,	"VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
3283		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,				"VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
3284		tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3285	};
3286	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3287}
3288
3289tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
3290{
3291	static const tcu::Format::BitDesc s_desc[] =
3292	{
3293		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
3294		tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,		"VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM"),
3295	};
3296	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3297}
3298
3299tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
3300{
3301	static const tcu::Format::BitDesc s_desc[] =
3302	{
3303		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		"VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
3304		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,	"VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
3305		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,		"VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
3306		tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,		"VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3307	};
3308	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3309}
3310
3311tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
3312{
3313	static const tcu::Format::BitDesc s_desc[] =
3314	{
3315		tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,			"VK_QUERY_CONTROL_PRECISE_BIT"),
3316		tcu::Format::BitDesc(VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,	"VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM"),
3317	};
3318	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3319}
3320
3321tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
3322{
3323	static const tcu::Format::BitDesc s_desc[] =
3324	{
3325		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,	"VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
3326		tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,	"VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM"),
3327	};
3328	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3329}
3330
3331tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
3332{
3333	static const tcu::Format::BitDesc s_desc[] =
3334	{
3335		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,				"VK_STENCIL_FACE_FRONT_BIT"),
3336		tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,				"VK_STENCIL_FACE_BACK_BIT"),
3337		tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,		"VK_STENCIL_FACE_FRONT_AND_BACK"),
3338		tcu::Format::BitDesc(VK_STENCIL_FRONT_AND_BACK,				"VK_STENCIL_FRONT_AND_BACK"),
3339		tcu::Format::BitDesc(VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,	"VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM"),
3340	};
3341	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3342}
3343
3344tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3345{
3346	static const tcu::Format::BitDesc s_desc[] =
3347	{
3348		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,				"VK_SUBGROUP_FEATURE_BASIC_BIT"),
3349		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,				"VK_SUBGROUP_FEATURE_VOTE_BIT"),
3350		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,		"VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3351		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,			"VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3352		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,			"VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3353		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,	"VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3354		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,			"VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3355		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,				"VK_SUBGROUP_FEATURE_QUAD_BIT"),
3356		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,	"VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3357		tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM"),
3358	};
3359	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3360}
3361
3362tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3363{
3364	static const tcu::Format::BitDesc s_desc[] =
3365	{
3366		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,			"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3367		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,			"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3368		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,		"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3369		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,		"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3370		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,		"VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"),
3371		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,		"VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"),
3372		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,	"VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"),
3373		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,	"VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"),
3374		tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,		"VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3375	};
3376	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3377}
3378
3379tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3380{
3381	static const tcu::Format::BitDesc s_desc[] =
3382	{
3383		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,						"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3384		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,						"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3385		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,		"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3386		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,					"VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
3387		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,					"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR"),
3388		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3389		tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,						"VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM"),
3390	};
3391	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3392}
3393
3394tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3395{
3396	static const tcu::Format::BitDesc s_desc[] =
3397	{
3398		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3399		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3400		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3401		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3402		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3403		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,							"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3404		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3405		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3406		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3407		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3408		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"),
3409		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3410		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3411		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3412		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3413		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"),
3414		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,				"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"),
3415		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"),
3416		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,					"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"),
3417		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,						"VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3418	};
3419	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3420}
3421
3422tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3423{
3424	static const tcu::Format::BitDesc s_desc[] =
3425	{
3426		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,		"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3427		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,			"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3428		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,			"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3429		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"),
3430		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"),
3431		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"),
3432		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,		"VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3433	};
3434	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3435}
3436
3437tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3438{
3439	static const tcu::Format::BitDesc s_desc[] =
3440	{
3441		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3442		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3443		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3444		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3445		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3446		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,		"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3447		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,	"VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3448		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,				"VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3449		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,			"VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3450	};
3451	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3452}
3453
3454tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3455{
3456	static const tcu::Format::BitDesc s_desc[] =
3457	{
3458		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3459		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3460		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,	"VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
3461		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,	"VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
3462		tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM"),
3463	};
3464	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3465}
3466
3467tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3468{
3469	static const tcu::Format::BitDesc s_desc[] =
3470	{
3471		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,			"VK_FENCE_IMPORT_TEMPORARY_BIT"),
3472		tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,		"VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
3473		tcu::Format::BitDesc(VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,	"VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM"),
3474	};
3475	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3476}
3477
3478tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3479{
3480	static const tcu::Format::BitDesc s_desc[] =
3481	{
3482		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,			"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3483		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,		"VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"),
3484		tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,	"VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM"),
3485	};
3486	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3487}
3488
3489tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3490{
3491	static const tcu::Format::BitDesc s_desc[] =
3492	{
3493		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3494		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3495		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3496		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3497		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,					"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3498		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3499		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"),
3500		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3501		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,		"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3502		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3503		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"),
3504		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,				"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3505		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,			"VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3506	};
3507	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3508}
3509
3510tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3511{
3512	static const tcu::Format::BitDesc s_desc[] =
3513	{
3514		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,		"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3515		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,		"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3516		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"),
3517		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,	"VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"),
3518		tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,	"VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM"),
3519	};
3520	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3521}
3522
3523tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
3524{
3525	static const tcu::Format::BitDesc s_desc[] =
3526	{
3527		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,					"VK_RESOLVE_MODE_NONE"),
3528		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,		"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
3529		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,			"VK_RESOLVE_MODE_AVERAGE_BIT"),
3530		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,				"VK_RESOLVE_MODE_MIN_BIT"),
3531		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,				"VK_RESOLVE_MODE_MAX_BIT"),
3532		tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE_KHR,				"VK_RESOLVE_MODE_NONE_KHR"),
3533		tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,	"VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR"),
3534		tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT_KHR,		"VK_RESOLVE_MODE_AVERAGE_BIT_KHR"),
3535		tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT_KHR,			"VK_RESOLVE_MODE_MIN_BIT_KHR"),
3536		tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT_KHR,			"VK_RESOLVE_MODE_MAX_BIT_KHR"),
3537		tcu::Format::BitDesc(VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,	"VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM"),
3538	};
3539	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3540}
3541
3542tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
3543{
3544	static const tcu::Format::BitDesc s_desc[] =
3545	{
3546		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,				"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
3547		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,		"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
3548		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,					"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
3549		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,		"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
3550		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,			"VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"),
3551		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,	"VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"),
3552		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,				"VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"),
3553		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,	"VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"),
3554		tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,					"VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM"),
3555	};
3556	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3557}
3558
3559tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3560{
3561	static const tcu::Format::BitDesc s_desc[] =
3562	{
3563		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,				"VK_SEMAPHORE_WAIT_ANY_BIT"),
3564		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT_KHR,			"VK_SEMAPHORE_WAIT_ANY_BIT_KHR"),
3565		tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,	"VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM"),
3566	};
3567	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3568}
3569
3570tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3571{
3572	static const tcu::Format::BitDesc s_desc[] =
3573	{
3574		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,						"VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3575		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3576		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3577		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,					"VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3578		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,			"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3579		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3580		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3581		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,	"VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3582		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,						"VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3583		tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,				"VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR"),
3584	};
3585	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3586}
3587
3588tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3589{
3590	static const tcu::Format::BitDesc s_desc[] =
3591	{
3592		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,				"VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3593		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,		"VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3594		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,	"VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3595		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,			"VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3596		tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,		"VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3597	};
3598	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3599}
3600
3601tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3602{
3603	static const tcu::Format::BitDesc s_desc[] =
3604	{
3605		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,	"VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3606		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,						"VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3607		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,				"VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3608		tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,				"VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3609	};
3610	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3611}
3612
3613tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3614{
3615	static const tcu::Format::BitDesc s_desc[] =
3616	{
3617		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3618		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,				"VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3619		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,					"VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3620		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,	"VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3621		tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,		"VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR"),
3622	};
3623	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3624}
3625
3626tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3627{
3628	static const tcu::Format::BitDesc s_desc[] =
3629	{
3630		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3631		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,						"VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3632		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,					"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3633		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,	"VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3634		tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,				"VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3635	};
3636	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3637}
3638
3639tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3640{
3641	static const tcu::Format::BitDesc s_desc[] =
3642	{
3643		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3644		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,	"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3645		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,		"VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"),
3646		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,		"VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"),
3647		tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,			"VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR"),
3648	};
3649	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3650}
3651
3652tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
3653{
3654	static const tcu::Format::BitDesc s_desc[] =
3655	{
3656		tcu::Format::BitDesc(VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,	"VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR"),
3657	};
3658	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3659}
3660
3661tcu::Format::Bitfield<32> getSubmitFlagsKHRStr (VkSubmitFlagsKHR value)
3662{
3663	static const tcu::Format::BitDesc s_desc[] =
3664	{
3665		tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT_KHR,		"VK_SUBMIT_PROTECTED_BIT_KHR"),
3666		tcu::Format::BitDesc(VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR,	"VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR"),
3667	};
3668	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3669}
3670
3671tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3672{
3673	static const tcu::Format::BitDesc s_desc[] =
3674	{
3675		tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,			"VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3676		tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,				"VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3677		tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,	"VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3678		tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,					"VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3679		tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,					"VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3680		tcu::Format::BitDesc(VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,		"VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT"),
3681	};
3682	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3683}
3684
3685tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3686{
3687	static const tcu::Format::BitDesc s_desc[] =
3688	{
3689		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3690		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,	"VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3691		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,			"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3692		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3693		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,		"VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV"),
3694	};
3695	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3696}
3697
3698tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3699{
3700	static const tcu::Format::BitDesc s_desc[] =
3701	{
3702		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,	"VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3703		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3704		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,		"VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3705		tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,	"VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV"),
3706	};
3707	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3708}
3709
3710tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
3711{
3712	static const tcu::Format::BitDesc s_desc[] =
3713	{
3714		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,			"VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
3715		tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,	"VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT"),
3716	};
3717	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3718}
3719
3720tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3721{
3722	static const tcu::Format::BitDesc s_desc[] =
3723	{
3724		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,			"VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3725		tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,				"VK_SURFACE_COUNTER_VBLANK_EXT"),
3726		tcu::Format::BitDesc(VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT,	"VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT"),
3727	};
3728	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3729}
3730
3731tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3732{
3733	static const tcu::Format::BitDesc s_desc[] =
3734	{
3735		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3736		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3737		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
3738		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,				"VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
3739		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,	"VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT"),
3740	};
3741	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3742}
3743
3744tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
3745{
3746	static const tcu::Format::BitDesc s_desc[] =
3747	{
3748		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,			"VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
3749		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
3750		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,		"VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
3751		tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,	"VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
3752	};
3753	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3754}
3755
3756tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
3757{
3758	static const tcu::Format::BitDesc s_desc[] =
3759	{
3760		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
3761		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
3762		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,								"VK_GEOMETRY_OPAQUE_BIT_NV"),
3763		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
3764		tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
3765	};
3766	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3767}
3768
3769tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
3770{
3771	static const tcu::Format::BitDesc s_desc[] =
3772	{
3773		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,		"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
3774		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
3775		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
3776		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
3777		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,				"VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
3778		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
3779		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
3780		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
3781		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
3782	};
3783	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3784}
3785
3786tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
3787{
3788	static const tcu::Format::BitDesc s_desc[] =
3789	{
3790		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
3791		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
3792		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
3793		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
3794		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
3795		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
3796		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
3797		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
3798		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
3799		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
3800		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
3801	};
3802	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3803}
3804
3805tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
3806{
3807	static const tcu::Format::BitDesc s_desc[] =
3808	{
3809		tcu::Format::BitDesc(VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,	"VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD"),
3810	};
3811	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3812}
3813
3814tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsEXTStr (VkPipelineCreationFeedbackFlagsEXT value)
3815{
3816	static const tcu::Format::BitDesc s_desc[] =
3817	{
3818		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,							"VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"),
3819		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,	"VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"),
3820		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,		"VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"),
3821		tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT,					"VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT"),
3822	};
3823	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3824}
3825
3826tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
3827{
3828	static const tcu::Format::BitDesc s_desc[] =
3829	{
3830		tcu::Format::BitDesc(VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,	"VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD"),
3831	};
3832	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3833}
3834
3835tcu::Format::Bitfield<32> getToolPurposeFlagsEXTStr (VkToolPurposeFlagsEXT value)
3836{
3837	static const tcu::Format::BitDesc s_desc[] =
3838	{
3839		tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,			"VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"),
3840		tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT_EXT,				"VK_TOOL_PURPOSE_PROFILING_BIT_EXT"),
3841		tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT_EXT,				"VK_TOOL_PURPOSE_TRACING_BIT_EXT"),
3842		tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,	"VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"),
3843		tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,	"VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"),
3844		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,		"VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3845		tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,			"VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3846		tcu::Format::BitDesc(VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT,		"VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT"),
3847	};
3848	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3849}
3850
3851tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
3852{
3853	static const tcu::Format::BitDesc s_desc[] =
3854	{
3855		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
3856		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,	"VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
3857	};
3858	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3859}
3860
3861tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
3862{
3863	static const tcu::Format::BitDesc s_desc[] =
3864	{
3865		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
3866		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
3867		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
3868		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,		"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
3869	};
3870	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3871}
3872
3873tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsEXTStr (VkPrivateDataSlotCreateFlagsEXT value)
3874{
3875	static const tcu::Format::BitDesc s_desc[] =
3876	{
3877		tcu::Format::BitDesc(VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT,	"VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
3878	};
3879	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3880}
3881
3882tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
3883{
3884	static const tcu::Format::BitDesc s_desc[] =
3885	{
3886		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
3887		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
3888		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
3889		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,				"VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
3890	};
3891	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3892}
3893
3894tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
3895{
3896	static const tcu::Format::BitDesc s_desc[] =
3897	{
3898		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,	"VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3899		tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,					"VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3900	};
3901	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3902}
3903
3904tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
3905{
3906	static const tcu::Format::BitDesc s_desc[] =
3907	{
3908		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,			"VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
3909		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
3910		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
3911		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,		"VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
3912		tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR"),
3913	};
3914	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3915}
3916
3917tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
3918{
3919	static const tcu::Format::BitDesc s_desc[] =
3920	{
3921		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,			"VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
3922		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,		"VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
3923		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
3924		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
3925		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,				"VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
3926		tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR"),
3927	};
3928	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3929}
3930
3931tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
3932{
3933	static const tcu::Format::BitDesc s_desc[] =
3934	{
3935		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
3936		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
3937		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
3938		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,				"VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
3939		tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR"),
3940	};
3941	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3942}
3943
3944tcu::Format::Bitfield<32> getVideoCapabilitiesFlagsKHRStr (VkVideoCapabilitiesFlagsKHR value)
3945{
3946	static const tcu::Format::BitDesc s_desc[] =
3947	{
3948		tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR,			"VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR"),
3949		tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR,	"VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
3950		tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR,				"VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR"),
3951	};
3952	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3953}
3954
3955tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
3956{
3957	static const tcu::Format::BitDesc s_desc[] =
3958	{
3959		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,				"VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
3960		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR,	"VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
3961		tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3962	};
3963	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3964}
3965
3966tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
3967{
3968	static const tcu::Format::BitDesc s_desc[] =
3969	{
3970		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,				"VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
3971		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,				"VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
3972		tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
3973	};
3974	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3975}
3976
3977tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
3978{
3979	static const tcu::Format::BitDesc s_desc[] =
3980	{
3981		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR,		"VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR"),
3982		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,			"VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
3983		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,			"VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
3984		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,		"VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
3985		tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR"),
3986	};
3987	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3988}
3989
3990tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
3991{
3992	static const tcu::Format::BitDesc s_desc[] =
3993	{
3994		tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,				"VK_VIDEO_DECODE_DEFAULT_KHR"),
3995		tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,		"VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
3996		tcu::Format::BitDesc(VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR"),
3997	};
3998	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3999}
4000
4001tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
4002{
4003	static const tcu::Format::BitDesc s_desc[] =
4004	{
4005		tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,				"VK_VIDEO_ENCODE_DEFAULT_KHR"),
4006		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,		"VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
4007		tcu::Format::BitDesc(VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR"),
4008	};
4009	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4010}
4011
4012tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
4013{
4014	static const tcu::Format::BitDesc s_desc[] =
4015	{
4016		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
4017		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR"),
4018		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4019	};
4020	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4021}
4022
4023tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4024{
4025	static const tcu::Format::BitDesc s_desc[] =
4026	{
4027		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,			"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4028		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4029		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,				"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4030		tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR,	"VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR"),
4031	};
4032	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4033}
4034
4035tcu::Format::Bitfield<32> getVideoEncodeH264CapabilitiesFlagsEXTStr (VkVideoEncodeH264CapabilitiesFlagsEXT value)
4036{
4037	static const tcu::Format::BitDesc s_desc[] =
4038	{
4039		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,							"VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4040		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,							"VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4041		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT"),
4042		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,					"VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4043		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4044		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"),
4045		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4046		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4047		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4048		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"),
4049		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT,	"VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"),
4050		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT,				"VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT"),
4051	};
4052	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4053}
4054
4055tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4056{
4057	static const tcu::Format::BitDesc s_desc[] =
4058	{
4059		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,				"VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4060		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,				"VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4061		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4062		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4063	};
4064	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4065}
4066
4067tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4068{
4069	static const tcu::Format::BitDesc s_desc[] =
4070	{
4071		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4072		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4073		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,			"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4074		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4075	};
4076	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4077}
4078
4079tcu::Format::Bitfield<32> getVideoEncodeH264CreateFlagsEXTStr (VkVideoEncodeH264CreateFlagsEXT value)
4080{
4081	static const tcu::Format::BitDesc s_desc[] =
4082	{
4083		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,				"VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"),
4084		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT,		"VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"),
4085		tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT,	"VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
4086	};
4087	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4088}
4089
4090tcu::Format::Bitfield<32> getVideoDecodeH264FieldLayoutFlagsEXTStr (VkVideoDecodeH264FieldLayoutFlagsEXT value)
4091{
4092	static const tcu::Format::BitDesc s_desc[] =
4093	{
4094		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT,					"VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT"),
4095		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT,		"VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT"),
4096		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT,	"VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT"),
4097		tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT,				"VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT"),
4098	};
4099	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4100}
4101
4102tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
4103{
4104	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4105}
4106
4107tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4108{
4109	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4110}
4111
4112tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4113{
4114	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4115}
4116
4117tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4118{
4119	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4120}
4121
4122tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4123{
4124	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4125}
4126
4127tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4128{
4129	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4130}
4131
4132tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4133{
4134	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4135}
4136
4137tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4138{
4139	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4140}
4141
4142tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4143{
4144	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4145}
4146
4147tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4148{
4149	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4150}
4151
4152tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4153{
4154	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4155}
4156
4157tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4158{
4159	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4160}
4161
4162tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
4163{
4164	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4165}
4166
4167tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
4168{
4169	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4170}
4171
4172tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4173{
4174	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4175}
4176
4177tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
4178{
4179	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4180}
4181
4182tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4183{
4184	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4185}
4186
4187tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4188{
4189	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4190}
4191
4192tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4193{
4194	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4195}
4196
4197tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4198{
4199	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4200}
4201
4202tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4203{
4204	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4205}
4206
4207tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
4208{
4209	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4210}
4211
4212tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
4213{
4214	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4215}
4216
4217tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
4218{
4219	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4220}
4221
4222tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
4223{
4224	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4225}
4226
4227tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
4228{
4229	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4230}
4231
4232tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
4233{
4234	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4235}
4236
4237tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
4238{
4239	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4240}
4241
4242tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
4243{
4244	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4245}
4246
4247tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
4248{
4249	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4250}
4251
4252tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
4253{
4254	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4255}
4256
4257tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
4258{
4259	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4260}
4261
4262tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4263{
4264	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4265}
4266
4267tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
4268{
4269	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4270}
4271
4272tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4273{
4274	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4275}
4276
4277tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
4278{
4279	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4280}
4281
4282tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
4283{
4284	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4285}
4286
4287tcu::Format::Bitfield<32> getVideoDecodeH264CreateFlagsEXTStr (VkVideoDecodeH264CreateFlagsEXT value)
4288{
4289	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4290}
4291
4292tcu::Format::Bitfield<32> getVideoDecodeH265CreateFlagsEXTStr (VkVideoDecodeH265CreateFlagsEXT value)
4293{
4294	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4295}
4296
4297tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4298{
4299	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4300}
4301
4302tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4303{
4304	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4305}
4306
4307tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4308{
4309	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4310}
4311
4312tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4313{
4314	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4315}
4316
4317tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4318{
4319	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4320}
4321
4322tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4323{
4324	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4325}
4326
4327tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4328{
4329	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4330}
4331
4332tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4333{
4334	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4335}
4336
4337tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4338{
4339	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4340}
4341
4342tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4343{
4344	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4345}
4346
4347tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
4348{
4349	static const tcu::Format::BitDesc s_desc[] =
4350	{
4351		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4352		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4353		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4354		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4355		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4356		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4357		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4358		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4359		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4360		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4361		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4362	};
4363	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4364}
4365
4366std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
4367{
4368	s << "VkExtent2D = {\n";
4369	s << "\twidth = " << value.width << '\n';
4370	s << "\theight = " << value.height << '\n';
4371	s << '}';
4372	return s;
4373}
4374
4375std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
4376{
4377	s << "VkExtent3D = {\n";
4378	s << "\twidth = " << value.width << '\n';
4379	s << "\theight = " << value.height << '\n';
4380	s << "\tdepth = " << value.depth << '\n';
4381	s << '}';
4382	return s;
4383}
4384
4385std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
4386{
4387	s << "VkOffset2D = {\n";
4388	s << "\tx = " << value.x << '\n';
4389	s << "\ty = " << value.y << '\n';
4390	s << '}';
4391	return s;
4392}
4393
4394std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
4395{
4396	s << "VkOffset3D = {\n";
4397	s << "\tx = " << value.x << '\n';
4398	s << "\ty = " << value.y << '\n';
4399	s << "\tz = " << value.z << '\n';
4400	s << '}';
4401	return s;
4402}
4403
4404std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
4405{
4406	s << "VkRect2D = {\n";
4407	s << "\toffset = " << value.offset << '\n';
4408	s << "\textent = " << value.extent << '\n';
4409	s << '}';
4410	return s;
4411}
4412
4413std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
4414{
4415	s << "VkBaseInStructure = {\n";
4416	s << "\tsType = " << value.sType << '\n';
4417	s << "\tpNext = " << value.pNext << '\n';
4418	s << '}';
4419	return s;
4420}
4421
4422std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
4423{
4424	s << "VkBaseOutStructure = {\n";
4425	s << "\tsType = " << value.sType << '\n';
4426	s << "\tpNext = " << value.pNext << '\n';
4427	s << '}';
4428	return s;
4429}
4430
4431std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
4432{
4433	s << "VkBufferMemoryBarrier = {\n";
4434	s << "\tsType = " << value.sType << '\n';
4435	s << "\tpNext = " << value.pNext << '\n';
4436	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4437	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4438	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4439	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4440	s << "\tbuffer = " << value.buffer << '\n';
4441	s << "\toffset = " << value.offset << '\n';
4442	s << "\tsize = " << value.size << '\n';
4443	s << '}';
4444	return s;
4445}
4446
4447std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
4448{
4449	s << "VkDispatchIndirectCommand = {\n";
4450	s << "\tx = " << value.x << '\n';
4451	s << "\ty = " << value.y << '\n';
4452	s << "\tz = " << value.z << '\n';
4453	s << '}';
4454	return s;
4455}
4456
4457std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
4458{
4459	s << "VkDrawIndexedIndirectCommand = {\n";
4460	s << "\tindexCount = " << value.indexCount << '\n';
4461	s << "\tinstanceCount = " << value.instanceCount << '\n';
4462	s << "\tfirstIndex = " << value.firstIndex << '\n';
4463	s << "\tvertexOffset = " << value.vertexOffset << '\n';
4464	s << "\tfirstInstance = " << value.firstInstance << '\n';
4465	s << '}';
4466	return s;
4467}
4468
4469std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
4470{
4471	s << "VkDrawIndirectCommand = {\n";
4472	s << "\tvertexCount = " << value.vertexCount << '\n';
4473	s << "\tinstanceCount = " << value.instanceCount << '\n';
4474	s << "\tfirstVertex = " << value.firstVertex << '\n';
4475	s << "\tfirstInstance = " << value.firstInstance << '\n';
4476	s << '}';
4477	return s;
4478}
4479
4480std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
4481{
4482	s << "VkImageSubresourceRange = {\n";
4483	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
4484	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
4485	s << "\tlevelCount = " << value.levelCount << '\n';
4486	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
4487	s << "\tlayerCount = " << value.layerCount << '\n';
4488	s << '}';
4489	return s;
4490}
4491
4492std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
4493{
4494	s << "VkImageMemoryBarrier = {\n";
4495	s << "\tsType = " << value.sType << '\n';
4496	s << "\tpNext = " << value.pNext << '\n';
4497	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4498	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4499	s << "\toldLayout = " << value.oldLayout << '\n';
4500	s << "\tnewLayout = " << value.newLayout << '\n';
4501	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4502	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4503	s << "\timage = " << value.image << '\n';
4504	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
4505	s << '}';
4506	return s;
4507}
4508
4509std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
4510{
4511	s << "VkMemoryBarrier = {\n";
4512	s << "\tsType = " << value.sType << '\n';
4513	s << "\tpNext = " << value.pNext << '\n';
4514	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4515	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4516	s << '}';
4517	return s;
4518}
4519
4520std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
4521{
4522	s << "VkAllocationCallbacks = {\n";
4523	s << "\tpUserData = " << value.pUserData << '\n';
4524	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
4525	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
4526	s << "\tpfnFree = " << value.pfnFree << '\n';
4527	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
4528	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
4529	s << '}';
4530	return s;
4531}
4532
4533std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
4534{
4535	s << "VkApplicationInfo = {\n";
4536	s << "\tsType = " << value.sType << '\n';
4537	s << "\tpNext = " << value.pNext << '\n';
4538	s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
4539	s << "\tapplicationVersion = " << value.applicationVersion << '\n';
4540	s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
4541	s << "\tengineVersion = " << value.engineVersion << '\n';
4542	s << "\tapiVersion = " << value.apiVersion << '\n';
4543	s << '}';
4544	return s;
4545}
4546
4547std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
4548{
4549	s << "VkFormatProperties = {\n";
4550	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
4551	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
4552	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
4553	s << '}';
4554	return s;
4555}
4556
4557std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
4558{
4559	s << "VkImageFormatProperties = {\n";
4560	s << "\tmaxExtent = " << value.maxExtent << '\n';
4561	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
4562	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
4563	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
4564	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
4565	s << '}';
4566	return s;
4567}
4568
4569std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
4570{
4571	s << "VkInstanceCreateInfo = {\n";
4572	s << "\tsType = " << value.sType << '\n';
4573	s << "\tpNext = " << value.pNext << '\n';
4574	s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
4575	s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
4576	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4577	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4578	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4579	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4580	s << '}';
4581	return s;
4582}
4583
4584std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
4585{
4586	s << "VkMemoryHeap = {\n";
4587	s << "\tsize = " << value.size << '\n';
4588	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
4589	s << '}';
4590	return s;
4591}
4592
4593std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
4594{
4595	s << "VkMemoryType = {\n";
4596	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
4597	s << "\theapIndex = " << value.heapIndex << '\n';
4598	s << '}';
4599	return s;
4600}
4601
4602std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
4603{
4604	s << "VkPhysicalDeviceFeatures = {\n";
4605	s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
4606	s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
4607	s << "\timageCubeArray = " << value.imageCubeArray << '\n';
4608	s << "\tindependentBlend = " << value.independentBlend << '\n';
4609	s << "\tgeometryShader = " << value.geometryShader << '\n';
4610	s << "\ttessellationShader = " << value.tessellationShader << '\n';
4611	s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
4612	s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
4613	s << "\tlogicOp = " << value.logicOp << '\n';
4614	s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
4615	s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
4616	s << "\tdepthClamp = " << value.depthClamp << '\n';
4617	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
4618	s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
4619	s << "\tdepthBounds = " << value.depthBounds << '\n';
4620	s << "\twideLines = " << value.wideLines << '\n';
4621	s << "\tlargePoints = " << value.largePoints << '\n';
4622	s << "\talphaToOne = " << value.alphaToOne << '\n';
4623	s << "\tmultiViewport = " << value.multiViewport << '\n';
4624	s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
4625	s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
4626	s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
4627	s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
4628	s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
4629	s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
4630	s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
4631	s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
4632	s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
4633	s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
4634	s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
4635	s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
4636	s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
4637	s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
4638	s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
4639	s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
4640	s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
4641	s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
4642	s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
4643	s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
4644	s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
4645	s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
4646	s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
4647	s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
4648	s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
4649	s << "\tsparseBinding = " << value.sparseBinding << '\n';
4650	s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
4651	s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
4652	s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
4653	s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
4654	s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
4655	s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
4656	s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
4657	s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
4658	s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
4659	s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
4660	s << '}';
4661	return s;
4662}
4663
4664std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
4665{
4666	s << "VkPhysicalDeviceLimits = {\n";
4667	s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
4668	s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
4669	s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
4670	s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
4671	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
4672	s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
4673	s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
4674	s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
4675	s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
4676	s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
4677	s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
4678	s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
4679	s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
4680	s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
4681	s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
4682	s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
4683	s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
4684	s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
4685	s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
4686	s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
4687	s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
4688	s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
4689	s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
4690	s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
4691	s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
4692	s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
4693	s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
4694	s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
4695	s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
4696	s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
4697	s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
4698	s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
4699	s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
4700	s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
4701	s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
4702	s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
4703	s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
4704	s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
4705	s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
4706	s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
4707	s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
4708	s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
4709	s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
4710	s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
4711	s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
4712	s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
4713	s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
4714	s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
4715	s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
4716	s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
4717	s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
4718	s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
4719	s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
4720	s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
4721	s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
4722	s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
4723	s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
4724	s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
4725	s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
4726	s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
4727	s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
4728	s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
4729	s << "\tmaxViewports = " << value.maxViewports << '\n';
4730	s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
4731	s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
4732	s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
4733	s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
4734	s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
4735	s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
4736	s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
4737	s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
4738	s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
4739	s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
4740	s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
4741	s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
4742	s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
4743	s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
4744	s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
4745	s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
4746	s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
4747	s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
4748	s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
4749	s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
4750	s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
4751	s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
4752	s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
4753	s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
4754	s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
4755	s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
4756	s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
4757	s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
4758	s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
4759	s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
4760	s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
4761	s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
4762	s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
4763	s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
4764	s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
4765	s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
4766	s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
4767	s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
4768	s << "\tstrictLines = " << value.strictLines << '\n';
4769	s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
4770	s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
4771	s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
4772	s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
4773	s << '}';
4774	return s;
4775}
4776
4777std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
4778{
4779	s << "VkPhysicalDeviceMemoryProperties = {\n";
4780	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
4781	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
4782	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
4783	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
4784	s << '}';
4785	return s;
4786}
4787
4788std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
4789{
4790	s << "VkPhysicalDeviceSparseProperties = {\n";
4791	s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
4792	s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
4793	s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
4794	s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
4795	s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
4796	s << '}';
4797	return s;
4798}
4799
4800std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
4801{
4802	s << "VkPhysicalDeviceProperties = {\n";
4803	s << "\tapiVersion = " << value.apiVersion << '\n';
4804	s << "\tdriverVersion = " << value.driverVersion << '\n';
4805	s << "\tvendorID = " << value.vendorID << '\n';
4806	s << "\tdeviceID = " << value.deviceID << '\n';
4807	s << "\tdeviceType = " << value.deviceType << '\n';
4808	s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
4809	s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
4810	s << "\tlimits = " << value.limits << '\n';
4811	s << "\tsparseProperties = " << value.sparseProperties << '\n';
4812	s << '}';
4813	return s;
4814}
4815
4816std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
4817{
4818	s << "VkQueueFamilyProperties = {\n";
4819	s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
4820	s << "\tqueueCount = " << value.queueCount << '\n';
4821	s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
4822	s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
4823	s << '}';
4824	return s;
4825}
4826
4827std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
4828{
4829	s << "VkDeviceQueueCreateInfo = {\n";
4830	s << "\tsType = " << value.sType << '\n';
4831	s << "\tpNext = " << value.pNext << '\n';
4832	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
4833	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
4834	s << "\tqueueCount = " << value.queueCount << '\n';
4835	s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
4836	s << '}';
4837	return s;
4838}
4839
4840std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
4841{
4842	s << "VkDeviceCreateInfo = {\n";
4843	s << "\tsType = " << value.sType << '\n';
4844	s << "\tpNext = " << value.pNext << '\n';
4845	s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
4846	s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
4847	s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
4848	s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4849	s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4850	s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4851	s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4852	s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
4853	s << '}';
4854	return s;
4855}
4856
4857std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
4858{
4859	s << "VkExtensionProperties = {\n";
4860	s << "\textensionName = " << (const char*)value.extensionName << '\n';
4861	s << "\tspecVersion = " << value.specVersion << '\n';
4862	s << '}';
4863	return s;
4864}
4865
4866std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
4867{
4868	s << "VkLayerProperties = {\n";
4869	s << "\tlayerName = " << (const char*)value.layerName << '\n';
4870	s << "\tspecVersion = " << value.specVersion << '\n';
4871	s << "\timplementationVersion = " << value.implementationVersion << '\n';
4872	s << "\tdescription = " << (const char*)value.description << '\n';
4873	s << '}';
4874	return s;
4875}
4876
4877std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
4878{
4879	s << "VkSubmitInfo = {\n";
4880	s << "\tsType = " << value.sType << '\n';
4881	s << "\tpNext = " << value.pNext << '\n';
4882	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
4883	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
4884	s << "\tpWaitDstStageMask = " << value.pWaitDstStageMask << '\n';
4885	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
4886	s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
4887	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
4888	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
4889	s << '}';
4890	return s;
4891}
4892
4893std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
4894{
4895	s << "VkMappedMemoryRange = {\n";
4896	s << "\tsType = " << value.sType << '\n';
4897	s << "\tpNext = " << value.pNext << '\n';
4898	s << "\tmemory = " << value.memory << '\n';
4899	s << "\toffset = " << value.offset << '\n';
4900	s << "\tsize = " << value.size << '\n';
4901	s << '}';
4902	return s;
4903}
4904
4905std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
4906{
4907	s << "VkMemoryAllocateInfo = {\n";
4908	s << "\tsType = " << value.sType << '\n';
4909	s << "\tpNext = " << value.pNext << '\n';
4910	s << "\tallocationSize = " << value.allocationSize << '\n';
4911	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
4912	s << '}';
4913	return s;
4914}
4915
4916std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
4917{
4918	s << "VkMemoryRequirements = {\n";
4919	s << "\tsize = " << value.size << '\n';
4920	s << "\talignment = " << value.alignment << '\n';
4921	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
4922	s << '}';
4923	return s;
4924}
4925
4926std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
4927{
4928	s << "VkSparseMemoryBind = {\n";
4929	s << "\tresourceOffset = " << value.resourceOffset << '\n';
4930	s << "\tsize = " << value.size << '\n';
4931	s << "\tmemory = " << value.memory << '\n';
4932	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
4933	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
4934	s << '}';
4935	return s;
4936}
4937
4938std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
4939{
4940	s << "VkSparseBufferMemoryBindInfo = {\n";
4941	s << "\tbuffer = " << value.buffer << '\n';
4942	s << "\tbindCount = " << value.bindCount << '\n';
4943	s << "\tpBinds = " << value.pBinds << '\n';
4944	s << '}';
4945	return s;
4946}
4947
4948std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
4949{
4950	s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
4951	s << "\timage = " << value.image << '\n';
4952	s << "\tbindCount = " << value.bindCount << '\n';
4953	s << "\tpBinds = " << value.pBinds << '\n';
4954	s << '}';
4955	return s;
4956}
4957
4958std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
4959{
4960	s << "VkImageSubresource = {\n";
4961	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
4962	s << "\tmipLevel = " << value.mipLevel << '\n';
4963	s << "\tarrayLayer = " << value.arrayLayer << '\n';
4964	s << '}';
4965	return s;
4966}
4967
4968std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
4969{
4970	s << "VkSparseImageMemoryBind = {\n";
4971	s << "\tsubresource = " << value.subresource << '\n';
4972	s << "\toffset = " << value.offset << '\n';
4973	s << "\textent = " << value.extent << '\n';
4974	s << "\tmemory = " << value.memory << '\n';
4975	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
4976	s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
4977	s << '}';
4978	return s;
4979}
4980
4981std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
4982{
4983	s << "VkSparseImageMemoryBindInfo = {\n";
4984	s << "\timage = " << value.image << '\n';
4985	s << "\tbindCount = " << value.bindCount << '\n';
4986	s << "\tpBinds = " << value.pBinds << '\n';
4987	s << '}';
4988	return s;
4989}
4990
4991std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
4992{
4993	s << "VkBindSparseInfo = {\n";
4994	s << "\tsType = " << value.sType << '\n';
4995	s << "\tpNext = " << value.pNext << '\n';
4996	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
4997	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
4998	s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
4999	s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5000	s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5001	s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5002	s << "\timageBindCount = " << value.imageBindCount << '\n';
5003	s << "\tpImageBinds = " << value.pImageBinds << '\n';
5004	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5005	s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5006	s << '}';
5007	return s;
5008}
5009
5010std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5011{
5012	s << "VkSparseImageFormatProperties = {\n";
5013	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5014	s << "\timageGranularity = " << value.imageGranularity << '\n';
5015	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5016	s << '}';
5017	return s;
5018}
5019
5020std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5021{
5022	s << "VkSparseImageMemoryRequirements = {\n";
5023	s << "\tformatProperties = " << value.formatProperties << '\n';
5024	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5025	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5026	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5027	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5028	s << '}';
5029	return s;
5030}
5031
5032std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
5033{
5034	s << "VkFenceCreateInfo = {\n";
5035	s << "\tsType = " << value.sType << '\n';
5036	s << "\tpNext = " << value.pNext << '\n';
5037	s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
5038	s << '}';
5039	return s;
5040}
5041
5042std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
5043{
5044	s << "VkSemaphoreCreateInfo = {\n";
5045	s << "\tsType = " << value.sType << '\n';
5046	s << "\tpNext = " << value.pNext << '\n';
5047	s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
5048	s << '}';
5049	return s;
5050}
5051
5052std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
5053{
5054	s << "VkEventCreateInfo = {\n";
5055	s << "\tsType = " << value.sType << '\n';
5056	s << "\tpNext = " << value.pNext << '\n';
5057	s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
5058	s << '}';
5059	return s;
5060}
5061
5062std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
5063{
5064	s << "VkQueryPoolCreateInfo = {\n";
5065	s << "\tsType = " << value.sType << '\n';
5066	s << "\tpNext = " << value.pNext << '\n';
5067	s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
5068	s << "\tqueryType = " << value.queryType << '\n';
5069	s << "\tqueryCount = " << value.queryCount << '\n';
5070	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5071	s << '}';
5072	return s;
5073}
5074
5075std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5076{
5077	s << "VkBufferCreateInfo = {\n";
5078	s << "\tsType = " << value.sType << '\n';
5079	s << "\tpNext = " << value.pNext << '\n';
5080	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5081	s << "\tsize = " << value.size << '\n';
5082	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5083	s << "\tsharingMode = " << value.sharingMode << '\n';
5084	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5085	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5086	s << '}';
5087	return s;
5088}
5089
5090std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5091{
5092	s << "VkBufferViewCreateInfo = {\n";
5093	s << "\tsType = " << value.sType << '\n';
5094	s << "\tpNext = " << value.pNext << '\n';
5095	s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5096	s << "\tbuffer = " << value.buffer << '\n';
5097	s << "\tformat = " << value.format << '\n';
5098	s << "\toffset = " << value.offset << '\n';
5099	s << "\trange = " << value.range << '\n';
5100	s << '}';
5101	return s;
5102}
5103
5104std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5105{
5106	s << "VkImageCreateInfo = {\n";
5107	s << "\tsType = " << value.sType << '\n';
5108	s << "\tpNext = " << value.pNext << '\n';
5109	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5110	s << "\timageType = " << value.imageType << '\n';
5111	s << "\tformat = " << value.format << '\n';
5112	s << "\textent = " << value.extent << '\n';
5113	s << "\tmipLevels = " << value.mipLevels << '\n';
5114	s << "\tarrayLayers = " << value.arrayLayers << '\n';
5115	s << "\tsamples = " << value.samples << '\n';
5116	s << "\ttiling = " << value.tiling << '\n';
5117	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5118	s << "\tsharingMode = " << value.sharingMode << '\n';
5119	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5120	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5121	s << "\tinitialLayout = " << value.initialLayout << '\n';
5122	s << '}';
5123	return s;
5124}
5125
5126std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5127{
5128	s << "VkSubresourceLayout = {\n";
5129	s << "\toffset = " << value.offset << '\n';
5130	s << "\tsize = " << value.size << '\n';
5131	s << "\trowPitch = " << value.rowPitch << '\n';
5132	s << "\tarrayPitch = " << value.arrayPitch << '\n';
5133	s << "\tdepthPitch = " << value.depthPitch << '\n';
5134	s << '}';
5135	return s;
5136}
5137
5138std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5139{
5140	s << "VkComponentMapping = {\n";
5141	s << "\tr = " << value.r << '\n';
5142	s << "\tg = " << value.g << '\n';
5143	s << "\tb = " << value.b << '\n';
5144	s << "\ta = " << value.a << '\n';
5145	s << '}';
5146	return s;
5147}
5148
5149std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5150{
5151	s << "VkImageViewCreateInfo = {\n";
5152	s << "\tsType = " << value.sType << '\n';
5153	s << "\tpNext = " << value.pNext << '\n';
5154	s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5155	s << "\timage = " << value.image << '\n';
5156	s << "\tviewType = " << value.viewType << '\n';
5157	s << "\tformat = " << value.format << '\n';
5158	s << "\tcomponents = " << value.components << '\n';
5159	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5160	s << '}';
5161	return s;
5162}
5163
5164std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5165{
5166	s << "VkShaderModuleCreateInfo = {\n";
5167	s << "\tsType = " << value.sType << '\n';
5168	s << "\tpNext = " << value.pNext << '\n';
5169	s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5170	s << "\tcodeSize = " << value.codeSize << '\n';
5171	s << "\tpCode = " << value.pCode << '\n';
5172	s << '}';
5173	return s;
5174}
5175
5176std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
5177{
5178	s << "VkPipelineCacheCreateInfo = {\n";
5179	s << "\tsType = " << value.sType << '\n';
5180	s << "\tpNext = " << value.pNext << '\n';
5181	s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
5182	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
5183	s << "\tpInitialData = " << value.pInitialData << '\n';
5184	s << '}';
5185	return s;
5186}
5187
5188std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5189{
5190	s << "VkSpecializationMapEntry = {\n";
5191	s << "\tconstantID = " << value.constantID << '\n';
5192	s << "\toffset = " << value.offset << '\n';
5193	s << "\tsize = " << value.size << '\n';
5194	s << '}';
5195	return s;
5196}
5197
5198std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5199{
5200	s << "VkSpecializationInfo = {\n";
5201	s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5202	s << "\tpMapEntries = " << value.pMapEntries << '\n';
5203	s << "\tdataSize = " << value.dataSize << '\n';
5204	s << "\tpData = " << value.pData << '\n';
5205	s << '}';
5206	return s;
5207}
5208
5209std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5210{
5211	s << "VkPipelineShaderStageCreateInfo = {\n";
5212	s << "\tsType = " << value.sType << '\n';
5213	s << "\tpNext = " << value.pNext << '\n';
5214	s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5215	s << "\tstage = " << value.stage << '\n';
5216	s << "\tmodule = " << value.module << '\n';
5217	s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5218	s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5219	s << '}';
5220	return s;
5221}
5222
5223std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5224{
5225	s << "VkComputePipelineCreateInfo = {\n";
5226	s << "\tsType = " << value.sType << '\n';
5227	s << "\tpNext = " << value.pNext << '\n';
5228	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5229	s << "\tstage = " << value.stage << '\n';
5230	s << "\tlayout = " << value.layout << '\n';
5231	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5232	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5233	s << '}';
5234	return s;
5235}
5236
5237std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5238{
5239	s << "VkVertexInputBindingDescription = {\n";
5240	s << "\tbinding = " << value.binding << '\n';
5241	s << "\tstride = " << value.stride << '\n';
5242	s << "\tinputRate = " << value.inputRate << '\n';
5243	s << '}';
5244	return s;
5245}
5246
5247std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5248{
5249	s << "VkVertexInputAttributeDescription = {\n";
5250	s << "\tlocation = " << value.location << '\n';
5251	s << "\tbinding = " << value.binding << '\n';
5252	s << "\tformat = " << value.format << '\n';
5253	s << "\toffset = " << value.offset << '\n';
5254	s << '}';
5255	return s;
5256}
5257
5258std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5259{
5260	s << "VkPipelineVertexInputStateCreateInfo = {\n";
5261	s << "\tsType = " << value.sType << '\n';
5262	s << "\tpNext = " << value.pNext << '\n';
5263	s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5264	s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5265	s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5266	s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5267	s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5268	s << '}';
5269	return s;
5270}
5271
5272std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5273{
5274	s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5275	s << "\tsType = " << value.sType << '\n';
5276	s << "\tpNext = " << value.pNext << '\n';
5277	s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5278	s << "\ttopology = " << value.topology << '\n';
5279	s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5280	s << '}';
5281	return s;
5282}
5283
5284std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5285{
5286	s << "VkPipelineTessellationStateCreateInfo = {\n";
5287	s << "\tsType = " << value.sType << '\n';
5288	s << "\tpNext = " << value.pNext << '\n';
5289	s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5290	s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5291	s << '}';
5292	return s;
5293}
5294
5295std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5296{
5297	s << "VkViewport = {\n";
5298	s << "\tx = " << value.x << '\n';
5299	s << "\ty = " << value.y << '\n';
5300	s << "\twidth = " << value.width << '\n';
5301	s << "\theight = " << value.height << '\n';
5302	s << "\tminDepth = " << value.minDepth << '\n';
5303	s << "\tmaxDepth = " << value.maxDepth << '\n';
5304	s << '}';
5305	return s;
5306}
5307
5308std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5309{
5310	s << "VkPipelineViewportStateCreateInfo = {\n";
5311	s << "\tsType = " << value.sType << '\n';
5312	s << "\tpNext = " << value.pNext << '\n';
5313	s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5314	s << "\tviewportCount = " << value.viewportCount << '\n';
5315	s << "\tpViewports = " << value.pViewports << '\n';
5316	s << "\tscissorCount = " << value.scissorCount << '\n';
5317	s << "\tpScissors = " << value.pScissors << '\n';
5318	s << '}';
5319	return s;
5320}
5321
5322std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5323{
5324	s << "VkPipelineRasterizationStateCreateInfo = {\n";
5325	s << "\tsType = " << value.sType << '\n';
5326	s << "\tpNext = " << value.pNext << '\n';
5327	s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5328	s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5329	s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5330	s << "\tpolygonMode = " << value.polygonMode << '\n';
5331	s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5332	s << "\tfrontFace = " << value.frontFace << '\n';
5333	s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5334	s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5335	s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5336	s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5337	s << "\tlineWidth = " << value.lineWidth << '\n';
5338	s << '}';
5339	return s;
5340}
5341
5342std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5343{
5344	s << "VkPipelineMultisampleStateCreateInfo = {\n";
5345	s << "\tsType = " << value.sType << '\n';
5346	s << "\tpNext = " << value.pNext << '\n';
5347	s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5348	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5349	s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5350	s << "\tminSampleShading = " << value.minSampleShading << '\n';
5351	s << "\tpSampleMask = " << value.pSampleMask << '\n';
5352	s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5353	s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5354	s << '}';
5355	return s;
5356}
5357
5358std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
5359{
5360	s << "VkStencilOpState = {\n";
5361	s << "\tfailOp = " << value.failOp << '\n';
5362	s << "\tpassOp = " << value.passOp << '\n';
5363	s << "\tdepthFailOp = " << value.depthFailOp << '\n';
5364	s << "\tcompareOp = " << value.compareOp << '\n';
5365	s << "\tcompareMask = " << value.compareMask << '\n';
5366	s << "\twriteMask = " << value.writeMask << '\n';
5367	s << "\treference = " << value.reference << '\n';
5368	s << '}';
5369	return s;
5370}
5371
5372std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
5373{
5374	s << "VkPipelineDepthStencilStateCreateInfo = {\n";
5375	s << "\tsType = " << value.sType << '\n';
5376	s << "\tpNext = " << value.pNext << '\n';
5377	s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
5378	s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
5379	s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
5380	s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
5381	s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
5382	s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
5383	s << "\tfront = " << value.front << '\n';
5384	s << "\tback = " << value.back << '\n';
5385	s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
5386	s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
5387	s << '}';
5388	return s;
5389}
5390
5391std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5392{
5393	s << "VkPipelineColorBlendAttachmentState = {\n";
5394	s << "\tblendEnable = " << value.blendEnable << '\n';
5395	s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5396	s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5397	s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5398	s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5399	s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5400	s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5401	s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5402	s << '}';
5403	return s;
5404}
5405
5406std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
5407{
5408	s << "VkPipelineColorBlendStateCreateInfo = {\n";
5409	s << "\tsType = " << value.sType << '\n';
5410	s << "\tpNext = " << value.pNext << '\n';
5411	s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
5412	s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
5413	s << "\tlogicOp = " << value.logicOp << '\n';
5414	s << "\tattachmentCount = " << value.attachmentCount << '\n';
5415	s << "\tpAttachments = " << value.pAttachments << '\n';
5416	s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
5417	s << '}';
5418	return s;
5419}
5420
5421std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
5422{
5423	s << "VkPipelineDynamicStateCreateInfo = {\n";
5424	s << "\tsType = " << value.sType << '\n';
5425	s << "\tpNext = " << value.pNext << '\n';
5426	s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
5427	s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
5428	s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
5429	s << '}';
5430	return s;
5431}
5432
5433std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
5434{
5435	s << "VkGraphicsPipelineCreateInfo = {\n";
5436	s << "\tsType = " << value.sType << '\n';
5437	s << "\tpNext = " << value.pNext << '\n';
5438	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5439	s << "\tstageCount = " << value.stageCount << '\n';
5440	s << "\tpStages = " << value.pStages << '\n';
5441	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
5442	s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
5443	s << "\tpTessellationState = " << value.pTessellationState << '\n';
5444	s << "\tpViewportState = " << value.pViewportState << '\n';
5445	s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
5446	s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
5447	s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
5448	s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
5449	s << "\tpDynamicState = " << value.pDynamicState << '\n';
5450	s << "\tlayout = " << value.layout << '\n';
5451	s << "\trenderPass = " << value.renderPass << '\n';
5452	s << "\tsubpass = " << value.subpass << '\n';
5453	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5454	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5455	s << '}';
5456	return s;
5457}
5458
5459std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
5460{
5461	s << "VkPushConstantRange = {\n";
5462	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5463	s << "\toffset = " << value.offset << '\n';
5464	s << "\tsize = " << value.size << '\n';
5465	s << '}';
5466	return s;
5467}
5468
5469std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
5470{
5471	s << "VkPipelineLayoutCreateInfo = {\n";
5472	s << "\tsType = " << value.sType << '\n';
5473	s << "\tpNext = " << value.pNext << '\n';
5474	s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
5475	s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
5476	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5477	s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
5478	s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
5479	s << '}';
5480	return s;
5481}
5482
5483std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
5484{
5485	s << "VkSamplerCreateInfo = {\n";
5486	s << "\tsType = " << value.sType << '\n';
5487	s << "\tpNext = " << value.pNext << '\n';
5488	s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
5489	s << "\tmagFilter = " << value.magFilter << '\n';
5490	s << "\tminFilter = " << value.minFilter << '\n';
5491	s << "\tmipmapMode = " << value.mipmapMode << '\n';
5492	s << "\taddressModeU = " << value.addressModeU << '\n';
5493	s << "\taddressModeV = " << value.addressModeV << '\n';
5494	s << "\taddressModeW = " << value.addressModeW << '\n';
5495	s << "\tmipLodBias = " << value.mipLodBias << '\n';
5496	s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
5497	s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
5498	s << "\tcompareEnable = " << value.compareEnable << '\n';
5499	s << "\tcompareOp = " << value.compareOp << '\n';
5500	s << "\tminLod = " << value.minLod << '\n';
5501	s << "\tmaxLod = " << value.maxLod << '\n';
5502	s << "\tborderColor = " << value.borderColor << '\n';
5503	s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
5504	s << '}';
5505	return s;
5506}
5507
5508std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5509{
5510	s << "VkCopyDescriptorSet = {\n";
5511	s << "\tsType = " << value.sType << '\n';
5512	s << "\tpNext = " << value.pNext << '\n';
5513	s << "\tsrcSet = " << value.srcSet << '\n';
5514	s << "\tsrcBinding = " << value.srcBinding << '\n';
5515	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5516	s << "\tdstSet = " << value.dstSet << '\n';
5517	s << "\tdstBinding = " << value.dstBinding << '\n';
5518	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5519	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5520	s << '}';
5521	return s;
5522}
5523
5524std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5525{
5526	s << "VkDescriptorBufferInfo = {\n";
5527	s << "\tbuffer = " << value.buffer << '\n';
5528	s << "\toffset = " << value.offset << '\n';
5529	s << "\trange = " << value.range << '\n';
5530	s << '}';
5531	return s;
5532}
5533
5534std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5535{
5536	s << "VkDescriptorImageInfo = {\n";
5537	s << "\tsampler = " << value.sampler << '\n';
5538	s << "\timageView = " << value.imageView << '\n';
5539	s << "\timageLayout = " << value.imageLayout << '\n';
5540	s << '}';
5541	return s;
5542}
5543
5544std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5545{
5546	s << "VkDescriptorPoolSize = {\n";
5547	s << "\ttype = " << value.type << '\n';
5548	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5549	s << '}';
5550	return s;
5551}
5552
5553std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5554{
5555	s << "VkDescriptorPoolCreateInfo = {\n";
5556	s << "\tsType = " << value.sType << '\n';
5557	s << "\tpNext = " << value.pNext << '\n';
5558	s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5559	s << "\tmaxSets = " << value.maxSets << '\n';
5560	s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5561	s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5562	s << '}';
5563	return s;
5564}
5565
5566std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5567{
5568	s << "VkDescriptorSetAllocateInfo = {\n";
5569	s << "\tsType = " << value.sType << '\n';
5570	s << "\tpNext = " << value.pNext << '\n';
5571	s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5572	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5573	s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5574	s << '}';
5575	return s;
5576}
5577
5578std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5579{
5580	s << "VkDescriptorSetLayoutBinding = {\n";
5581	s << "\tbinding = " << value.binding << '\n';
5582	s << "\tdescriptorType = " << value.descriptorType << '\n';
5583	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5584	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5585	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5586	s << '}';
5587	return s;
5588}
5589
5590std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5591{
5592	s << "VkDescriptorSetLayoutCreateInfo = {\n";
5593	s << "\tsType = " << value.sType << '\n';
5594	s << "\tpNext = " << value.pNext << '\n';
5595	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5596	s << "\tbindingCount = " << value.bindingCount << '\n';
5597	s << "\tpBindings = " << value.pBindings << '\n';
5598	s << '}';
5599	return s;
5600}
5601
5602std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5603{
5604	s << "VkWriteDescriptorSet = {\n";
5605	s << "\tsType = " << value.sType << '\n';
5606	s << "\tpNext = " << value.pNext << '\n';
5607	s << "\tdstSet = " << value.dstSet << '\n';
5608	s << "\tdstBinding = " << value.dstBinding << '\n';
5609	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5610	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5611	s << "\tdescriptorType = " << value.descriptorType << '\n';
5612	s << "\tpImageInfo = " << value.pImageInfo << '\n';
5613	s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5614	s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5615	s << '}';
5616	return s;
5617}
5618
5619std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
5620{
5621	s << "VkAttachmentDescription = {\n";
5622	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
5623	s << "\tformat = " << value.format << '\n';
5624	s << "\tsamples = " << value.samples << '\n';
5625	s << "\tloadOp = " << value.loadOp << '\n';
5626	s << "\tstoreOp = " << value.storeOp << '\n';
5627	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
5628	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
5629	s << "\tinitialLayout = " << value.initialLayout << '\n';
5630	s << "\tfinalLayout = " << value.finalLayout << '\n';
5631	s << '}';
5632	return s;
5633}
5634
5635std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
5636{
5637	s << "VkAttachmentReference = {\n";
5638	s << "\tattachment = " << value.attachment << '\n';
5639	s << "\tlayout = " << value.layout << '\n';
5640	s << '}';
5641	return s;
5642}
5643
5644std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
5645{
5646	s << "VkFramebufferCreateInfo = {\n";
5647	s << "\tsType = " << value.sType << '\n';
5648	s << "\tpNext = " << value.pNext << '\n';
5649	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
5650	s << "\trenderPass = " << value.renderPass << '\n';
5651	s << "\tattachmentCount = " << value.attachmentCount << '\n';
5652	s << "\tpAttachments = " << value.pAttachments << '\n';
5653	s << "\twidth = " << value.width << '\n';
5654	s << "\theight = " << value.height << '\n';
5655	s << "\tlayers = " << value.layers << '\n';
5656	s << '}';
5657	return s;
5658}
5659
5660std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
5661{
5662	s << "VkSubpassDescription = {\n";
5663	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
5664	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
5665	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
5666	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
5667	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
5668	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
5669	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
5670	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
5671	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
5672	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
5673	s << '}';
5674	return s;
5675}
5676
5677std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
5678{
5679	s << "VkSubpassDependency = {\n";
5680	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
5681	s << "\tdstSubpass = " << value.dstSubpass << '\n';
5682	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
5683	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
5684	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5685	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5686	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
5687	s << '}';
5688	return s;
5689}
5690
5691std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
5692{
5693	s << "VkRenderPassCreateInfo = {\n";
5694	s << "\tsType = " << value.sType << '\n';
5695	s << "\tpNext = " << value.pNext << '\n';
5696	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
5697	s << "\tattachmentCount = " << value.attachmentCount << '\n';
5698	s << "\tpAttachments = " << value.pAttachments << '\n';
5699	s << "\tsubpassCount = " << value.subpassCount << '\n';
5700	s << "\tpSubpasses = " << value.pSubpasses << '\n';
5701	s << "\tdependencyCount = " << value.dependencyCount << '\n';
5702	s << "\tpDependencies = " << value.pDependencies << '\n';
5703	s << '}';
5704	return s;
5705}
5706
5707std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
5708{
5709	s << "VkCommandPoolCreateInfo = {\n";
5710	s << "\tsType = " << value.sType << '\n';
5711	s << "\tpNext = " << value.pNext << '\n';
5712	s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
5713	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5714	s << '}';
5715	return s;
5716}
5717
5718std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
5719{
5720	s << "VkCommandBufferAllocateInfo = {\n";
5721	s << "\tsType = " << value.sType << '\n';
5722	s << "\tpNext = " << value.pNext << '\n';
5723	s << "\tcommandPool = " << value.commandPool << '\n';
5724	s << "\tlevel = " << value.level << '\n';
5725	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
5726	s << '}';
5727	return s;
5728}
5729
5730std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
5731{
5732	s << "VkCommandBufferInheritanceInfo = {\n";
5733	s << "\tsType = " << value.sType << '\n';
5734	s << "\tpNext = " << value.pNext << '\n';
5735	s << "\trenderPass = " << value.renderPass << '\n';
5736	s << "\tsubpass = " << value.subpass << '\n';
5737	s << "\tframebuffer = " << value.framebuffer << '\n';
5738	s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
5739	s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
5740	s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5741	s << '}';
5742	return s;
5743}
5744
5745std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
5746{
5747	s << "VkCommandBufferBeginInfo = {\n";
5748	s << "\tsType = " << value.sType << '\n';
5749	s << "\tpNext = " << value.pNext << '\n';
5750	s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
5751	s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
5752	s << '}';
5753	return s;
5754}
5755
5756std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
5757{
5758	s << "VkBufferCopy = {\n";
5759	s << "\tsrcOffset = " << value.srcOffset << '\n';
5760	s << "\tdstOffset = " << value.dstOffset << '\n';
5761	s << "\tsize = " << value.size << '\n';
5762	s << '}';
5763	return s;
5764}
5765
5766std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
5767{
5768	s << "VkImageSubresourceLayers = {\n";
5769	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5770	s << "\tmipLevel = " << value.mipLevel << '\n';
5771	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5772	s << "\tlayerCount = " << value.layerCount << '\n';
5773	s << '}';
5774	return s;
5775}
5776
5777std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
5778{
5779	s << "VkBufferImageCopy = {\n";
5780	s << "\tbufferOffset = " << value.bufferOffset << '\n';
5781	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5782	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5783	s << "\timageSubresource = " << value.imageSubresource << '\n';
5784	s << "\timageOffset = " << value.imageOffset << '\n';
5785	s << "\timageExtent = " << value.imageExtent << '\n';
5786	s << '}';
5787	return s;
5788}
5789
5790std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
5791{
5792	s << "VkClearColorValue = {\n";
5793	s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
5794	s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
5795	s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
5796	s << '}';
5797	return s;
5798}
5799
5800std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
5801{
5802	s << "VkClearDepthStencilValue = {\n";
5803	s << "\tdepth = " << value.depth << '\n';
5804	s << "\tstencil = " << value.stencil << '\n';
5805	s << '}';
5806	return s;
5807}
5808
5809std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
5810{
5811	s << "VkClearValue = {\n";
5812	s << "\tcolor = " << value.color << '\n';
5813	s << "\tdepthStencil = " << value.depthStencil << '\n';
5814	s << '}';
5815	return s;
5816}
5817
5818std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
5819{
5820	s << "VkClearAttachment = {\n";
5821	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5822	s << "\tcolorAttachment = " << value.colorAttachment << '\n';
5823	s << "\tclearValue = " << value.clearValue << '\n';
5824	s << '}';
5825	return s;
5826}
5827
5828std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
5829{
5830	s << "VkClearRect = {\n";
5831	s << "\trect = " << value.rect << '\n';
5832	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5833	s << "\tlayerCount = " << value.layerCount << '\n';
5834	s << '}';
5835	return s;
5836}
5837
5838std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
5839{
5840	s << "VkImageBlit = {\n";
5841	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5842	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
5843	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5844	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
5845	s << '}';
5846	return s;
5847}
5848
5849std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
5850{
5851	s << "VkImageCopy = {\n";
5852	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5853	s << "\tsrcOffset = " << value.srcOffset << '\n';
5854	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5855	s << "\tdstOffset = " << value.dstOffset << '\n';
5856	s << "\textent = " << value.extent << '\n';
5857	s << '}';
5858	return s;
5859}
5860
5861std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
5862{
5863	s << "VkImageResolve = {\n";
5864	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5865	s << "\tsrcOffset = " << value.srcOffset << '\n';
5866	s << "\tdstSubresource = " << value.dstSubresource << '\n';
5867	s << "\tdstOffset = " << value.dstOffset << '\n';
5868	s << "\textent = " << value.extent << '\n';
5869	s << '}';
5870	return s;
5871}
5872
5873std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
5874{
5875	s << "VkRenderPassBeginInfo = {\n";
5876	s << "\tsType = " << value.sType << '\n';
5877	s << "\tpNext = " << value.pNext << '\n';
5878	s << "\trenderPass = " << value.renderPass << '\n';
5879	s << "\tframebuffer = " << value.framebuffer << '\n';
5880	s << "\trenderArea = " << value.renderArea << '\n';
5881	s << "\tclearValueCount = " << value.clearValueCount << '\n';
5882	s << "\tpClearValues = " << value.pClearValues << '\n';
5883	s << '}';
5884	return s;
5885}
5886
5887std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
5888{
5889	s << "VkPhysicalDeviceSubgroupProperties = {\n";
5890	s << "\tsType = " << value.sType << '\n';
5891	s << "\tpNext = " << value.pNext << '\n';
5892	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
5893	s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
5894	s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
5895	s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
5896	s << '}';
5897	return s;
5898}
5899
5900std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
5901{
5902	s << "VkBindBufferMemoryInfo = {\n";
5903	s << "\tsType = " << value.sType << '\n';
5904	s << "\tpNext = " << value.pNext << '\n';
5905	s << "\tbuffer = " << value.buffer << '\n';
5906	s << "\tmemory = " << value.memory << '\n';
5907	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5908	s << '}';
5909	return s;
5910}
5911
5912std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
5913{
5914	s << "VkBindImageMemoryInfo = {\n";
5915	s << "\tsType = " << value.sType << '\n';
5916	s << "\tpNext = " << value.pNext << '\n';
5917	s << "\timage = " << value.image << '\n';
5918	s << "\tmemory = " << value.memory << '\n';
5919	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5920	s << '}';
5921	return s;
5922}
5923
5924std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
5925{
5926	s << "VkPhysicalDevice16BitStorageFeatures = {\n";
5927	s << "\tsType = " << value.sType << '\n';
5928	s << "\tpNext = " << value.pNext << '\n';
5929	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
5930	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
5931	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
5932	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
5933	s << '}';
5934	return s;
5935}
5936
5937std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
5938{
5939	s << "VkMemoryDedicatedRequirements = {\n";
5940	s << "\tsType = " << value.sType << '\n';
5941	s << "\tpNext = " << value.pNext << '\n';
5942	s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
5943	s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
5944	s << '}';
5945	return s;
5946}
5947
5948std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
5949{
5950	s << "VkMemoryDedicatedAllocateInfo = {\n";
5951	s << "\tsType = " << value.sType << '\n';
5952	s << "\tpNext = " << value.pNext << '\n';
5953	s << "\timage = " << value.image << '\n';
5954	s << "\tbuffer = " << value.buffer << '\n';
5955	s << '}';
5956	return s;
5957}
5958
5959std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
5960{
5961	s << "VkMemoryAllocateFlagsInfo = {\n";
5962	s << "\tsType = " << value.sType << '\n';
5963	s << "\tpNext = " << value.pNext << '\n';
5964	s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
5965	s << "\tdeviceMask = " << value.deviceMask << '\n';
5966	s << '}';
5967	return s;
5968}
5969
5970std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
5971{
5972	s << "VkDeviceGroupRenderPassBeginInfo = {\n";
5973	s << "\tsType = " << value.sType << '\n';
5974	s << "\tpNext = " << value.pNext << '\n';
5975	s << "\tdeviceMask = " << value.deviceMask << '\n';
5976	s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
5977	s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
5978	s << '}';
5979	return s;
5980}
5981
5982std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
5983{
5984	s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
5985	s << "\tsType = " << value.sType << '\n';
5986	s << "\tpNext = " << value.pNext << '\n';
5987	s << "\tdeviceMask = " << value.deviceMask << '\n';
5988	s << '}';
5989	return s;
5990}
5991
5992std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
5993{
5994	s << "VkDeviceGroupSubmitInfo = {\n";
5995	s << "\tsType = " << value.sType << '\n';
5996	s << "\tpNext = " << value.pNext << '\n';
5997	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5998	s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
5999	s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6000	s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
6001	s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6002	s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
6003	s << '}';
6004	return s;
6005}
6006
6007std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
6008{
6009	s << "VkDeviceGroupBindSparseInfo = {\n";
6010	s << "\tsType = " << value.sType << '\n';
6011	s << "\tpNext = " << value.pNext << '\n';
6012	s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
6013	s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
6014	s << '}';
6015	return s;
6016}
6017
6018std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
6019{
6020	s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
6021	s << "\tsType = " << value.sType << '\n';
6022	s << "\tpNext = " << value.pNext << '\n';
6023	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6024	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6025	s << '}';
6026	return s;
6027}
6028
6029std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
6030{
6031	s << "VkBindImageMemoryDeviceGroupInfo = {\n";
6032	s << "\tsType = " << value.sType << '\n';
6033	s << "\tpNext = " << value.pNext << '\n';
6034	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6035	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6036	s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
6037	s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
6038	s << '}';
6039	return s;
6040}
6041
6042std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
6043{
6044	s << "VkPhysicalDeviceGroupProperties = {\n";
6045	s << "\tsType = " << value.sType << '\n';
6046	s << "\tpNext = " << value.pNext << '\n';
6047	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6048	s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
6049	s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
6050	s << '}';
6051	return s;
6052}
6053
6054std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
6055{
6056	s << "VkDeviceGroupDeviceCreateInfo = {\n";
6057	s << "\tsType = " << value.sType << '\n';
6058	s << "\tpNext = " << value.pNext << '\n';
6059	s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6060	s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
6061	s << '}';
6062	return s;
6063}
6064
6065std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
6066{
6067	s << "VkBufferMemoryRequirementsInfo2 = {\n";
6068	s << "\tsType = " << value.sType << '\n';
6069	s << "\tpNext = " << value.pNext << '\n';
6070	s << "\tbuffer = " << value.buffer << '\n';
6071	s << '}';
6072	return s;
6073}
6074
6075std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
6076{
6077	s << "VkImageMemoryRequirementsInfo2 = {\n";
6078	s << "\tsType = " << value.sType << '\n';
6079	s << "\tpNext = " << value.pNext << '\n';
6080	s << "\timage = " << value.image << '\n';
6081	s << '}';
6082	return s;
6083}
6084
6085std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
6086{
6087	s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
6088	s << "\tsType = " << value.sType << '\n';
6089	s << "\tpNext = " << value.pNext << '\n';
6090	s << "\timage = " << value.image << '\n';
6091	s << '}';
6092	return s;
6093}
6094
6095std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
6096{
6097	s << "VkMemoryRequirements2 = {\n";
6098	s << "\tsType = " << value.sType << '\n';
6099	s << "\tpNext = " << value.pNext << '\n';
6100	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6101	s << '}';
6102	return s;
6103}
6104
6105std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
6106{
6107	s << "VkSparseImageMemoryRequirements2 = {\n";
6108	s << "\tsType = " << value.sType << '\n';
6109	s << "\tpNext = " << value.pNext << '\n';
6110	s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6111	s << '}';
6112	return s;
6113}
6114
6115std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
6116{
6117	s << "VkPhysicalDeviceFeatures2 = {\n";
6118	s << "\tsType = " << value.sType << '\n';
6119	s << "\tpNext = " << value.pNext << '\n';
6120	s << "\tfeatures = " << value.features << '\n';
6121	s << '}';
6122	return s;
6123}
6124
6125std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
6126{
6127	s << "VkPhysicalDeviceProperties2 = {\n";
6128	s << "\tsType = " << value.sType << '\n';
6129	s << "\tpNext = " << value.pNext << '\n';
6130	s << "\tproperties = " << value.properties << '\n';
6131	s << '}';
6132	return s;
6133}
6134
6135std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
6136{
6137	s << "VkFormatProperties2 = {\n";
6138	s << "\tsType = " << value.sType << '\n';
6139	s << "\tpNext = " << value.pNext << '\n';
6140	s << "\tformatProperties = " << value.formatProperties << '\n';
6141	s << '}';
6142	return s;
6143}
6144
6145std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
6146{
6147	s << "VkImageFormatProperties2 = {\n";
6148	s << "\tsType = " << value.sType << '\n';
6149	s << "\tpNext = " << value.pNext << '\n';
6150	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
6151	s << '}';
6152	return s;
6153}
6154
6155std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
6156{
6157	s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
6158	s << "\tsType = " << value.sType << '\n';
6159	s << "\tpNext = " << value.pNext << '\n';
6160	s << "\tformat = " << value.format << '\n';
6161	s << "\ttype = " << value.type << '\n';
6162	s << "\ttiling = " << value.tiling << '\n';
6163	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6164	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6165	s << '}';
6166	return s;
6167}
6168
6169std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
6170{
6171	s << "VkQueueFamilyProperties2 = {\n";
6172	s << "\tsType = " << value.sType << '\n';
6173	s << "\tpNext = " << value.pNext << '\n';
6174	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
6175	s << '}';
6176	return s;
6177}
6178
6179std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
6180{
6181	s << "VkPhysicalDeviceMemoryProperties2 = {\n";
6182	s << "\tsType = " << value.sType << '\n';
6183	s << "\tpNext = " << value.pNext << '\n';
6184	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
6185	s << '}';
6186	return s;
6187}
6188
6189std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
6190{
6191	s << "VkSparseImageFormatProperties2 = {\n";
6192	s << "\tsType = " << value.sType << '\n';
6193	s << "\tpNext = " << value.pNext << '\n';
6194	s << "\tproperties = " << value.properties << '\n';
6195	s << '}';
6196	return s;
6197}
6198
6199std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
6200{
6201	s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
6202	s << "\tsType = " << value.sType << '\n';
6203	s << "\tpNext = " << value.pNext << '\n';
6204	s << "\tformat = " << value.format << '\n';
6205	s << "\ttype = " << value.type << '\n';
6206	s << "\tsamples = " << value.samples << '\n';
6207	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6208	s << "\ttiling = " << value.tiling << '\n';
6209	s << '}';
6210	return s;
6211}
6212
6213std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
6214{
6215	s << "VkPhysicalDevicePointClippingProperties = {\n";
6216	s << "\tsType = " << value.sType << '\n';
6217	s << "\tpNext = " << value.pNext << '\n';
6218	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6219	s << '}';
6220	return s;
6221}
6222
6223std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
6224{
6225	s << "VkInputAttachmentAspectReference = {\n";
6226	s << "\tsubpass = " << value.subpass << '\n';
6227	s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
6228	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6229	s << '}';
6230	return s;
6231}
6232
6233std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
6234{
6235	s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
6236	s << "\tsType = " << value.sType << '\n';
6237	s << "\tpNext = " << value.pNext << '\n';
6238	s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
6239	s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
6240	s << '}';
6241	return s;
6242}
6243
6244std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
6245{
6246	s << "VkImageViewUsageCreateInfo = {\n";
6247	s << "\tsType = " << value.sType << '\n';
6248	s << "\tpNext = " << value.pNext << '\n';
6249	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6250	s << '}';
6251	return s;
6252}
6253
6254std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
6255{
6256	s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
6257	s << "\tsType = " << value.sType << '\n';
6258	s << "\tpNext = " << value.pNext << '\n';
6259	s << "\tdomainOrigin = " << value.domainOrigin << '\n';
6260	s << '}';
6261	return s;
6262}
6263
6264std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
6265{
6266	s << "VkRenderPassMultiviewCreateInfo = {\n";
6267	s << "\tsType = " << value.sType << '\n';
6268	s << "\tpNext = " << value.pNext << '\n';
6269	s << "\tsubpassCount = " << value.subpassCount << '\n';
6270	s << "\tpViewMasks = " << value.pViewMasks << '\n';
6271	s << "\tdependencyCount = " << value.dependencyCount << '\n';
6272	s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
6273	s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
6274	s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
6275	s << '}';
6276	return s;
6277}
6278
6279std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
6280{
6281	s << "VkPhysicalDeviceMultiviewFeatures = {\n";
6282	s << "\tsType = " << value.sType << '\n';
6283	s << "\tpNext = " << value.pNext << '\n';
6284	s << "\tmultiview = " << value.multiview << '\n';
6285	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6286	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6287	s << '}';
6288	return s;
6289}
6290
6291std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
6292{
6293	s << "VkPhysicalDeviceMultiviewProperties = {\n";
6294	s << "\tsType = " << value.sType << '\n';
6295	s << "\tpNext = " << value.pNext << '\n';
6296	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6297	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6298	s << '}';
6299	return s;
6300}
6301
6302std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
6303{
6304	s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
6305	s << "\tsType = " << value.sType << '\n';
6306	s << "\tpNext = " << value.pNext << '\n';
6307	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6308	s << "\tvariablePointers = " << value.variablePointers << '\n';
6309	s << '}';
6310	return s;
6311}
6312
6313std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
6314{
6315	s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
6316	s << "\tsType = " << value.sType << '\n';
6317	s << "\tpNext = " << value.pNext << '\n';
6318	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6319	s << '}';
6320	return s;
6321}
6322
6323std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
6324{
6325	s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
6326	s << "\tsType = " << value.sType << '\n';
6327	s << "\tpNext = " << value.pNext << '\n';
6328	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6329	s << '}';
6330	return s;
6331}
6332
6333std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
6334{
6335	s << "VkDeviceQueueInfo2 = {\n";
6336	s << "\tsType = " << value.sType << '\n';
6337	s << "\tpNext = " << value.pNext << '\n';
6338	s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
6339	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6340	s << "\tqueueIndex = " << value.queueIndex << '\n';
6341	s << '}';
6342	return s;
6343}
6344
6345std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
6346{
6347	s << "VkProtectedSubmitInfo = {\n";
6348	s << "\tsType = " << value.sType << '\n';
6349	s << "\tpNext = " << value.pNext << '\n';
6350	s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
6351	s << '}';
6352	return s;
6353}
6354
6355std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
6356{
6357	s << "VkSamplerYcbcrConversionCreateInfo = {\n";
6358	s << "\tsType = " << value.sType << '\n';
6359	s << "\tpNext = " << value.pNext << '\n';
6360	s << "\tformat = " << value.format << '\n';
6361	s << "\tycbcrModel = " << value.ycbcrModel << '\n';
6362	s << "\tycbcrRange = " << value.ycbcrRange << '\n';
6363	s << "\tcomponents = " << value.components << '\n';
6364	s << "\txChromaOffset = " << value.xChromaOffset << '\n';
6365	s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
6366	s << "\tchromaFilter = " << value.chromaFilter << '\n';
6367	s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
6368	s << '}';
6369	return s;
6370}
6371
6372std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
6373{
6374	s << "VkSamplerYcbcrConversionInfo = {\n";
6375	s << "\tsType = " << value.sType << '\n';
6376	s << "\tpNext = " << value.pNext << '\n';
6377	s << "\tconversion = " << value.conversion << '\n';
6378	s << '}';
6379	return s;
6380}
6381
6382std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
6383{
6384	s << "VkBindImagePlaneMemoryInfo = {\n";
6385	s << "\tsType = " << value.sType << '\n';
6386	s << "\tpNext = " << value.pNext << '\n';
6387	s << "\tplaneAspect = " << value.planeAspect << '\n';
6388	s << '}';
6389	return s;
6390}
6391
6392std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
6393{
6394	s << "VkImagePlaneMemoryRequirementsInfo = {\n";
6395	s << "\tsType = " << value.sType << '\n';
6396	s << "\tpNext = " << value.pNext << '\n';
6397	s << "\tplaneAspect = " << value.planeAspect << '\n';
6398	s << '}';
6399	return s;
6400}
6401
6402std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
6403{
6404	s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
6405	s << "\tsType = " << value.sType << '\n';
6406	s << "\tpNext = " << value.pNext << '\n';
6407	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6408	s << '}';
6409	return s;
6410}
6411
6412std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
6413{
6414	s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
6415	s << "\tsType = " << value.sType << '\n';
6416	s << "\tpNext = " << value.pNext << '\n';
6417	s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
6418	s << '}';
6419	return s;
6420}
6421
6422std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
6423{
6424	s << "VkDescriptorUpdateTemplateEntry = {\n";
6425	s << "\tdstBinding = " << value.dstBinding << '\n';
6426	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6427	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6428	s << "\tdescriptorType = " << value.descriptorType << '\n';
6429	s << "\toffset = " << value.offset << '\n';
6430	s << "\tstride = " << value.stride << '\n';
6431	s << '}';
6432	return s;
6433}
6434
6435std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
6436{
6437	s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
6438	s << "\tsType = " << value.sType << '\n';
6439	s << "\tpNext = " << value.pNext << '\n';
6440	s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
6441	s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
6442	s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
6443	s << "\ttemplateType = " << value.templateType << '\n';
6444	s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
6445	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6446	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
6447	s << "\tset = " << value.set << '\n';
6448	s << '}';
6449	return s;
6450}
6451
6452std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
6453{
6454	s << "VkExternalMemoryProperties = {\n";
6455	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
6456	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6457	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6458	s << '}';
6459	return s;
6460}
6461
6462std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
6463{
6464	s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
6465	s << "\tsType = " << value.sType << '\n';
6466	s << "\tpNext = " << value.pNext << '\n';
6467	s << "\thandleType = " << value.handleType << '\n';
6468	s << '}';
6469	return s;
6470}
6471
6472std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
6473{
6474	s << "VkExternalImageFormatProperties = {\n";
6475	s << "\tsType = " << value.sType << '\n';
6476	s << "\tpNext = " << value.pNext << '\n';
6477	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6478	s << '}';
6479	return s;
6480}
6481
6482std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
6483{
6484	s << "VkPhysicalDeviceExternalBufferInfo = {\n";
6485	s << "\tsType = " << value.sType << '\n';
6486	s << "\tpNext = " << value.pNext << '\n';
6487	s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6488	s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6489	s << "\thandleType = " << value.handleType << '\n';
6490	s << '}';
6491	return s;
6492}
6493
6494std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
6495{
6496	s << "VkExternalBufferProperties = {\n";
6497	s << "\tsType = " << value.sType << '\n';
6498	s << "\tpNext = " << value.pNext << '\n';
6499	s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6500	s << '}';
6501	return s;
6502}
6503
6504std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
6505{
6506	s << "VkPhysicalDeviceIDProperties = {\n";
6507	s << "\tsType = " << value.sType << '\n';
6508	s << "\tpNext = " << value.pNext << '\n';
6509	s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceUUID))) << '\n';
6510	s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.driverUUID))) << '\n';
6511	s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceLUID))) << '\n';
6512	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
6513	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
6514	s << '}';
6515	return s;
6516}
6517
6518std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
6519{
6520	s << "VkExternalMemoryImageCreateInfo = {\n";
6521	s << "\tsType = " << value.sType << '\n';
6522	s << "\tpNext = " << value.pNext << '\n';
6523	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6524	s << '}';
6525	return s;
6526}
6527
6528std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
6529{
6530	s << "VkExternalMemoryBufferCreateInfo = {\n";
6531	s << "\tsType = " << value.sType << '\n';
6532	s << "\tpNext = " << value.pNext << '\n';
6533	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6534	s << '}';
6535	return s;
6536}
6537
6538std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
6539{
6540	s << "VkExportMemoryAllocateInfo = {\n";
6541	s << "\tsType = " << value.sType << '\n';
6542	s << "\tpNext = " << value.pNext << '\n';
6543	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6544	s << '}';
6545	return s;
6546}
6547
6548std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
6549{
6550	s << "VkPhysicalDeviceExternalFenceInfo = {\n";
6551	s << "\tsType = " << value.sType << '\n';
6552	s << "\tpNext = " << value.pNext << '\n';
6553	s << "\thandleType = " << value.handleType << '\n';
6554	s << '}';
6555	return s;
6556}
6557
6558std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
6559{
6560	s << "VkExternalFenceProperties = {\n";
6561	s << "\tsType = " << value.sType << '\n';
6562	s << "\tpNext = " << value.pNext << '\n';
6563	s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6564	s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6565	s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
6566	s << '}';
6567	return s;
6568}
6569
6570std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
6571{
6572	s << "VkExportFenceCreateInfo = {\n";
6573	s << "\tsType = " << value.sType << '\n';
6574	s << "\tpNext = " << value.pNext << '\n';
6575	s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
6576	s << '}';
6577	return s;
6578}
6579
6580std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
6581{
6582	s << "VkExportSemaphoreCreateInfo = {\n";
6583	s << "\tsType = " << value.sType << '\n';
6584	s << "\tpNext = " << value.pNext << '\n';
6585	s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
6586	s << '}';
6587	return s;
6588}
6589
6590std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
6591{
6592	s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
6593	s << "\tsType = " << value.sType << '\n';
6594	s << "\tpNext = " << value.pNext << '\n';
6595	s << "\thandleType = " << value.handleType << '\n';
6596	s << '}';
6597	return s;
6598}
6599
6600std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
6601{
6602	s << "VkExternalSemaphoreProperties = {\n";
6603	s << "\tsType = " << value.sType << '\n';
6604	s << "\tpNext = " << value.pNext << '\n';
6605	s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6606	s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6607	s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
6608	s << '}';
6609	return s;
6610}
6611
6612std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
6613{
6614	s << "VkPhysicalDeviceMaintenance3Properties = {\n";
6615	s << "\tsType = " << value.sType << '\n';
6616	s << "\tpNext = " << value.pNext << '\n';
6617	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
6618	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
6619	s << '}';
6620	return s;
6621}
6622
6623std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
6624{
6625	s << "VkDescriptorSetLayoutSupport = {\n";
6626	s << "\tsType = " << value.sType << '\n';
6627	s << "\tpNext = " << value.pNext << '\n';
6628	s << "\tsupported = " << value.supported << '\n';
6629	s << '}';
6630	return s;
6631}
6632
6633std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
6634{
6635	s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
6636	s << "\tsType = " << value.sType << '\n';
6637	s << "\tpNext = " << value.pNext << '\n';
6638	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6639	s << '}';
6640	return s;
6641}
6642
6643std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
6644{
6645	s << "VkPhysicalDeviceVulkan11Features = {\n";
6646	s << "\tsType = " << value.sType << '\n';
6647	s << "\tpNext = " << value.pNext << '\n';
6648	s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6649	s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6650	s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6651	s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6652	s << "\tmultiview = " << value.multiview << '\n';
6653	s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6654	s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6655	s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6656	s << "\tvariablePointers = " << value.variablePointers << '\n';
6657	s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6658	s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6659	s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6660	s << '}';
6661	return s;
6662}
6663
6664std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
6665{
6666	s << "VkPhysicalDeviceVulkan11Properties = {\n";
6667	s << "\tsType = " << value.sType << '\n';
6668	s << "\tpNext = " << value.pNext << '\n';
6669	s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceUUID))) << '\n';
6670	s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.driverUUID))) << '\n';
6671	s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.deviceLUID))) << '\n';
6672	s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
6673	s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
6674	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
6675	s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
6676	s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
6677	s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
6678	s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6679	s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6680	s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6681	s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6682	s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
6683	s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
6684	s << '}';
6685	return s;
6686}
6687
6688std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
6689{
6690	s << "VkPhysicalDeviceVulkan12Features = {\n";
6691	s << "\tsType = " << value.sType << '\n';
6692	s << "\tpNext = " << value.pNext << '\n';
6693	s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
6694	s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
6695	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
6696	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
6697	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
6698	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
6699	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
6700	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
6701	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
6702	s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
6703	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
6704	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
6705	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
6706	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
6707	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
6708	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
6709	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
6710	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
6711	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
6712	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
6713	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
6714	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
6715	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
6716	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
6717	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
6718	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
6719	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
6720	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
6721	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
6722	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
6723	s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
6724	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
6725	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
6726	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
6727	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
6728	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
6729	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
6730	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
6731	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
6732	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
6733	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
6734	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
6735	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
6736	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
6737	s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
6738	s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
6739	s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
6740	s << '}';
6741	return s;
6742}
6743
6744std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
6745{
6746	s << "VkConformanceVersion = {\n";
6747	s << "\tmajor = " << value.major << '\n';
6748	s << "\tminor = " << value.minor << '\n';
6749	s << "\tsubminor = " << value.subminor << '\n';
6750	s << "\tpatch = " << value.patch << '\n';
6751	s << '}';
6752	return s;
6753}
6754
6755std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
6756{
6757	s << "VkPhysicalDeviceVulkan12Properties = {\n";
6758	s << "\tsType = " << value.sType << '\n';
6759	s << "\tpNext = " << value.pNext << '\n';
6760	s << "\tdriverID = " << value.driverID << '\n';
6761	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
6762	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
6763	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
6764	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
6765	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
6766	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
6767	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
6768	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
6769	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
6770	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
6771	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
6772	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
6773	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
6774	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
6775	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
6776	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
6777	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
6778	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
6779	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
6780	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
6781	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
6782	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
6783	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
6784	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
6785	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
6786	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
6787	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
6788	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
6789	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
6790	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
6791	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
6792	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
6793	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
6794	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
6795	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
6796	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
6797	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
6798	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
6799	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
6800	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
6801	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
6802	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
6803	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
6804	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
6805	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
6806	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
6807	s << "\tindependentResolve = " << value.independentResolve << '\n';
6808	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
6809	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
6810	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
6811	s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
6812	s << '}';
6813	return s;
6814}
6815
6816std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
6817{
6818	s << "VkImageFormatListCreateInfo = {\n";
6819	s << "\tsType = " << value.sType << '\n';
6820	s << "\tpNext = " << value.pNext << '\n';
6821	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
6822	s << "\tpViewFormats = " << value.pViewFormats << '\n';
6823	s << '}';
6824	return s;
6825}
6826
6827std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
6828{
6829	s << "VkAttachmentDescription2 = {\n";
6830	s << "\tsType = " << value.sType << '\n';
6831	s << "\tpNext = " << value.pNext << '\n';
6832	s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6833	s << "\tformat = " << value.format << '\n';
6834	s << "\tsamples = " << value.samples << '\n';
6835	s << "\tloadOp = " << value.loadOp << '\n';
6836	s << "\tstoreOp = " << value.storeOp << '\n';
6837	s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6838	s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6839	s << "\tinitialLayout = " << value.initialLayout << '\n';
6840	s << "\tfinalLayout = " << value.finalLayout << '\n';
6841	s << '}';
6842	return s;
6843}
6844
6845std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
6846{
6847	s << "VkAttachmentReference2 = {\n";
6848	s << "\tsType = " << value.sType << '\n';
6849	s << "\tpNext = " << value.pNext << '\n';
6850	s << "\tattachment = " << value.attachment << '\n';
6851	s << "\tlayout = " << value.layout << '\n';
6852	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6853	s << '}';
6854	return s;
6855}
6856
6857std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
6858{
6859	s << "VkSubpassDescription2 = {\n";
6860	s << "\tsType = " << value.sType << '\n';
6861	s << "\tpNext = " << value.pNext << '\n';
6862	s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6863	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6864	s << "\tviewMask = " << value.viewMask << '\n';
6865	s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6866	s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6867	s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6868	s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6869	s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6870	s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6871	s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6872	s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6873	s << '}';
6874	return s;
6875}
6876
6877std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
6878{
6879	s << "VkSubpassDependency2 = {\n";
6880	s << "\tsType = " << value.sType << '\n';
6881	s << "\tpNext = " << value.pNext << '\n';
6882	s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6883	s << "\tdstSubpass = " << value.dstSubpass << '\n';
6884	s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6885	s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6886	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6887	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6888	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6889	s << "\tviewOffset = " << value.viewOffset << '\n';
6890	s << '}';
6891	return s;
6892}
6893
6894std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
6895{
6896	s << "VkRenderPassCreateInfo2 = {\n";
6897	s << "\tsType = " << value.sType << '\n';
6898	s << "\tpNext = " << value.pNext << '\n';
6899	s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6900	s << "\tattachmentCount = " << value.attachmentCount << '\n';
6901	s << "\tpAttachments = " << value.pAttachments << '\n';
6902	s << "\tsubpassCount = " << value.subpassCount << '\n';
6903	s << "\tpSubpasses = " << value.pSubpasses << '\n';
6904	s << "\tdependencyCount = " << value.dependencyCount << '\n';
6905	s << "\tpDependencies = " << value.pDependencies << '\n';
6906	s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
6907	s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
6908	s << '}';
6909	return s;
6910}
6911
6912std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
6913{
6914	s << "VkSubpassBeginInfo = {\n";
6915	s << "\tsType = " << value.sType << '\n';
6916	s << "\tpNext = " << value.pNext << '\n';
6917	s << "\tcontents = " << value.contents << '\n';
6918	s << '}';
6919	return s;
6920}
6921
6922std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
6923{
6924	s << "VkSubpassEndInfo = {\n";
6925	s << "\tsType = " << value.sType << '\n';
6926	s << "\tpNext = " << value.pNext << '\n';
6927	s << '}';
6928	return s;
6929}
6930
6931std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
6932{
6933	s << "VkPhysicalDevice8BitStorageFeatures = {\n";
6934	s << "\tsType = " << value.sType << '\n';
6935	s << "\tpNext = " << value.pNext << '\n';
6936	s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
6937	s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
6938	s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
6939	s << '}';
6940	return s;
6941}
6942
6943std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
6944{
6945	s << "VkPhysicalDeviceDriverProperties = {\n";
6946	s << "\tsType = " << value.sType << '\n';
6947	s << "\tpNext = " << value.pNext << '\n';
6948	s << "\tdriverID = " << value.driverID << '\n';
6949	s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
6950	s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
6951	s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
6952	s << '}';
6953	return s;
6954}
6955
6956std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
6957{
6958	s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
6959	s << "\tsType = " << value.sType << '\n';
6960	s << "\tpNext = " << value.pNext << '\n';
6961	s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
6962	s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
6963	s << '}';
6964	return s;
6965}
6966
6967std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
6968{
6969	s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
6970	s << "\tsType = " << value.sType << '\n';
6971	s << "\tpNext = " << value.pNext << '\n';
6972	s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
6973	s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
6974	s << '}';
6975	return s;
6976}
6977
6978std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
6979{
6980	s << "VkPhysicalDeviceFloatControlsProperties = {\n";
6981	s << "\tsType = " << value.sType << '\n';
6982	s << "\tpNext = " << value.pNext << '\n';
6983	s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
6984	s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
6985	s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
6986	s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
6987	s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
6988	s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
6989	s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
6990	s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
6991	s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
6992	s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
6993	s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
6994	s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
6995	s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
6996	s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
6997	s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
6998	s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
6999	s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7000	s << '}';
7001	return s;
7002}
7003
7004std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
7005{
7006	s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
7007	s << "\tsType = " << value.sType << '\n';
7008	s << "\tpNext = " << value.pNext << '\n';
7009	s << "\tbindingCount = " << value.bindingCount << '\n';
7010	s << "\tpBindingFlags = " << value.pBindingFlags << '\n';
7011	s << '}';
7012	return s;
7013}
7014
7015std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
7016{
7017	s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
7018	s << "\tsType = " << value.sType << '\n';
7019	s << "\tpNext = " << value.pNext << '\n';
7020	s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7021	s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7022	s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7023	s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7024	s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7025	s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7026	s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7027	s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7028	s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7029	s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7030	s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7031	s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7032	s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7033	s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7034	s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7035	s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7036	s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7037	s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7038	s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7039	s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7040	s << '}';
7041	return s;
7042}
7043
7044std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
7045{
7046	s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
7047	s << "\tsType = " << value.sType << '\n';
7048	s << "\tpNext = " << value.pNext << '\n';
7049	s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7050	s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7051	s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7052	s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7053	s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7054	s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7055	s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7056	s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7057	s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7058	s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7059	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7060	s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7061	s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7062	s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7063	s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7064	s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7065	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7066	s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7067	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7068	s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7069	s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7070	s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7071	s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7072	s << '}';
7073	return s;
7074}
7075
7076std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
7077{
7078	s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
7079	s << "\tsType = " << value.sType << '\n';
7080	s << "\tpNext = " << value.pNext << '\n';
7081	s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
7082	s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
7083	s << '}';
7084	return s;
7085}
7086
7087std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
7088{
7089	s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
7090	s << "\tsType = " << value.sType << '\n';
7091	s << "\tpNext = " << value.pNext << '\n';
7092	s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
7093	s << '}';
7094	return s;
7095}
7096
7097std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
7098{
7099	s << "VkSubpassDescriptionDepthStencilResolve = {\n";
7100	s << "\tsType = " << value.sType << '\n';
7101	s << "\tpNext = " << value.pNext << '\n';
7102	s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
7103	s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
7104	s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
7105	s << '}';
7106	return s;
7107}
7108
7109std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
7110{
7111	s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
7112	s << "\tsType = " << value.sType << '\n';
7113	s << "\tpNext = " << value.pNext << '\n';
7114	s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7115	s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7116	s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7117	s << "\tindependentResolve = " << value.independentResolve << '\n';
7118	s << '}';
7119	return s;
7120}
7121
7122std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
7123{
7124	s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
7125	s << "\tsType = " << value.sType << '\n';
7126	s << "\tpNext = " << value.pNext << '\n';
7127	s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7128	s << '}';
7129	return s;
7130}
7131
7132std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
7133{
7134	s << "VkImageStencilUsageCreateInfo = {\n";
7135	s << "\tsType = " << value.sType << '\n';
7136	s << "\tpNext = " << value.pNext << '\n';
7137	s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
7138	s << '}';
7139	return s;
7140}
7141
7142std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
7143{
7144	s << "VkSamplerReductionModeCreateInfo = {\n";
7145	s << "\tsType = " << value.sType << '\n';
7146	s << "\tpNext = " << value.pNext << '\n';
7147	s << "\treductionMode = " << value.reductionMode << '\n';
7148	s << '}';
7149	return s;
7150}
7151
7152std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
7153{
7154	s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
7155	s << "\tsType = " << value.sType << '\n';
7156	s << "\tpNext = " << value.pNext << '\n';
7157	s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7158	s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7159	s << '}';
7160	return s;
7161}
7162
7163std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
7164{
7165	s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
7166	s << "\tsType = " << value.sType << '\n';
7167	s << "\tpNext = " << value.pNext << '\n';
7168	s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7169	s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7170	s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7171	s << '}';
7172	return s;
7173}
7174
7175std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
7176{
7177	s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
7178	s << "\tsType = " << value.sType << '\n';
7179	s << "\tpNext = " << value.pNext << '\n';
7180	s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7181	s << '}';
7182	return s;
7183}
7184
7185std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
7186{
7187	s << "VkFramebufferAttachmentImageInfo = {\n";
7188	s << "\tsType = " << value.sType << '\n';
7189	s << "\tpNext = " << value.pNext << '\n';
7190	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7191	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7192	s << "\twidth = " << value.width << '\n';
7193	s << "\theight = " << value.height << '\n';
7194	s << "\tlayerCount = " << value.layerCount << '\n';
7195	s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7196	s << "\tpViewFormats = " << value.pViewFormats << '\n';
7197	s << '}';
7198	return s;
7199}
7200
7201std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
7202{
7203	s << "VkFramebufferAttachmentsCreateInfo = {\n";
7204	s << "\tsType = " << value.sType << '\n';
7205	s << "\tpNext = " << value.pNext << '\n';
7206	s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
7207	s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
7208	s << '}';
7209	return s;
7210}
7211
7212std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
7213{
7214	s << "VkRenderPassAttachmentBeginInfo = {\n";
7215	s << "\tsType = " << value.sType << '\n';
7216	s << "\tpNext = " << value.pNext << '\n';
7217	s << "\tattachmentCount = " << value.attachmentCount << '\n';
7218	s << "\tpAttachments = " << value.pAttachments << '\n';
7219	s << '}';
7220	return s;
7221}
7222
7223std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
7224{
7225	s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
7226	s << "\tsType = " << value.sType << '\n';
7227	s << "\tpNext = " << value.pNext << '\n';
7228	s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7229	s << '}';
7230	return s;
7231}
7232
7233std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
7234{
7235	s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
7236	s << "\tsType = " << value.sType << '\n';
7237	s << "\tpNext = " << value.pNext << '\n';
7238	s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7239	s << '}';
7240	return s;
7241}
7242
7243std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
7244{
7245	s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
7246	s << "\tsType = " << value.sType << '\n';
7247	s << "\tpNext = " << value.pNext << '\n';
7248	s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7249	s << '}';
7250	return s;
7251}
7252
7253std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
7254{
7255	s << "VkAttachmentReferenceStencilLayout = {\n";
7256	s << "\tsType = " << value.sType << '\n';
7257	s << "\tpNext = " << value.pNext << '\n';
7258	s << "\tstencilLayout = " << value.stencilLayout << '\n';
7259	s << '}';
7260	return s;
7261}
7262
7263std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
7264{
7265	s << "VkAttachmentDescriptionStencilLayout = {\n";
7266	s << "\tsType = " << value.sType << '\n';
7267	s << "\tpNext = " << value.pNext << '\n';
7268	s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
7269	s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
7270	s << '}';
7271	return s;
7272}
7273
7274std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
7275{
7276	s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
7277	s << "\tsType = " << value.sType << '\n';
7278	s << "\tpNext = " << value.pNext << '\n';
7279	s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7280	s << '}';
7281	return s;
7282}
7283
7284std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
7285{
7286	s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
7287	s << "\tsType = " << value.sType << '\n';
7288	s << "\tpNext = " << value.pNext << '\n';
7289	s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7290	s << '}';
7291	return s;
7292}
7293
7294std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
7295{
7296	s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
7297	s << "\tsType = " << value.sType << '\n';
7298	s << "\tpNext = " << value.pNext << '\n';
7299	s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7300	s << '}';
7301	return s;
7302}
7303
7304std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
7305{
7306	s << "VkSemaphoreTypeCreateInfo = {\n";
7307	s << "\tsType = " << value.sType << '\n';
7308	s << "\tpNext = " << value.pNext << '\n';
7309	s << "\tsemaphoreType = " << value.semaphoreType << '\n';
7310	s << "\tinitialValue = " << value.initialValue << '\n';
7311	s << '}';
7312	return s;
7313}
7314
7315std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
7316{
7317	s << "VkTimelineSemaphoreSubmitInfo = {\n";
7318	s << "\tsType = " << value.sType << '\n';
7319	s << "\tpNext = " << value.pNext << '\n';
7320	s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
7321	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7322	s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
7323	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7324	s << '}';
7325	return s;
7326}
7327
7328std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
7329{
7330	s << "VkSemaphoreWaitInfo = {\n";
7331	s << "\tsType = " << value.sType << '\n';
7332	s << "\tpNext = " << value.pNext << '\n';
7333	s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
7334	s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
7335	s << "\tpSemaphores = " << value.pSemaphores << '\n';
7336	s << "\tpValues = " << value.pValues << '\n';
7337	s << '}';
7338	return s;
7339}
7340
7341std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
7342{
7343	s << "VkSemaphoreSignalInfo = {\n";
7344	s << "\tsType = " << value.sType << '\n';
7345	s << "\tpNext = " << value.pNext << '\n';
7346	s << "\tsemaphore = " << value.semaphore << '\n';
7347	s << "\tvalue = " << value.value << '\n';
7348	s << '}';
7349	return s;
7350}
7351
7352std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
7353{
7354	s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
7355	s << "\tsType = " << value.sType << '\n';
7356	s << "\tpNext = " << value.pNext << '\n';
7357	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7358	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7359	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7360	s << '}';
7361	return s;
7362}
7363
7364std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
7365{
7366	s << "VkBufferDeviceAddressInfo = {\n";
7367	s << "\tsType = " << value.sType << '\n';
7368	s << "\tpNext = " << value.pNext << '\n';
7369	s << "\tbuffer = " << value.buffer << '\n';
7370	s << '}';
7371	return s;
7372}
7373
7374std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
7375{
7376	s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
7377	s << "\tsType = " << value.sType << '\n';
7378	s << "\tpNext = " << value.pNext << '\n';
7379	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7380	s << '}';
7381	return s;
7382}
7383
7384std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
7385{
7386	s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
7387	s << "\tsType = " << value.sType << '\n';
7388	s << "\tpNext = " << value.pNext << '\n';
7389	s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7390	s << '}';
7391	return s;
7392}
7393
7394std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
7395{
7396	s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
7397	s << "\tsType = " << value.sType << '\n';
7398	s << "\tpNext = " << value.pNext << '\n';
7399	s << "\tmemory = " << value.memory << '\n';
7400	s << '}';
7401	return s;
7402}
7403
7404std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
7405{
7406	s << "VkSurfaceCapabilitiesKHR = {\n";
7407	s << "\tminImageCount = " << value.minImageCount << '\n';
7408	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7409	s << "\tcurrentExtent = " << value.currentExtent << '\n';
7410	s << "\tminImageExtent = " << value.minImageExtent << '\n';
7411	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7412	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7413	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7414	s << "\tcurrentTransform = " << value.currentTransform << '\n';
7415	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7416	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7417	s << '}';
7418	return s;
7419}
7420
7421std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
7422{
7423	s << "VkSurfaceFormatKHR = {\n";
7424	s << "\tformat = " << value.format << '\n';
7425	s << "\tcolorSpace = " << value.colorSpace << '\n';
7426	s << '}';
7427	return s;
7428}
7429
7430std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
7431{
7432	s << "VkSwapchainCreateInfoKHR = {\n";
7433	s << "\tsType = " << value.sType << '\n';
7434	s << "\tpNext = " << value.pNext << '\n';
7435	s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
7436	s << "\tsurface = " << value.surface << '\n';
7437	s << "\tminImageCount = " << value.minImageCount << '\n';
7438	s << "\timageFormat = " << value.imageFormat << '\n';
7439	s << "\timageColorSpace = " << value.imageColorSpace << '\n';
7440	s << "\timageExtent = " << value.imageExtent << '\n';
7441	s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
7442	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
7443	s << "\timageSharingMode = " << value.imageSharingMode << '\n';
7444	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
7445	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
7446	s << "\tpreTransform = " << value.preTransform << '\n';
7447	s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
7448	s << "\tpresentMode = " << value.presentMode << '\n';
7449	s << "\tclipped = " << value.clipped << '\n';
7450	s << "\toldSwapchain = " << value.oldSwapchain << '\n';
7451	s << '}';
7452	return s;
7453}
7454
7455std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
7456{
7457	s << "VkPresentInfoKHR = {\n";
7458	s << "\tsType = " << value.sType << '\n';
7459	s << "\tpNext = " << value.pNext << '\n';
7460	s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7461	s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7462	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7463	s << "\tpSwapchains = " << value.pSwapchains << '\n';
7464	s << "\tpImageIndices = " << value.pImageIndices << '\n';
7465	s << "\tpResults = " << value.pResults << '\n';
7466	s << '}';
7467	return s;
7468}
7469
7470std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
7471{
7472	s << "VkImageSwapchainCreateInfoKHR = {\n";
7473	s << "\tsType = " << value.sType << '\n';
7474	s << "\tpNext = " << value.pNext << '\n';
7475	s << "\tswapchain = " << value.swapchain << '\n';
7476	s << '}';
7477	return s;
7478}
7479
7480std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
7481{
7482	s << "VkBindImageMemorySwapchainInfoKHR = {\n";
7483	s << "\tsType = " << value.sType << '\n';
7484	s << "\tpNext = " << value.pNext << '\n';
7485	s << "\tswapchain = " << value.swapchain << '\n';
7486	s << "\timageIndex = " << value.imageIndex << '\n';
7487	s << '}';
7488	return s;
7489}
7490
7491std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
7492{
7493	s << "VkAcquireNextImageInfoKHR = {\n";
7494	s << "\tsType = " << value.sType << '\n';
7495	s << "\tpNext = " << value.pNext << '\n';
7496	s << "\tswapchain = " << value.swapchain << '\n';
7497	s << "\ttimeout = " << value.timeout << '\n';
7498	s << "\tsemaphore = " << value.semaphore << '\n';
7499	s << "\tfence = " << value.fence << '\n';
7500	s << "\tdeviceMask = " << value.deviceMask << '\n';
7501	s << '}';
7502	return s;
7503}
7504
7505std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
7506{
7507	s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
7508	s << "\tsType = " << value.sType << '\n';
7509	s << "\tpNext = " << value.pNext << '\n';
7510	s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
7511	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7512	s << '}';
7513	return s;
7514}
7515
7516std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
7517{
7518	s << "VkDeviceGroupPresentInfoKHR = {\n";
7519	s << "\tsType = " << value.sType << '\n';
7520	s << "\tpNext = " << value.pNext << '\n';
7521	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7522	s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
7523	s << "\tmode = " << value.mode << '\n';
7524	s << '}';
7525	return s;
7526}
7527
7528std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
7529{
7530	s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
7531	s << "\tsType = " << value.sType << '\n';
7532	s << "\tpNext = " << value.pNext << '\n';
7533	s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7534	s << '}';
7535	return s;
7536}
7537
7538std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
7539{
7540	s << "VkDisplayModeParametersKHR = {\n";
7541	s << "\tvisibleRegion = " << value.visibleRegion << '\n';
7542	s << "\trefreshRate = " << value.refreshRate << '\n';
7543	s << '}';
7544	return s;
7545}
7546
7547std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
7548{
7549	s << "VkDisplayModeCreateInfoKHR = {\n";
7550	s << "\tsType = " << value.sType << '\n';
7551	s << "\tpNext = " << value.pNext << '\n';
7552	s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
7553	s << "\tparameters = " << value.parameters << '\n';
7554	s << '}';
7555	return s;
7556}
7557
7558std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
7559{
7560	s << "VkDisplayModePropertiesKHR = {\n";
7561	s << "\tdisplayMode = " << value.displayMode << '\n';
7562	s << "\tparameters = " << value.parameters << '\n';
7563	s << '}';
7564	return s;
7565}
7566
7567std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
7568{
7569	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
7570	s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
7571	s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
7572	s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
7573	s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
7574	s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
7575	s << "\tminDstPosition = " << value.minDstPosition << '\n';
7576	s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
7577	s << "\tminDstExtent = " << value.minDstExtent << '\n';
7578	s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
7579	s << '}';
7580	return s;
7581}
7582
7583std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
7584{
7585	s << "VkDisplayPlanePropertiesKHR = {\n";
7586	s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
7587	s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
7588	s << '}';
7589	return s;
7590}
7591
7592std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
7593{
7594	s << "VkDisplayPropertiesKHR = {\n";
7595	s << "\tdisplay = " << value.display << '\n';
7596	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
7597	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
7598	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
7599	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7600	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
7601	s << "\tpersistentContent = " << value.persistentContent << '\n';
7602	s << '}';
7603	return s;
7604}
7605
7606std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
7607{
7608	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
7609	s << "\tsType = " << value.sType << '\n';
7610	s << "\tpNext = " << value.pNext << '\n';
7611	s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
7612	s << "\tdisplayMode = " << value.displayMode << '\n';
7613	s << "\tplaneIndex = " << value.planeIndex << '\n';
7614	s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
7615	s << "\ttransform = " << value.transform << '\n';
7616	s << "\tglobalAlpha = " << value.globalAlpha << '\n';
7617	s << "\talphaMode = " << value.alphaMode << '\n';
7618	s << "\timageExtent = " << value.imageExtent << '\n';
7619	s << '}';
7620	return s;
7621}
7622
7623std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
7624{
7625	s << "VkDisplayPresentInfoKHR = {\n";
7626	s << "\tsType = " << value.sType << '\n';
7627	s << "\tpNext = " << value.pNext << '\n';
7628	s << "\tsrcRect = " << value.srcRect << '\n';
7629	s << "\tdstRect = " << value.dstRect << '\n';
7630	s << "\tpersistent = " << value.persistent << '\n';
7631	s << '}';
7632	return s;
7633}
7634
7635std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
7636{
7637	s << "VkImportMemoryFdInfoKHR = {\n";
7638	s << "\tsType = " << value.sType << '\n';
7639	s << "\tpNext = " << value.pNext << '\n';
7640	s << "\thandleType = " << value.handleType << '\n';
7641	s << "\tfd = " << value.fd << '\n';
7642	s << '}';
7643	return s;
7644}
7645
7646std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
7647{
7648	s << "VkMemoryFdPropertiesKHR = {\n";
7649	s << "\tsType = " << value.sType << '\n';
7650	s << "\tpNext = " << value.pNext << '\n';
7651	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7652	s << '}';
7653	return s;
7654}
7655
7656std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
7657{
7658	s << "VkMemoryGetFdInfoKHR = {\n";
7659	s << "\tsType = " << value.sType << '\n';
7660	s << "\tpNext = " << value.pNext << '\n';
7661	s << "\tmemory = " << value.memory << '\n';
7662	s << "\thandleType = " << value.handleType << '\n';
7663	s << '}';
7664	return s;
7665}
7666
7667std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
7668{
7669	s << "VkImportSemaphoreFdInfoKHR = {\n";
7670	s << "\tsType = " << value.sType << '\n';
7671	s << "\tpNext = " << value.pNext << '\n';
7672	s << "\tsemaphore = " << value.semaphore << '\n';
7673	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7674	s << "\thandleType = " << value.handleType << '\n';
7675	s << "\tfd = " << value.fd << '\n';
7676	s << '}';
7677	return s;
7678}
7679
7680std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
7681{
7682	s << "VkSemaphoreGetFdInfoKHR = {\n";
7683	s << "\tsType = " << value.sType << '\n';
7684	s << "\tpNext = " << value.pNext << '\n';
7685	s << "\tsemaphore = " << value.semaphore << '\n';
7686	s << "\thandleType = " << value.handleType << '\n';
7687	s << '}';
7688	return s;
7689}
7690
7691std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
7692{
7693	s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
7694	s << "\tsType = " << value.sType << '\n';
7695	s << "\tpNext = " << value.pNext << '\n';
7696	s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
7697	s << '}';
7698	return s;
7699}
7700
7701std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
7702{
7703	s << "VkRectLayerKHR = {\n";
7704	s << "\toffset = " << value.offset << '\n';
7705	s << "\textent = " << value.extent << '\n';
7706	s << "\tlayer = " << value.layer << '\n';
7707	s << '}';
7708	return s;
7709}
7710
7711std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
7712{
7713	s << "VkPresentRegionKHR = {\n";
7714	s << "\trectangleCount = " << value.rectangleCount << '\n';
7715	s << "\tpRectangles = " << value.pRectangles << '\n';
7716	s << '}';
7717	return s;
7718}
7719
7720std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
7721{
7722	s << "VkPresentRegionsKHR = {\n";
7723	s << "\tsType = " << value.sType << '\n';
7724	s << "\tpNext = " << value.pNext << '\n';
7725	s << "\tswapchainCount = " << value.swapchainCount << '\n';
7726	s << "\tpRegions = " << value.pRegions << '\n';
7727	s << '}';
7728	return s;
7729}
7730
7731std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
7732{
7733	s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
7734	s << "\tsType = " << value.sType << '\n';
7735	s << "\tpNext = " << value.pNext << '\n';
7736	s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
7737	s << '}';
7738	return s;
7739}
7740
7741std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
7742{
7743	s << "VkImportFenceFdInfoKHR = {\n";
7744	s << "\tsType = " << value.sType << '\n';
7745	s << "\tpNext = " << value.pNext << '\n';
7746	s << "\tfence = " << value.fence << '\n';
7747	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7748	s << "\thandleType = " << value.handleType << '\n';
7749	s << "\tfd = " << value.fd << '\n';
7750	s << '}';
7751	return s;
7752}
7753
7754std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
7755{
7756	s << "VkFenceGetFdInfoKHR = {\n";
7757	s << "\tsType = " << value.sType << '\n';
7758	s << "\tpNext = " << value.pNext << '\n';
7759	s << "\tfence = " << value.fence << '\n';
7760	s << "\thandleType = " << value.handleType << '\n';
7761	s << '}';
7762	return s;
7763}
7764
7765std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
7766{
7767	s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
7768	s << "\tsType = " << value.sType << '\n';
7769	s << "\tpNext = " << value.pNext << '\n';
7770	s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
7771	s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
7772	s << '}';
7773	return s;
7774}
7775
7776std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
7777{
7778	s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
7779	s << "\tsType = " << value.sType << '\n';
7780	s << "\tpNext = " << value.pNext << '\n';
7781	s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
7782	s << '}';
7783	return s;
7784}
7785
7786std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
7787{
7788	s << "VkPerformanceCounterKHR = {\n";
7789	s << "\tsType = " << value.sType << '\n';
7790	s << "\tpNext = " << value.pNext << '\n';
7791	s << "\tunit = " << value.unit << '\n';
7792	s << "\tscope = " << value.scope << '\n';
7793	s << "\tstorage = " << value.storage << '\n';
7794	s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.uuid))) << '\n';
7795	s << '}';
7796	return s;
7797}
7798
7799std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
7800{
7801	s << "VkPerformanceCounterDescriptionKHR = {\n";
7802	s << "\tsType = " << value.sType << '\n';
7803	s << "\tpNext = " << value.pNext << '\n';
7804	s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
7805	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
7806	s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
7807	s << "\tdescription = " << (const char*)value.description << '\n';
7808	s << '}';
7809	return s;
7810}
7811
7812std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
7813{
7814	s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
7815	s << "\tsType = " << value.sType << '\n';
7816	s << "\tpNext = " << value.pNext << '\n';
7817	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
7818	s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
7819	s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
7820	s << '}';
7821	return s;
7822}
7823
7824std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
7825{
7826	s << "VkPerformanceCounterResultKHR = {\n";
7827	s << "\tint32 = " << value.int32 << '\n';
7828	s << "\tint64 = " << value.int64 << '\n';
7829	s << "\tuint32 = " << value.uint32 << '\n';
7830	s << "\tuint64 = " << value.uint64 << '\n';
7831	s << "\tfloat32 = " << value.float32 << '\n';
7832	s << "\tfloat64 = " << value.float64 << '\n';
7833	s << '}';
7834	return s;
7835}
7836
7837std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
7838{
7839	s << "VkAcquireProfilingLockInfoKHR = {\n";
7840	s << "\tsType = " << value.sType << '\n';
7841	s << "\tpNext = " << value.pNext << '\n';
7842	s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
7843	s << "\ttimeout = " << value.timeout << '\n';
7844	s << '}';
7845	return s;
7846}
7847
7848std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
7849{
7850	s << "VkPerformanceQuerySubmitInfoKHR = {\n";
7851	s << "\tsType = " << value.sType << '\n';
7852	s << "\tpNext = " << value.pNext << '\n';
7853	s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
7854	s << '}';
7855	return s;
7856}
7857
7858std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
7859{
7860	s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
7861	s << "\tsType = " << value.sType << '\n';
7862	s << "\tpNext = " << value.pNext << '\n';
7863	s << "\tsurface = " << value.surface << '\n';
7864	s << '}';
7865	return s;
7866}
7867
7868std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
7869{
7870	s << "VkSurfaceCapabilities2KHR = {\n";
7871	s << "\tsType = " << value.sType << '\n';
7872	s << "\tpNext = " << value.pNext << '\n';
7873	s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
7874	s << '}';
7875	return s;
7876}
7877
7878std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
7879{
7880	s << "VkSurfaceFormat2KHR = {\n";
7881	s << "\tsType = " << value.sType << '\n';
7882	s << "\tpNext = " << value.pNext << '\n';
7883	s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
7884	s << '}';
7885	return s;
7886}
7887
7888std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
7889{
7890	s << "VkDisplayProperties2KHR = {\n";
7891	s << "\tsType = " << value.sType << '\n';
7892	s << "\tpNext = " << value.pNext << '\n';
7893	s << "\tdisplayProperties = " << value.displayProperties << '\n';
7894	s << '}';
7895	return s;
7896}
7897
7898std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
7899{
7900	s << "VkDisplayPlaneProperties2KHR = {\n";
7901	s << "\tsType = " << value.sType << '\n';
7902	s << "\tpNext = " << value.pNext << '\n';
7903	s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
7904	s << '}';
7905	return s;
7906}
7907
7908std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
7909{
7910	s << "VkDisplayModeProperties2KHR = {\n";
7911	s << "\tsType = " << value.sType << '\n';
7912	s << "\tpNext = " << value.pNext << '\n';
7913	s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
7914	s << '}';
7915	return s;
7916}
7917
7918std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
7919{
7920	s << "VkDisplayPlaneInfo2KHR = {\n";
7921	s << "\tsType = " << value.sType << '\n';
7922	s << "\tpNext = " << value.pNext << '\n';
7923	s << "\tmode = " << value.mode << '\n';
7924	s << "\tplaneIndex = " << value.planeIndex << '\n';
7925	s << '}';
7926	return s;
7927}
7928
7929std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
7930{
7931	s << "VkDisplayPlaneCapabilities2KHR = {\n";
7932	s << "\tsType = " << value.sType << '\n';
7933	s << "\tpNext = " << value.pNext << '\n';
7934	s << "\tcapabilities = " << value.capabilities << '\n';
7935	s << '}';
7936	return s;
7937}
7938
7939std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
7940{
7941	s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
7942	s << "\tsType = " << value.sType << '\n';
7943	s << "\tpNext = " << value.pNext << '\n';
7944	s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
7945	s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
7946	s << '}';
7947	return s;
7948}
7949
7950std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR& value)
7951{
7952	s << "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = {\n";
7953	s << "\tsType = " << value.sType << '\n';
7954	s << "\tpNext = " << value.pNext << '\n';
7955	s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
7956	s << '}';
7957	return s;
7958}
7959
7960std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
7961{
7962	s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
7963	s << "\tsType = " << value.sType << '\n';
7964	s << "\tpNext = " << value.pNext << '\n';
7965	s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
7966	s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
7967	s << '}';
7968	return s;
7969}
7970
7971std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
7972{
7973	s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
7974	s << "\tsType = " << value.sType << '\n';
7975	s << "\tpNext = " << value.pNext << '\n';
7976	s << "\tfragmentSize = " << value.fragmentSize << '\n';
7977	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
7978	s << '}';
7979	return s;
7980}
7981
7982std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
7983{
7984	s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
7985	s << "\tsType = " << value.sType << '\n';
7986	s << "\tpNext = " << value.pNext << '\n';
7987	s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
7988	s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
7989	s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
7990	s << '}';
7991	return s;
7992}
7993
7994std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
7995{
7996	s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
7997	s << "\tsType = " << value.sType << '\n';
7998	s << "\tpNext = " << value.pNext << '\n';
7999	s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
8000	s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
8001	s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
8002	s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
8003	s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
8004	s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
8005	s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
8006	s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
8007	s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
8008	s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
8009	s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
8010	s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
8011	s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
8012	s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
8013	s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
8014	s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
8015	s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
8016	s << '}';
8017	return s;
8018}
8019
8020std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
8021{
8022	s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
8023	s << "\tsType = " << value.sType << '\n';
8024	s << "\tpNext = " << value.pNext << '\n';
8025	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
8026	s << "\tfragmentSize = " << value.fragmentSize << '\n';
8027	s << '}';
8028	return s;
8029}
8030
8031std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
8032{
8033	s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
8034	s << "\tsType = " << value.sType << '\n';
8035	s << "\tpNext = " << value.pNext << '\n';
8036	s << "\tsupportsProtected = " << value.supportsProtected << '\n';
8037	s << '}';
8038	return s;
8039}
8040
8041std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
8042{
8043	s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
8044	s << "\tsType = " << value.sType << '\n';
8045	s << "\tpNext = " << value.pNext << '\n';
8046	s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
8047	s << '}';
8048	return s;
8049}
8050
8051std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
8052{
8053	s << "VkPipelineInfoKHR = {\n";
8054	s << "\tsType = " << value.sType << '\n';
8055	s << "\tpNext = " << value.pNext << '\n';
8056	s << "\tpipeline = " << value.pipeline << '\n';
8057	s << '}';
8058	return s;
8059}
8060
8061std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
8062{
8063	s << "VkPipelineExecutablePropertiesKHR = {\n";
8064	s << "\tsType = " << value.sType << '\n';
8065	s << "\tpNext = " << value.pNext << '\n';
8066	s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
8067	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8068	s << "\tdescription = " << (const char*)value.description << '\n';
8069	s << "\tsubgroupSize = " << value.subgroupSize << '\n';
8070	s << '}';
8071	return s;
8072}
8073
8074std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
8075{
8076	s << "VkPipelineExecutableInfoKHR = {\n";
8077	s << "\tsType = " << value.sType << '\n';
8078	s << "\tpNext = " << value.pNext << '\n';
8079	s << "\tpipeline = " << value.pipeline << '\n';
8080	s << "\texecutableIndex = " << value.executableIndex << '\n';
8081	s << '}';
8082	return s;
8083}
8084
8085std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
8086{
8087	s << "VkPipelineExecutableStatisticValueKHR = {\n";
8088	s << "\tb32 = " << value.b32 << '\n';
8089	s << "\ti64 = " << value.i64 << '\n';
8090	s << "\tu64 = " << value.u64 << '\n';
8091	s << "\tf64 = " << value.f64 << '\n';
8092	s << '}';
8093	return s;
8094}
8095
8096std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
8097{
8098	s << "VkPipelineExecutableStatisticKHR = {\n";
8099	s << "\tsType = " << value.sType << '\n';
8100	s << "\tpNext = " << value.pNext << '\n';
8101	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8102	s << "\tdescription = " << (const char*)value.description << '\n';
8103	s << "\tformat = " << value.format << '\n';
8104	s << "\tvalue = " << value.value << '\n';
8105	s << '}';
8106	return s;
8107}
8108
8109std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
8110{
8111	s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
8112	s << "\tsType = " << value.sType << '\n';
8113	s << "\tpNext = " << value.pNext << '\n';
8114	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8115	s << "\tdescription = " << (const char*)value.description << '\n';
8116	s << "\tisText = " << value.isText << '\n';
8117	s << "\tdataSize = " << value.dataSize << '\n';
8118	s << "\tpData = " << value.pData << '\n';
8119	s << '}';
8120	return s;
8121}
8122
8123std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
8124{
8125	s << "VkPipelineLibraryCreateInfoKHR = {\n";
8126	s << "\tsType = " << value.sType << '\n';
8127	s << "\tpNext = " << value.pNext << '\n';
8128	s << "\tlibraryCount = " << value.libraryCount << '\n';
8129	s << "\tpLibraries = " << value.pLibraries << '\n';
8130	s << '}';
8131	return s;
8132}
8133
8134std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2KHR& value)
8135{
8136	s << "VkMemoryBarrier2KHR = {\n";
8137	s << "\tsType = " << value.sType << '\n';
8138	s << "\tpNext = " << value.pNext << '\n';
8139	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8140	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8141	s << "\tdstStageMask = " << value.dstStageMask << '\n';
8142	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8143	s << '}';
8144	return s;
8145}
8146
8147std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2KHR& value)
8148{
8149	s << "VkBufferMemoryBarrier2KHR = {\n";
8150	s << "\tsType = " << value.sType << '\n';
8151	s << "\tpNext = " << value.pNext << '\n';
8152	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8153	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8154	s << "\tdstStageMask = " << value.dstStageMask << '\n';
8155	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8156	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8157	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8158	s << "\tbuffer = " << value.buffer << '\n';
8159	s << "\toffset = " << value.offset << '\n';
8160	s << "\tsize = " << value.size << '\n';
8161	s << '}';
8162	return s;
8163}
8164
8165std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2KHR& value)
8166{
8167	s << "VkImageMemoryBarrier2KHR = {\n";
8168	s << "\tsType = " << value.sType << '\n';
8169	s << "\tpNext = " << value.pNext << '\n';
8170	s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8171	s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8172	s << "\tdstStageMask = " << value.dstStageMask << '\n';
8173	s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8174	s << "\toldLayout = " << value.oldLayout << '\n';
8175	s << "\tnewLayout = " << value.newLayout << '\n';
8176	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8177	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8178	s << "\timage = " << value.image << '\n';
8179	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
8180	s << '}';
8181	return s;
8182}
8183
8184std::ostream& operator<< (std::ostream& s, const VkDependencyInfoKHR& value)
8185{
8186	s << "VkDependencyInfoKHR = {\n";
8187	s << "\tsType = " << value.sType << '\n';
8188	s << "\tpNext = " << value.pNext << '\n';
8189	s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
8190	s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
8191	s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
8192	s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
8193	s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
8194	s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
8195	s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
8196	s << '}';
8197	return s;
8198}
8199
8200std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfoKHR& value)
8201{
8202	s << "VkSemaphoreSubmitInfoKHR = {\n";
8203	s << "\tsType = " << value.sType << '\n';
8204	s << "\tpNext = " << value.pNext << '\n';
8205	s << "\tsemaphore = " << value.semaphore << '\n';
8206	s << "\tvalue = " << value.value << '\n';
8207	s << "\tstageMask = " << value.stageMask << '\n';
8208	s << "\tdeviceIndex = " << value.deviceIndex << '\n';
8209	s << '}';
8210	return s;
8211}
8212
8213std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfoKHR& value)
8214{
8215	s << "VkCommandBufferSubmitInfoKHR = {\n";
8216	s << "\tsType = " << value.sType << '\n';
8217	s << "\tpNext = " << value.pNext << '\n';
8218	s << "\tcommandBuffer = " << value.commandBuffer << '\n';
8219	s << "\tdeviceMask = " << value.deviceMask << '\n';
8220	s << '}';
8221	return s;
8222}
8223
8224std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2KHR& value)
8225{
8226	s << "VkSubmitInfo2KHR = {\n";
8227	s << "\tsType = " << value.sType << '\n';
8228	s << "\tpNext = " << value.pNext << '\n';
8229	s << "\tflags = " << getSubmitFlagsKHRStr(value.flags) << '\n';
8230	s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
8231	s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
8232	s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
8233	s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
8234	s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
8235	s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
8236	s << '}';
8237	return s;
8238}
8239
8240std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2FeaturesKHR& value)
8241{
8242	s << "VkPhysicalDeviceSynchronization2FeaturesKHR = {\n";
8243	s << "\tsType = " << value.sType << '\n';
8244	s << "\tpNext = " << value.pNext << '\n';
8245	s << "\tsynchronization2 = " << value.synchronization2 << '\n';
8246	s << '}';
8247	return s;
8248}
8249
8250std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
8251{
8252	s << "VkQueueFamilyCheckpointProperties2NV = {\n";
8253	s << "\tsType = " << value.sType << '\n';
8254	s << "\tpNext = " << value.pNext << '\n';
8255	s << "\tcheckpointExecutionStageMask = " << value.checkpointExecutionStageMask << '\n';
8256	s << '}';
8257	return s;
8258}
8259
8260std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
8261{
8262	s << "VkCheckpointData2NV = {\n";
8263	s << "\tsType = " << value.sType << '\n';
8264	s << "\tpNext = " << value.pNext << '\n';
8265	s << "\tstage = " << value.stage << '\n';
8266	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
8267	s << '}';
8268	return s;
8269}
8270
8271std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR& value)
8272{
8273	s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = {\n";
8274	s << "\tsType = " << value.sType << '\n';
8275	s << "\tpNext = " << value.pNext << '\n';
8276	s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
8277	s << '}';
8278	return s;
8279}
8280
8281std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
8282{
8283	s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
8284	s << "\tsType = " << value.sType << '\n';
8285	s << "\tpNext = " << value.pNext << '\n';
8286	s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
8287	s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
8288	s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
8289	s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
8290	s << '}';
8291	return s;
8292}
8293
8294std::ostream& operator<< (std::ostream& s, const VkBufferCopy2KHR& value)
8295{
8296	s << "VkBufferCopy2KHR = {\n";
8297	s << "\tsType = " << value.sType << '\n';
8298	s << "\tpNext = " << value.pNext << '\n';
8299	s << "\tsrcOffset = " << value.srcOffset << '\n';
8300	s << "\tdstOffset = " << value.dstOffset << '\n';
8301	s << "\tsize = " << value.size << '\n';
8302	s << '}';
8303	return s;
8304}
8305
8306std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2KHR& value)
8307{
8308	s << "VkCopyBufferInfo2KHR = {\n";
8309	s << "\tsType = " << value.sType << '\n';
8310	s << "\tpNext = " << value.pNext << '\n';
8311	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8312	s << "\tdstBuffer = " << value.dstBuffer << '\n';
8313	s << "\tregionCount = " << value.regionCount << '\n';
8314	s << "\tpRegions = " << value.pRegions << '\n';
8315	s << '}';
8316	return s;
8317}
8318
8319std::ostream& operator<< (std::ostream& s, const VkImageCopy2KHR& value)
8320{
8321	s << "VkImageCopy2KHR = {\n";
8322	s << "\tsType = " << value.sType << '\n';
8323	s << "\tpNext = " << value.pNext << '\n';
8324	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8325	s << "\tsrcOffset = " << value.srcOffset << '\n';
8326	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8327	s << "\tdstOffset = " << value.dstOffset << '\n';
8328	s << "\textent = " << value.extent << '\n';
8329	s << '}';
8330	return s;
8331}
8332
8333std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2KHR& value)
8334{
8335	s << "VkCopyImageInfo2KHR = {\n";
8336	s << "\tsType = " << value.sType << '\n';
8337	s << "\tpNext = " << value.pNext << '\n';
8338	s << "\tsrcImage = " << value.srcImage << '\n';
8339	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8340	s << "\tdstImage = " << value.dstImage << '\n';
8341	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8342	s << "\tregionCount = " << value.regionCount << '\n';
8343	s << "\tpRegions = " << value.pRegions << '\n';
8344	s << '}';
8345	return s;
8346}
8347
8348std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2KHR& value)
8349{
8350	s << "VkBufferImageCopy2KHR = {\n";
8351	s << "\tsType = " << value.sType << '\n';
8352	s << "\tpNext = " << value.pNext << '\n';
8353	s << "\tbufferOffset = " << value.bufferOffset << '\n';
8354	s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
8355	s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
8356	s << "\timageSubresource = " << value.imageSubresource << '\n';
8357	s << "\timageOffset = " << value.imageOffset << '\n';
8358	s << "\timageExtent = " << value.imageExtent << '\n';
8359	s << '}';
8360	return s;
8361}
8362
8363std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2KHR& value)
8364{
8365	s << "VkCopyBufferToImageInfo2KHR = {\n";
8366	s << "\tsType = " << value.sType << '\n';
8367	s << "\tpNext = " << value.pNext << '\n';
8368	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8369	s << "\tdstImage = " << value.dstImage << '\n';
8370	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8371	s << "\tregionCount = " << value.regionCount << '\n';
8372	s << "\tpRegions = " << value.pRegions << '\n';
8373	s << '}';
8374	return s;
8375}
8376
8377std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2KHR& value)
8378{
8379	s << "VkCopyImageToBufferInfo2KHR = {\n";
8380	s << "\tsType = " << value.sType << '\n';
8381	s << "\tpNext = " << value.pNext << '\n';
8382	s << "\tsrcImage = " << value.srcImage << '\n';
8383	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8384	s << "\tdstBuffer = " << value.dstBuffer << '\n';
8385	s << "\tregionCount = " << value.regionCount << '\n';
8386	s << "\tpRegions = " << value.pRegions << '\n';
8387	s << '}';
8388	return s;
8389}
8390
8391std::ostream& operator<< (std::ostream& s, const VkImageBlit2KHR& value)
8392{
8393	s << "VkImageBlit2KHR = {\n";
8394	s << "\tsType = " << value.sType << '\n';
8395	s << "\tpNext = " << value.pNext << '\n';
8396	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8397	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
8398	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8399	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
8400	s << '}';
8401	return s;
8402}
8403
8404std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2KHR& value)
8405{
8406	s << "VkBlitImageInfo2KHR = {\n";
8407	s << "\tsType = " << value.sType << '\n';
8408	s << "\tpNext = " << value.pNext << '\n';
8409	s << "\tsrcImage = " << value.srcImage << '\n';
8410	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8411	s << "\tdstImage = " << value.dstImage << '\n';
8412	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8413	s << "\tregionCount = " << value.regionCount << '\n';
8414	s << "\tpRegions = " << value.pRegions << '\n';
8415	s << "\tfilter = " << value.filter << '\n';
8416	s << '}';
8417	return s;
8418}
8419
8420std::ostream& operator<< (std::ostream& s, const VkImageResolve2KHR& value)
8421{
8422	s << "VkImageResolve2KHR = {\n";
8423	s << "\tsType = " << value.sType << '\n';
8424	s << "\tpNext = " << value.pNext << '\n';
8425	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8426	s << "\tsrcOffset = " << value.srcOffset << '\n';
8427	s << "\tdstSubresource = " << value.dstSubresource << '\n';
8428	s << "\tdstOffset = " << value.dstOffset << '\n';
8429	s << "\textent = " << value.extent << '\n';
8430	s << '}';
8431	return s;
8432}
8433
8434std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2KHR& value)
8435{
8436	s << "VkResolveImageInfo2KHR = {\n";
8437	s << "\tsType = " << value.sType << '\n';
8438	s << "\tpNext = " << value.pNext << '\n';
8439	s << "\tsrcImage = " << value.srcImage << '\n';
8440	s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8441	s << "\tdstImage = " << value.dstImage << '\n';
8442	s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8443	s << "\tregionCount = " << value.regionCount << '\n';
8444	s << "\tpRegions = " << value.pRegions << '\n';
8445	s << '}';
8446	return s;
8447}
8448
8449std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
8450{
8451	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
8452	s << "\tsType = " << value.sType << '\n';
8453	s << "\tpNext = " << value.pNext << '\n';
8454	s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
8455	s << "\tpfnCallback = " << value.pfnCallback << '\n';
8456	s << "\tpUserData = " << value.pUserData << '\n';
8457	s << '}';
8458	return s;
8459}
8460
8461std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
8462{
8463	s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
8464	s << "\tsType = " << value.sType << '\n';
8465	s << "\tpNext = " << value.pNext << '\n';
8466	s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
8467	s << '}';
8468	return s;
8469}
8470
8471std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
8472{
8473	s << "VkDebugMarkerObjectNameInfoEXT = {\n";
8474	s << "\tsType = " << value.sType << '\n';
8475	s << "\tpNext = " << value.pNext << '\n';
8476	s << "\tobjectType = " << value.objectType << '\n';
8477	s << "\tobject = " << value.object << '\n';
8478	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
8479	s << '}';
8480	return s;
8481}
8482
8483std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
8484{
8485	s << "VkDebugMarkerObjectTagInfoEXT = {\n";
8486	s << "\tsType = " << value.sType << '\n';
8487	s << "\tpNext = " << value.pNext << '\n';
8488	s << "\tobjectType = " << value.objectType << '\n';
8489	s << "\tobject = " << value.object << '\n';
8490	s << "\ttagName = " << value.tagName << '\n';
8491	s << "\ttagSize = " << value.tagSize << '\n';
8492	s << "\tpTag = " << value.pTag << '\n';
8493	s << '}';
8494	return s;
8495}
8496
8497std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
8498{
8499	s << "VkDebugMarkerMarkerInfoEXT = {\n";
8500	s << "\tsType = " << value.sType << '\n';
8501	s << "\tpNext = " << value.pNext << '\n';
8502	s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
8503	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
8504	s << '}';
8505	return s;
8506}
8507
8508std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
8509{
8510	s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
8511	s << "\tsType = " << value.sType << '\n';
8512	s << "\tpNext = " << value.pNext << '\n';
8513	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8514	s << '}';
8515	return s;
8516}
8517
8518std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
8519{
8520	s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
8521	s << "\tsType = " << value.sType << '\n';
8522	s << "\tpNext = " << value.pNext << '\n';
8523	s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8524	s << '}';
8525	return s;
8526}
8527
8528std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
8529{
8530	s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
8531	s << "\tsType = " << value.sType << '\n';
8532	s << "\tpNext = " << value.pNext << '\n';
8533	s << "\timage = " << value.image << '\n';
8534	s << "\tbuffer = " << value.buffer << '\n';
8535	s << '}';
8536	return s;
8537}
8538
8539std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
8540{
8541	s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
8542	s << "\tsType = " << value.sType << '\n';
8543	s << "\tpNext = " << value.pNext << '\n';
8544	s << "\ttransformFeedback = " << value.transformFeedback << '\n';
8545	s << "\tgeometryStreams = " << value.geometryStreams << '\n';
8546	s << '}';
8547	return s;
8548}
8549
8550std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
8551{
8552	s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
8553	s << "\tsType = " << value.sType << '\n';
8554	s << "\tpNext = " << value.pNext << '\n';
8555	s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
8556	s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
8557	s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
8558	s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
8559	s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
8560	s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
8561	s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
8562	s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
8563	s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
8564	s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
8565	s << '}';
8566	return s;
8567}
8568
8569std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
8570{
8571	s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
8572	s << "\tsType = " << value.sType << '\n';
8573	s << "\tpNext = " << value.pNext << '\n';
8574	s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
8575	s << "\trasterizationStream = " << value.rasterizationStream << '\n';
8576	s << '}';
8577	return s;
8578}
8579
8580std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
8581{
8582	s << "VkImageViewHandleInfoNVX = {\n";
8583	s << "\tsType = " << value.sType << '\n';
8584	s << "\tpNext = " << value.pNext << '\n';
8585	s << "\timageView = " << value.imageView << '\n';
8586	s << "\tdescriptorType = " << value.descriptorType << '\n';
8587	s << "\tsampler = " << value.sampler << '\n';
8588	s << '}';
8589	return s;
8590}
8591
8592std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
8593{
8594	s << "VkImageViewAddressPropertiesNVX = {\n";
8595	s << "\tsType = " << value.sType << '\n';
8596	s << "\tpNext = " << value.pNext << '\n';
8597	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
8598	s << "\tsize = " << value.size << '\n';
8599	s << '}';
8600	return s;
8601}
8602
8603std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
8604{
8605	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
8606	s << "\tsType = " << value.sType << '\n';
8607	s << "\tpNext = " << value.pNext << '\n';
8608	s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
8609	s << '}';
8610	return s;
8611}
8612
8613std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
8614{
8615	s << "VkShaderResourceUsageAMD = {\n";
8616	s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
8617	s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
8618	s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
8619	s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
8620	s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
8621	s << '}';
8622	return s;
8623}
8624
8625std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
8626{
8627	s << "VkShaderStatisticsInfoAMD = {\n";
8628	s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
8629	s << "\tresourceUsage = " << value.resourceUsage << '\n';
8630	s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
8631	s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
8632	s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
8633	s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
8634	s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
8635	s << '}';
8636	return s;
8637}
8638
8639std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
8640{
8641	s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
8642	s << "\tsType = " << value.sType << '\n';
8643	s << "\tpNext = " << value.pNext << '\n';
8644	s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
8645	s << '}';
8646	return s;
8647}
8648
8649std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
8650{
8651	s << "VkExternalImageFormatPropertiesNV = {\n";
8652	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
8653	s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
8654	s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
8655	s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
8656	s << '}';
8657	return s;
8658}
8659
8660std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
8661{
8662	s << "VkExternalMemoryImageCreateInfoNV = {\n";
8663	s << "\tsType = " << value.sType << '\n';
8664	s << "\tpNext = " << value.pNext << '\n';
8665	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8666	s << '}';
8667	return s;
8668}
8669
8670std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
8671{
8672	s << "VkExportMemoryAllocateInfoNV = {\n";
8673	s << "\tsType = " << value.sType << '\n';
8674	s << "\tpNext = " << value.pNext << '\n';
8675	s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8676	s << '}';
8677	return s;
8678}
8679
8680std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
8681{
8682	s << "VkValidationFlagsEXT = {\n";
8683	s << "\tsType = " << value.sType << '\n';
8684	s << "\tpNext = " << value.pNext << '\n';
8685	s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
8686	s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
8687	s << '}';
8688	return s;
8689}
8690
8691std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& value)
8692{
8693	s << "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = {\n";
8694	s << "\tsType = " << value.sType << '\n';
8695	s << "\tpNext = " << value.pNext << '\n';
8696	s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
8697	s << '}';
8698	return s;
8699}
8700
8701std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
8702{
8703	s << "VkImageViewASTCDecodeModeEXT = {\n";
8704	s << "\tsType = " << value.sType << '\n';
8705	s << "\tpNext = " << value.pNext << '\n';
8706	s << "\tdecodeMode = " << value.decodeMode << '\n';
8707	s << '}';
8708	return s;
8709}
8710
8711std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
8712{
8713	s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
8714	s << "\tsType = " << value.sType << '\n';
8715	s << "\tpNext = " << value.pNext << '\n';
8716	s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
8717	s << '}';
8718	return s;
8719}
8720
8721std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
8722{
8723	s << "VkConditionalRenderingBeginInfoEXT = {\n";
8724	s << "\tsType = " << value.sType << '\n';
8725	s << "\tpNext = " << value.pNext << '\n';
8726	s << "\tbuffer = " << value.buffer << '\n';
8727	s << "\toffset = " << value.offset << '\n';
8728	s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
8729	s << '}';
8730	return s;
8731}
8732
8733std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
8734{
8735	s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
8736	s << "\tsType = " << value.sType << '\n';
8737	s << "\tpNext = " << value.pNext << '\n';
8738	s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
8739	s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
8740	s << '}';
8741	return s;
8742}
8743
8744std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
8745{
8746	s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
8747	s << "\tsType = " << value.sType << '\n';
8748	s << "\tpNext = " << value.pNext << '\n';
8749	s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
8750	s << '}';
8751	return s;
8752}
8753
8754std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
8755{
8756	s << "VkViewportWScalingNV = {\n";
8757	s << "\txcoeff = " << value.xcoeff << '\n';
8758	s << "\tycoeff = " << value.ycoeff << '\n';
8759	s << '}';
8760	return s;
8761}
8762
8763std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
8764{
8765	s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
8766	s << "\tsType = " << value.sType << '\n';
8767	s << "\tpNext = " << value.pNext << '\n';
8768	s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
8769	s << "\tviewportCount = " << value.viewportCount << '\n';
8770	s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
8771	s << '}';
8772	return s;
8773}
8774
8775std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
8776{
8777	s << "VkSurfaceCapabilities2EXT = {\n";
8778	s << "\tsType = " << value.sType << '\n';
8779	s << "\tpNext = " << value.pNext << '\n';
8780	s << "\tminImageCount = " << value.minImageCount << '\n';
8781	s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8782	s << "\tcurrentExtent = " << value.currentExtent << '\n';
8783	s << "\tminImageExtent = " << value.minImageExtent << '\n';
8784	s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8785	s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8786	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8787	s << "\tcurrentTransform = " << value.currentTransform << '\n';
8788	s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8789	s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8790	s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
8791	s << '}';
8792	return s;
8793}
8794
8795std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
8796{
8797	s << "VkDisplayPowerInfoEXT = {\n";
8798	s << "\tsType = " << value.sType << '\n';
8799	s << "\tpNext = " << value.pNext << '\n';
8800	s << "\tpowerState = " << value.powerState << '\n';
8801	s << '}';
8802	return s;
8803}
8804
8805std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
8806{
8807	s << "VkDeviceEventInfoEXT = {\n";
8808	s << "\tsType = " << value.sType << '\n';
8809	s << "\tpNext = " << value.pNext << '\n';
8810	s << "\tdeviceEvent = " << value.deviceEvent << '\n';
8811	s << '}';
8812	return s;
8813}
8814
8815std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
8816{
8817	s << "VkDisplayEventInfoEXT = {\n";
8818	s << "\tsType = " << value.sType << '\n';
8819	s << "\tpNext = " << value.pNext << '\n';
8820	s << "\tdisplayEvent = " << value.displayEvent << '\n';
8821	s << '}';
8822	return s;
8823}
8824
8825std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
8826{
8827	s << "VkSwapchainCounterCreateInfoEXT = {\n";
8828	s << "\tsType = " << value.sType << '\n';
8829	s << "\tpNext = " << value.pNext << '\n';
8830	s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
8831	s << '}';
8832	return s;
8833}
8834
8835std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
8836{
8837	s << "VkRefreshCycleDurationGOOGLE = {\n";
8838	s << "\trefreshDuration = " << value.refreshDuration << '\n';
8839	s << '}';
8840	return s;
8841}
8842
8843std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
8844{
8845	s << "VkPastPresentationTimingGOOGLE = {\n";
8846	s << "\tpresentID = " << value.presentID << '\n';
8847	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8848	s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
8849	s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
8850	s << "\tpresentMargin = " << value.presentMargin << '\n';
8851	s << '}';
8852	return s;
8853}
8854
8855std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
8856{
8857	s << "VkPresentTimeGOOGLE = {\n";
8858	s << "\tpresentID = " << value.presentID << '\n';
8859	s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8860	s << '}';
8861	return s;
8862}
8863
8864std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
8865{
8866	s << "VkPresentTimesInfoGOOGLE = {\n";
8867	s << "\tsType = " << value.sType << '\n';
8868	s << "\tpNext = " << value.pNext << '\n';
8869	s << "\tswapchainCount = " << value.swapchainCount << '\n';
8870	s << "\tpTimes = " << value.pTimes << '\n';
8871	s << '}';
8872	return s;
8873}
8874
8875std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
8876{
8877	s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
8878	s << "\tsType = " << value.sType << '\n';
8879	s << "\tpNext = " << value.pNext << '\n';
8880	s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
8881	s << '}';
8882	return s;
8883}
8884
8885std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
8886{
8887	s << "VkViewportSwizzleNV = {\n";
8888	s << "\tx = " << value.x << '\n';
8889	s << "\ty = " << value.y << '\n';
8890	s << "\tz = " << value.z << '\n';
8891	s << "\tw = " << value.w << '\n';
8892	s << '}';
8893	return s;
8894}
8895
8896std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
8897{
8898	s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
8899	s << "\tsType = " << value.sType << '\n';
8900	s << "\tpNext = " << value.pNext << '\n';
8901	s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
8902	s << "\tviewportCount = " << value.viewportCount << '\n';
8903	s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
8904	s << '}';
8905	return s;
8906}
8907
8908std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
8909{
8910	s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
8911	s << "\tsType = " << value.sType << '\n';
8912	s << "\tpNext = " << value.pNext << '\n';
8913	s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
8914	s << '}';
8915	return s;
8916}
8917
8918std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
8919{
8920	s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
8921	s << "\tsType = " << value.sType << '\n';
8922	s << "\tpNext = " << value.pNext << '\n';
8923	s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
8924	s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
8925	s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
8926	s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
8927	s << '}';
8928	return s;
8929}
8930
8931std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
8932{
8933	s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
8934	s << "\tsType = " << value.sType << '\n';
8935	s << "\tpNext = " << value.pNext << '\n';
8936	s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
8937	s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
8938	s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
8939	s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
8940	s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
8941	s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
8942	s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
8943	s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
8944	s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
8945	s << '}';
8946	return s;
8947}
8948
8949std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
8950{
8951	s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
8952	s << "\tsType = " << value.sType << '\n';
8953	s << "\tpNext = " << value.pNext << '\n';
8954	s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
8955	s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
8956	s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
8957	s << '}';
8958	return s;
8959}
8960
8961std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
8962{
8963	s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
8964	s << "\tsType = " << value.sType << '\n';
8965	s << "\tpNext = " << value.pNext << '\n';
8966	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
8967	s << '}';
8968	return s;
8969}
8970
8971std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
8972{
8973	s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
8974	s << "\tsType = " << value.sType << '\n';
8975	s << "\tpNext = " << value.pNext << '\n';
8976	s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
8977	s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
8978	s << '}';
8979	return s;
8980}
8981
8982std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
8983{
8984	s << "VkXYColorEXT = {\n";
8985	s << "\tx = " << value.x << '\n';
8986	s << "\ty = " << value.y << '\n';
8987	s << '}';
8988	return s;
8989}
8990
8991std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
8992{
8993	s << "VkHdrMetadataEXT = {\n";
8994	s << "\tsType = " << value.sType << '\n';
8995	s << "\tpNext = " << value.pNext << '\n';
8996	s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
8997	s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
8998	s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
8999	s << "\twhitePoint = " << value.whitePoint << '\n';
9000	s << "\tmaxLuminance = " << value.maxLuminance << '\n';
9001	s << "\tminLuminance = " << value.minLuminance << '\n';
9002	s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
9003	s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
9004	s << '}';
9005	return s;
9006}
9007
9008std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9009{
9010	s << "VkDebugUtilsLabelEXT = {\n";
9011	s << "\tsType = " << value.sType << '\n';
9012	s << "\tpNext = " << value.pNext << '\n';
9013	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9014	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9015	s << '}';
9016	return s;
9017}
9018
9019std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
9020{
9021	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
9022	s << "\tsType = " << value.sType << '\n';
9023	s << "\tpNext = " << value.pNext << '\n';
9024	s << "\tobjectType = " << value.objectType << '\n';
9025	s << "\tobjectHandle = " << value.objectHandle << '\n';
9026	s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9027	s << '}';
9028	return s;
9029}
9030
9031std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9032{
9033	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9034	s << "\tsType = " << value.sType << '\n';
9035	s << "\tpNext = " << value.pNext << '\n';
9036	s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9037	s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9038	s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9039	s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9040	s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9041	s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9042	s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9043	s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9044	s << "\tobjectCount = " << value.objectCount << '\n';
9045	s << "\tpObjects = " << value.pObjects << '\n';
9046	s << '}';
9047	return s;
9048}
9049
9050std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9051{
9052	s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9053	s << "\tsType = " << value.sType << '\n';
9054	s << "\tpNext = " << value.pNext << '\n';
9055	s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9056	s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9057	s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9058	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9059	s << "\tpUserData = " << value.pUserData << '\n';
9060	s << '}';
9061	return s;
9062}
9063
9064std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
9065{
9066	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
9067	s << "\tsType = " << value.sType << '\n';
9068	s << "\tpNext = " << value.pNext << '\n';
9069	s << "\tobjectType = " << value.objectType << '\n';
9070	s << "\tobjectHandle = " << value.objectHandle << '\n';
9071	s << "\ttagName = " << value.tagName << '\n';
9072	s << "\ttagSize = " << value.tagSize << '\n';
9073	s << "\tpTag = " << value.pTag << '\n';
9074	s << '}';
9075	return s;
9076}
9077
9078std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeaturesEXT& value)
9079{
9080	s << "VkPhysicalDeviceInlineUniformBlockFeaturesEXT = {\n";
9081	s << "\tsType = " << value.sType << '\n';
9082	s << "\tpNext = " << value.pNext << '\n';
9083	s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
9084	s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
9085	s << '}';
9086	return s;
9087}
9088
9089std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockPropertiesEXT& value)
9090{
9091	s << "VkPhysicalDeviceInlineUniformBlockPropertiesEXT = {\n";
9092	s << "\tsType = " << value.sType << '\n';
9093	s << "\tpNext = " << value.pNext << '\n';
9094	s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
9095	s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
9096	s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
9097	s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
9098	s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
9099	s << '}';
9100	return s;
9101}
9102
9103std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlockEXT& value)
9104{
9105	s << "VkWriteDescriptorSetInlineUniformBlockEXT = {\n";
9106	s << "\tsType = " << value.sType << '\n';
9107	s << "\tpNext = " << value.pNext << '\n';
9108	s << "\tdataSize = " << value.dataSize << '\n';
9109	s << "\tpData = " << value.pData << '\n';
9110	s << '}';
9111	return s;
9112}
9113
9114std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfoEXT& value)
9115{
9116	s << "VkDescriptorPoolInlineUniformBlockCreateInfoEXT = {\n";
9117	s << "\tsType = " << value.sType << '\n';
9118	s << "\tpNext = " << value.pNext << '\n';
9119	s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
9120	s << '}';
9121	return s;
9122}
9123
9124std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
9125{
9126	s << "VkSampleLocationEXT = {\n";
9127	s << "\tx = " << value.x << '\n';
9128	s << "\ty = " << value.y << '\n';
9129	s << '}';
9130	return s;
9131}
9132
9133std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
9134{
9135	s << "VkSampleLocationsInfoEXT = {\n";
9136	s << "\tsType = " << value.sType << '\n';
9137	s << "\tpNext = " << value.pNext << '\n';
9138	s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
9139	s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
9140	s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
9141	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9142	s << '}';
9143	return s;
9144}
9145
9146std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
9147{
9148	s << "VkAttachmentSampleLocationsEXT = {\n";
9149	s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
9150	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9151	s << '}';
9152	return s;
9153}
9154
9155std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
9156{
9157	s << "VkSubpassSampleLocationsEXT = {\n";
9158	s << "\tsubpassIndex = " << value.subpassIndex << '\n';
9159	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9160	s << '}';
9161	return s;
9162}
9163
9164std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
9165{
9166	s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
9167	s << "\tsType = " << value.sType << '\n';
9168	s << "\tpNext = " << value.pNext << '\n';
9169	s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
9170	s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
9171	s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
9172	s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
9173	s << '}';
9174	return s;
9175}
9176
9177std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
9178{
9179	s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
9180	s << "\tsType = " << value.sType << '\n';
9181	s << "\tpNext = " << value.pNext << '\n';
9182	s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
9183	s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9184	s << '}';
9185	return s;
9186}
9187
9188std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
9189{
9190	s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
9191	s << "\tsType = " << value.sType << '\n';
9192	s << "\tpNext = " << value.pNext << '\n';
9193	s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
9194	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9195	s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
9196	s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
9197	s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
9198	s << '}';
9199	return s;
9200}
9201
9202std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
9203{
9204	s << "VkMultisamplePropertiesEXT = {\n";
9205	s << "\tsType = " << value.sType << '\n';
9206	s << "\tpNext = " << value.pNext << '\n';
9207	s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9208	s << '}';
9209	return s;
9210}
9211
9212std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
9213{
9214	s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
9215	s << "\tsType = " << value.sType << '\n';
9216	s << "\tpNext = " << value.pNext << '\n';
9217	s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
9218	s << '}';
9219	return s;
9220}
9221
9222std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
9223{
9224	s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
9225	s << "\tsType = " << value.sType << '\n';
9226	s << "\tpNext = " << value.pNext << '\n';
9227	s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
9228	s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
9229	s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
9230	s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
9231	s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
9232	s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
9233	s << '}';
9234	return s;
9235}
9236
9237std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
9238{
9239	s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
9240	s << "\tsType = " << value.sType << '\n';
9241	s << "\tpNext = " << value.pNext << '\n';
9242	s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
9243	s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
9244	s << "\tblendOverlap = " << value.blendOverlap << '\n';
9245	s << '}';
9246	return s;
9247}
9248
9249std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
9250{
9251	s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
9252	s << "\tsType = " << value.sType << '\n';
9253	s << "\tpNext = " << value.pNext << '\n';
9254	s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
9255	s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
9256	s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
9257	s << '}';
9258	return s;
9259}
9260
9261std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
9262{
9263	s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
9264	s << "\tsType = " << value.sType << '\n';
9265	s << "\tpNext = " << value.pNext << '\n';
9266	s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
9267	s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
9268	s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
9269	s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
9270	s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
9271	s << '}';
9272	return s;
9273}
9274
9275std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
9276{
9277	s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
9278	s << "\tsType = " << value.sType << '\n';
9279	s << "\tpNext = " << value.pNext << '\n';
9280	s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
9281	s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
9282	s << '}';
9283	return s;
9284}
9285
9286std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
9287{
9288	s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
9289	s << "\tsType = " << value.sType << '\n';
9290	s << "\tpNext = " << value.pNext << '\n';
9291	s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
9292	s << '}';
9293	return s;
9294}
9295
9296std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
9297{
9298	s << "VkDrmFormatModifierPropertiesEXT = {\n";
9299	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9300	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
9301	s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
9302	s << '}';
9303	return s;
9304}
9305
9306std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
9307{
9308	s << "VkDrmFormatModifierPropertiesListEXT = {\n";
9309	s << "\tsType = " << value.sType << '\n';
9310	s << "\tpNext = " << value.pNext << '\n';
9311	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
9312	s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
9313	s << '}';
9314	return s;
9315}
9316
9317std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
9318{
9319	s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
9320	s << "\tsType = " << value.sType << '\n';
9321	s << "\tpNext = " << value.pNext << '\n';
9322	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9323	s << "\tsharingMode = " << value.sharingMode << '\n';
9324	s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
9325	s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
9326	s << '}';
9327	return s;
9328}
9329
9330std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
9331{
9332	s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
9333	s << "\tsType = " << value.sType << '\n';
9334	s << "\tpNext = " << value.pNext << '\n';
9335	s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
9336	s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
9337	s << '}';
9338	return s;
9339}
9340
9341std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
9342{
9343	s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
9344	s << "\tsType = " << value.sType << '\n';
9345	s << "\tpNext = " << value.pNext << '\n';
9346	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9347	s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
9348	s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
9349	s << '}';
9350	return s;
9351}
9352
9353std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
9354{
9355	s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
9356	s << "\tsType = " << value.sType << '\n';
9357	s << "\tpNext = " << value.pNext << '\n';
9358	s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9359	s << '}';
9360	return s;
9361}
9362
9363std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
9364{
9365	s << "VkValidationCacheCreateInfoEXT = {\n";
9366	s << "\tsType = " << value.sType << '\n';
9367	s << "\tpNext = " << value.pNext << '\n';
9368	s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
9369	s << "\tinitialDataSize = " << value.initialDataSize << '\n';
9370	s << "\tpInitialData = " << value.pInitialData << '\n';
9371	s << '}';
9372	return s;
9373}
9374
9375std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
9376{
9377	s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
9378	s << "\tsType = " << value.sType << '\n';
9379	s << "\tpNext = " << value.pNext << '\n';
9380	s << "\tvalidationCache = " << value.validationCache << '\n';
9381	s << '}';
9382	return s;
9383}
9384
9385std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
9386{
9387	s << "VkShadingRatePaletteNV = {\n";
9388	s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
9389	s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
9390	s << '}';
9391	return s;
9392}
9393
9394std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
9395{
9396	s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
9397	s << "\tsType = " << value.sType << '\n';
9398	s << "\tpNext = " << value.pNext << '\n';
9399	s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
9400	s << "\tviewportCount = " << value.viewportCount << '\n';
9401	s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
9402	s << '}';
9403	return s;
9404}
9405
9406std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
9407{
9408	s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
9409	s << "\tsType = " << value.sType << '\n';
9410	s << "\tpNext = " << value.pNext << '\n';
9411	s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
9412	s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
9413	s << '}';
9414	return s;
9415}
9416
9417std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
9418{
9419	s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
9420	s << "\tsType = " << value.sType << '\n';
9421	s << "\tpNext = " << value.pNext << '\n';
9422	s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
9423	s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
9424	s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
9425	s << '}';
9426	return s;
9427}
9428
9429std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
9430{
9431	s << "VkCoarseSampleLocationNV = {\n";
9432	s << "\tpixelX = " << value.pixelX << '\n';
9433	s << "\tpixelY = " << value.pixelY << '\n';
9434	s << "\tsample = " << value.sample << '\n';
9435	s << '}';
9436	return s;
9437}
9438
9439std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
9440{
9441	s << "VkCoarseSampleOrderCustomNV = {\n";
9442	s << "\tshadingRate = " << value.shadingRate << '\n';
9443	s << "\tsampleCount = " << value.sampleCount << '\n';
9444	s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
9445	s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9446	s << '}';
9447	return s;
9448}
9449
9450std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
9451{
9452	s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
9453	s << "\tsType = " << value.sType << '\n';
9454	s << "\tpNext = " << value.pNext << '\n';
9455	s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
9456	s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
9457	s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
9458	s << '}';
9459	return s;
9460}
9461
9462std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
9463{
9464	s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
9465	s << "\tsType = " << value.sType << '\n';
9466	s << "\tpNext = " << value.pNext << '\n';
9467	s << "\ttype = " << value.type << '\n';
9468	s << "\tgeneralShader = " << value.generalShader << '\n';
9469	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
9470	s << "\tanyHitShader = " << value.anyHitShader << '\n';
9471	s << "\tintersectionShader = " << value.intersectionShader << '\n';
9472	s << '}';
9473	return s;
9474}
9475
9476std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
9477{
9478	s << "VkRayTracingPipelineCreateInfoNV = {\n";
9479	s << "\tsType = " << value.sType << '\n';
9480	s << "\tpNext = " << value.pNext << '\n';
9481	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
9482	s << "\tstageCount = " << value.stageCount << '\n';
9483	s << "\tpStages = " << value.pStages << '\n';
9484	s << "\tgroupCount = " << value.groupCount << '\n';
9485	s << "\tpGroups = " << value.pGroups << '\n';
9486	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
9487	s << "\tlayout = " << value.layout << '\n';
9488	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
9489	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
9490	s << '}';
9491	return s;
9492}
9493
9494std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
9495{
9496	s << "VkGeometryTrianglesNV = {\n";
9497	s << "\tsType = " << value.sType << '\n';
9498	s << "\tpNext = " << value.pNext << '\n';
9499	s << "\tvertexData = " << value.vertexData << '\n';
9500	s << "\tvertexOffset = " << value.vertexOffset << '\n';
9501	s << "\tvertexCount = " << value.vertexCount << '\n';
9502	s << "\tvertexStride = " << value.vertexStride << '\n';
9503	s << "\tvertexFormat = " << value.vertexFormat << '\n';
9504	s << "\tindexData = " << value.indexData << '\n';
9505	s << "\tindexOffset = " << value.indexOffset << '\n';
9506	s << "\tindexCount = " << value.indexCount << '\n';
9507	s << "\tindexType = " << value.indexType << '\n';
9508	s << "\ttransformData = " << value.transformData << '\n';
9509	s << "\ttransformOffset = " << value.transformOffset << '\n';
9510	s << '}';
9511	return s;
9512}
9513
9514std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
9515{
9516	s << "VkGeometryAABBNV = {\n";
9517	s << "\tsType = " << value.sType << '\n';
9518	s << "\tpNext = " << value.pNext << '\n';
9519	s << "\taabbData = " << value.aabbData << '\n';
9520	s << "\tnumAABBs = " << value.numAABBs << '\n';
9521	s << "\tstride = " << value.stride << '\n';
9522	s << "\toffset = " << value.offset << '\n';
9523	s << '}';
9524	return s;
9525}
9526
9527std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
9528{
9529	s << "VkGeometryDataNV = {\n";
9530	s << "\ttriangles = " << value.triangles << '\n';
9531	s << "\taabbs = " << value.aabbs << '\n';
9532	s << '}';
9533	return s;
9534}
9535
9536std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
9537{
9538	s << "VkGeometryNV = {\n";
9539	s << "\tsType = " << value.sType << '\n';
9540	s << "\tpNext = " << value.pNext << '\n';
9541	s << "\tgeometryType = " << value.geometryType << '\n';
9542	s << "\tgeometry = " << value.geometry << '\n';
9543	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
9544	s << '}';
9545	return s;
9546}
9547
9548std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
9549{
9550	s << "VkAccelerationStructureInfoNV = {\n";
9551	s << "\tsType = " << value.sType << '\n';
9552	s << "\tpNext = " << value.pNext << '\n';
9553	s << "\ttype = " << value.type << '\n';
9554	s << "\tflags = " << getBuildAccelerationStructureFlagsNVStr(value.flags) << '\n';
9555	s << "\tinstanceCount = " << value.instanceCount << '\n';
9556	s << "\tgeometryCount = " << value.geometryCount << '\n';
9557	s << "\tpGeometries = " << value.pGeometries << '\n';
9558	s << '}';
9559	return s;
9560}
9561
9562std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
9563{
9564	s << "VkAccelerationStructureCreateInfoNV = {\n";
9565	s << "\tsType = " << value.sType << '\n';
9566	s << "\tpNext = " << value.pNext << '\n';
9567	s << "\tcompactedSize = " << value.compactedSize << '\n';
9568	s << "\tinfo = " << value.info << '\n';
9569	s << '}';
9570	return s;
9571}
9572
9573std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
9574{
9575	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
9576	s << "\tsType = " << value.sType << '\n';
9577	s << "\tpNext = " << value.pNext << '\n';
9578	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
9579	s << "\tmemory = " << value.memory << '\n';
9580	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
9581	s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
9582	s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
9583	s << '}';
9584	return s;
9585}
9586
9587std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
9588{
9589	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
9590	s << "\tsType = " << value.sType << '\n';
9591	s << "\tpNext = " << value.pNext << '\n';
9592	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
9593	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
9594	s << '}';
9595	return s;
9596}
9597
9598std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
9599{
9600	s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
9601	s << "\tsType = " << value.sType << '\n';
9602	s << "\tpNext = " << value.pNext << '\n';
9603	s << "\ttype = " << value.type << '\n';
9604	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
9605	s << '}';
9606	return s;
9607}
9608
9609std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
9610{
9611	s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
9612	s << "\tsType = " << value.sType << '\n';
9613	s << "\tpNext = " << value.pNext << '\n';
9614	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
9615	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
9616	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
9617	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
9618	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
9619	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
9620	s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
9621	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
9622	s << '}';
9623	return s;
9624}
9625
9626std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
9627{
9628	s << "VkTransformMatrixKHR = {\n";
9629	s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
9630	s << '}';
9631	return s;
9632}
9633
9634std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
9635{
9636	s << "VkAabbPositionsKHR = {\n";
9637	s << "\tminX = " << value.minX << '\n';
9638	s << "\tminY = " << value.minY << '\n';
9639	s << "\tminZ = " << value.minZ << '\n';
9640	s << "\tmaxX = " << value.maxX << '\n';
9641	s << "\tmaxY = " << value.maxY << '\n';
9642	s << "\tmaxZ = " << value.maxZ << '\n';
9643	s << '}';
9644	return s;
9645}
9646
9647std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
9648{
9649	s << "VkAccelerationStructureInstanceKHR = {\n";
9650	s << "\ttransform = " << value.transform << '\n';
9651	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
9652	s << "\tmask = " << value.mask << '\n';
9653	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
9654	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
9655	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
9656	s << '}';
9657	return s;
9658}
9659
9660std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
9661{
9662	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
9663	s << "\tsType = " << value.sType << '\n';
9664	s << "\tpNext = " << value.pNext << '\n';
9665	s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
9666	s << '}';
9667	return s;
9668}
9669
9670std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
9671{
9672	s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
9673	s << "\tsType = " << value.sType << '\n';
9674	s << "\tpNext = " << value.pNext << '\n';
9675	s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
9676	s << '}';
9677	return s;
9678}
9679
9680std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
9681{
9682	s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
9683	s << "\tsType = " << value.sType << '\n';
9684	s << "\tpNext = " << value.pNext << '\n';
9685	s << "\timageViewType = " << value.imageViewType << '\n';
9686	s << '}';
9687	return s;
9688}
9689
9690std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
9691{
9692	s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
9693	s << "\tsType = " << value.sType << '\n';
9694	s << "\tpNext = " << value.pNext << '\n';
9695	s << "\tfilterCubic = " << value.filterCubic << '\n';
9696	s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
9697	s << '}';
9698	return s;
9699}
9700
9701std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoEXT& value)
9702{
9703	s << "VkDeviceQueueGlobalPriorityCreateInfoEXT = {\n";
9704	s << "\tsType = " << value.sType << '\n';
9705	s << "\tpNext = " << value.pNext << '\n';
9706	s << "\tglobalPriority = " << value.globalPriority << '\n';
9707	s << '}';
9708	return s;
9709}
9710
9711std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
9712{
9713	s << "VkImportMemoryHostPointerInfoEXT = {\n";
9714	s << "\tsType = " << value.sType << '\n';
9715	s << "\tpNext = " << value.pNext << '\n';
9716	s << "\thandleType = " << value.handleType << '\n';
9717	s << "\tpHostPointer = " << value.pHostPointer << '\n';
9718	s << '}';
9719	return s;
9720}
9721
9722std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
9723{
9724	s << "VkMemoryHostPointerPropertiesEXT = {\n";
9725	s << "\tsType = " << value.sType << '\n';
9726	s << "\tpNext = " << value.pNext << '\n';
9727	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9728	s << '}';
9729	return s;
9730}
9731
9732std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
9733{
9734	s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
9735	s << "\tsType = " << value.sType << '\n';
9736	s << "\tpNext = " << value.pNext << '\n';
9737	s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
9738	s << '}';
9739	return s;
9740}
9741
9742std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
9743{
9744	s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
9745	s << "\tsType = " << value.sType << '\n';
9746	s << "\tpNext = " << value.pNext << '\n';
9747	s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
9748	s << '}';
9749	return s;
9750}
9751
9752std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
9753{
9754	s << "VkCalibratedTimestampInfoEXT = {\n";
9755	s << "\tsType = " << value.sType << '\n';
9756	s << "\tpNext = " << value.pNext << '\n';
9757	s << "\ttimeDomain = " << value.timeDomain << '\n';
9758	s << '}';
9759	return s;
9760}
9761
9762std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
9763{
9764	s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
9765	s << "\tsType = " << value.sType << '\n';
9766	s << "\tpNext = " << value.pNext << '\n';
9767	s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
9768	s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
9769	s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
9770	s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
9771	s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
9772	s << "\twavefrontSize = " << value.wavefrontSize << '\n';
9773	s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
9774	s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
9775	s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
9776	s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
9777	s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
9778	s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
9779	s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
9780	s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
9781	s << '}';
9782	return s;
9783}
9784
9785std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
9786{
9787	s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
9788	s << "\tsType = " << value.sType << '\n';
9789	s << "\tpNext = " << value.pNext << '\n';
9790	s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
9791	s << '}';
9792	return s;
9793}
9794
9795std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
9796{
9797	s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
9798	s << "\tsType = " << value.sType << '\n';
9799	s << "\tpNext = " << value.pNext << '\n';
9800	s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
9801	s << '}';
9802	return s;
9803}
9804
9805std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
9806{
9807	s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
9808	s << "\tbinding = " << value.binding << '\n';
9809	s << "\tdivisor = " << value.divisor << '\n';
9810	s << '}';
9811	return s;
9812}
9813
9814std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
9815{
9816	s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
9817	s << "\tsType = " << value.sType << '\n';
9818	s << "\tpNext = " << value.pNext << '\n';
9819	s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
9820	s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
9821	s << '}';
9822	return s;
9823}
9824
9825std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
9826{
9827	s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
9828	s << "\tsType = " << value.sType << '\n';
9829	s << "\tpNext = " << value.pNext << '\n';
9830	s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
9831	s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
9832	s << '}';
9833	return s;
9834}
9835
9836std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackEXT& value)
9837{
9838	s << "VkPipelineCreationFeedbackEXT = {\n";
9839	s << "\tflags = " << getPipelineCreationFeedbackFlagsEXTStr(value.flags) << '\n';
9840	s << "\tduration = " << value.duration << '\n';
9841	s << '}';
9842	return s;
9843}
9844
9845std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfoEXT& value)
9846{
9847	s << "VkPipelineCreationFeedbackCreateInfoEXT = {\n";
9848	s << "\tsType = " << value.sType << '\n';
9849	s << "\tpNext = " << value.pNext << '\n';
9850	s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
9851	s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
9852	s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
9853	s << '}';
9854	return s;
9855}
9856
9857std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
9858{
9859	s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
9860	s << "\tsType = " << value.sType << '\n';
9861	s << "\tpNext = " << value.pNext << '\n';
9862	s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
9863	s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
9864	s << '}';
9865	return s;
9866}
9867
9868std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
9869{
9870	s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
9871	s << "\tsType = " << value.sType << '\n';
9872	s << "\tpNext = " << value.pNext << '\n';
9873	s << "\ttaskShader = " << value.taskShader << '\n';
9874	s << "\tmeshShader = " << value.meshShader << '\n';
9875	s << '}';
9876	return s;
9877}
9878
9879std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
9880{
9881	s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
9882	s << "\tsType = " << value.sType << '\n';
9883	s << "\tpNext = " << value.pNext << '\n';
9884	s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
9885	s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
9886	s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
9887	s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
9888	s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
9889	s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
9890	s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
9891	s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
9892	s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
9893	s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
9894	s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
9895	s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
9896	s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
9897	s << '}';
9898	return s;
9899}
9900
9901std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
9902{
9903	s << "VkDrawMeshTasksIndirectCommandNV = {\n";
9904	s << "\ttaskCount = " << value.taskCount << '\n';
9905	s << "\tfirstTask = " << value.firstTask << '\n';
9906	s << '}';
9907	return s;
9908}
9909
9910std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& value)
9911{
9912	s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = {\n";
9913	s << "\tsType = " << value.sType << '\n';
9914	s << "\tpNext = " << value.pNext << '\n';
9915	s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
9916	s << '}';
9917	return s;
9918}
9919
9920std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
9921{
9922	s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
9923	s << "\tsType = " << value.sType << '\n';
9924	s << "\tpNext = " << value.pNext << '\n';
9925	s << "\timageFootprint = " << value.imageFootprint << '\n';
9926	s << '}';
9927	return s;
9928}
9929
9930std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
9931{
9932	s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
9933	s << "\tsType = " << value.sType << '\n';
9934	s << "\tpNext = " << value.pNext << '\n';
9935	s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
9936	s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
9937	s << '}';
9938	return s;
9939}
9940
9941std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
9942{
9943	s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
9944	s << "\tsType = " << value.sType << '\n';
9945	s << "\tpNext = " << value.pNext << '\n';
9946	s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
9947	s << '}';
9948	return s;
9949}
9950
9951std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
9952{
9953	s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
9954	s << "\tsType = " << value.sType << '\n';
9955	s << "\tpNext = " << value.pNext << '\n';
9956	s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
9957	s << '}';
9958	return s;
9959}
9960
9961std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
9962{
9963	s << "VkCheckpointDataNV = {\n";
9964	s << "\tsType = " << value.sType << '\n';
9965	s << "\tpNext = " << value.pNext << '\n';
9966	s << "\tstage = " << value.stage << '\n';
9967	s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
9968	s << '}';
9969	return s;
9970}
9971
9972std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
9973{
9974	s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
9975	s << "\tsType = " << value.sType << '\n';
9976	s << "\tpNext = " << value.pNext << '\n';
9977	s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
9978	s << '}';
9979	return s;
9980}
9981
9982std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
9983{
9984	s << "VkPerformanceValueDataINTEL = {\n";
9985	s << "\tvalue32 = " << value.value32 << '\n';
9986	s << "\tvalue64 = " << value.value64 << '\n';
9987	s << "\tvalueFloat = " << value.valueFloat << '\n';
9988	s << "\tvalueBool = " << value.valueBool << '\n';
9989	s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
9990	s << '}';
9991	return s;
9992}
9993
9994std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
9995{
9996	s << "VkPerformanceValueINTEL = {\n";
9997	s << "\ttype = " << value.type << '\n';
9998	s << "\tdata = " << value.data << '\n';
9999	s << '}';
10000	return s;
10001}
10002
10003std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
10004{
10005	s << "VkInitializePerformanceApiInfoINTEL = {\n";
10006	s << "\tsType = " << value.sType << '\n';
10007	s << "\tpNext = " << value.pNext << '\n';
10008	s << "\tpUserData = " << value.pUserData << '\n';
10009	s << '}';
10010	return s;
10011}
10012
10013std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
10014{
10015	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
10016	s << "\tsType = " << value.sType << '\n';
10017	s << "\tpNext = " << value.pNext << '\n';
10018	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
10019	s << '}';
10020	return s;
10021}
10022
10023std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
10024{
10025	s << "VkPerformanceMarkerInfoINTEL = {\n";
10026	s << "\tsType = " << value.sType << '\n';
10027	s << "\tpNext = " << value.pNext << '\n';
10028	s << "\tmarker = " << value.marker << '\n';
10029	s << '}';
10030	return s;
10031}
10032
10033std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
10034{
10035	s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
10036	s << "\tsType = " << value.sType << '\n';
10037	s << "\tpNext = " << value.pNext << '\n';
10038	s << "\tmarker = " << value.marker << '\n';
10039	s << '}';
10040	return s;
10041}
10042
10043std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
10044{
10045	s << "VkPerformanceOverrideInfoINTEL = {\n";
10046	s << "\tsType = " << value.sType << '\n';
10047	s << "\tpNext = " << value.pNext << '\n';
10048	s << "\ttype = " << value.type << '\n';
10049	s << "\tenable = " << value.enable << '\n';
10050	s << "\tparameter = " << value.parameter << '\n';
10051	s << '}';
10052	return s;
10053}
10054
10055std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
10056{
10057	s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
10058	s << "\tsType = " << value.sType << '\n';
10059	s << "\tpNext = " << value.pNext << '\n';
10060	s << "\ttype = " << value.type << '\n';
10061	s << '}';
10062	return s;
10063}
10064
10065std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
10066{
10067	s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
10068	s << "\tsType = " << value.sType << '\n';
10069	s << "\tpNext = " << value.pNext << '\n';
10070	s << "\tpciDomain = " << value.pciDomain << '\n';
10071	s << "\tpciBus = " << value.pciBus << '\n';
10072	s << "\tpciDevice = " << value.pciDevice << '\n';
10073	s << "\tpciFunction = " << value.pciFunction << '\n';
10074	s << '}';
10075	return s;
10076}
10077
10078std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
10079{
10080	s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
10081	s << "\tsType = " << value.sType << '\n';
10082	s << "\tpNext = " << value.pNext << '\n';
10083	s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
10084	s << '}';
10085	return s;
10086}
10087
10088std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
10089{
10090	s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
10091	s << "\tsType = " << value.sType << '\n';
10092	s << "\tpNext = " << value.pNext << '\n';
10093	s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
10094	s << '}';
10095	return s;
10096}
10097
10098std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
10099{
10100	s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
10101	s << "\tsType = " << value.sType << '\n';
10102	s << "\tpNext = " << value.pNext << '\n';
10103	s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
10104	s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
10105	s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
10106	s << '}';
10107	return s;
10108}
10109
10110std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
10111{
10112	s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
10113	s << "\tsType = " << value.sType << '\n';
10114	s << "\tpNext = " << value.pNext << '\n';
10115	s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
10116	s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
10117	s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
10118	s << '}';
10119	return s;
10120}
10121
10122std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
10123{
10124	s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
10125	s << "\tsType = " << value.sType << '\n';
10126	s << "\tpNext = " << value.pNext << '\n';
10127	s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
10128	s << '}';
10129	return s;
10130}
10131
10132std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& value)
10133{
10134	s << "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = {\n";
10135	s << "\tsType = " << value.sType << '\n';
10136	s << "\tpNext = " << value.pNext << '\n';
10137	s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
10138	s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
10139	s << '}';
10140	return s;
10141}
10142
10143std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& value)
10144{
10145	s << "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = {\n";
10146	s << "\tsType = " << value.sType << '\n';
10147	s << "\tpNext = " << value.pNext << '\n';
10148	s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
10149	s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
10150	s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
10151	s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
10152	s << '}';
10153	return s;
10154}
10155
10156std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& value)
10157{
10158	s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = {\n";
10159	s << "\tsType = " << value.sType << '\n';
10160	s << "\tpNext = " << value.pNext << '\n';
10161	s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
10162	s << '}';
10163	return s;
10164}
10165
10166std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
10167{
10168	s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
10169	s << "\tsType = " << value.sType << '\n';
10170	s << "\tpNext = " << value.pNext << '\n';
10171	s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
10172	s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
10173	s << '}';
10174	return s;
10175}
10176
10177std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
10178{
10179	s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
10180	s << "\tsType = " << value.sType << '\n';
10181	s << "\tpNext = " << value.pNext << '\n';
10182	s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
10183	s << '}';
10184	return s;
10185}
10186
10187std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
10188{
10189	s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
10190	s << "\tsType = " << value.sType << '\n';
10191	s << "\tpNext = " << value.pNext << '\n';
10192	s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
10193	s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
10194	s << '}';
10195	return s;
10196}
10197
10198std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
10199{
10200	s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
10201	s << "\tsType = " << value.sType << '\n';
10202	s << "\tpNext = " << value.pNext << '\n';
10203	s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
10204	s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
10205	s << '}';
10206	return s;
10207}
10208
10209std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
10210{
10211	s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
10212	s << "\tsType = " << value.sType << '\n';
10213	s << "\tpNext = " << value.pNext << '\n';
10214	s << "\tmemoryPriority = " << value.memoryPriority << '\n';
10215	s << '}';
10216	return s;
10217}
10218
10219std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
10220{
10221	s << "VkMemoryPriorityAllocateInfoEXT = {\n";
10222	s << "\tsType = " << value.sType << '\n';
10223	s << "\tpNext = " << value.pNext << '\n';
10224	s << "\tpriority = " << value.priority << '\n';
10225	s << '}';
10226	return s;
10227}
10228
10229std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
10230{
10231	s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
10232	s << "\tsType = " << value.sType << '\n';
10233	s << "\tpNext = " << value.pNext << '\n';
10234	s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
10235	s << '}';
10236	return s;
10237}
10238
10239std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
10240{
10241	s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
10242	s << "\tsType = " << value.sType << '\n';
10243	s << "\tpNext = " << value.pNext << '\n';
10244	s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10245	s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10246	s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10247	s << '}';
10248	return s;
10249}
10250
10251std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
10252{
10253	s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
10254	s << "\tsType = " << value.sType << '\n';
10255	s << "\tpNext = " << value.pNext << '\n';
10256	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10257	s << '}';
10258	return s;
10259}
10260
10261std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolPropertiesEXT& value)
10262{
10263	s << "VkPhysicalDeviceToolPropertiesEXT = {\n";
10264	s << "\tsType = " << value.sType << '\n';
10265	s << "\tpNext = " << value.pNext << '\n';
10266	s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
10267	s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
10268	s << "\tpurposes = " << getToolPurposeFlagsEXTStr(value.purposes) << '\n';
10269	s << "\tdescription = " << (const char*)value.description << '\n';
10270	s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
10271	s << '}';
10272	return s;
10273}
10274
10275std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
10276{
10277	s << "VkValidationFeaturesEXT = {\n";
10278	s << "\tsType = " << value.sType << '\n';
10279	s << "\tpNext = " << value.pNext << '\n';
10280	s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
10281	s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
10282	s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
10283	s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
10284	s << '}';
10285	return s;
10286}
10287
10288std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
10289{
10290	s << "VkCooperativeMatrixPropertiesNV = {\n";
10291	s << "\tsType = " << value.sType << '\n';
10292	s << "\tpNext = " << value.pNext << '\n';
10293	s << "\tMSize = " << value.MSize << '\n';
10294	s << "\tNSize = " << value.NSize << '\n';
10295	s << "\tKSize = " << value.KSize << '\n';
10296	s << "\tAType = " << value.AType << '\n';
10297	s << "\tBType = " << value.BType << '\n';
10298	s << "\tCType = " << value.CType << '\n';
10299	s << "\tDType = " << value.DType << '\n';
10300	s << "\tscope = " << value.scope << '\n';
10301	s << '}';
10302	return s;
10303}
10304
10305std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
10306{
10307	s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
10308	s << "\tsType = " << value.sType << '\n';
10309	s << "\tpNext = " << value.pNext << '\n';
10310	s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
10311	s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
10312	s << '}';
10313	return s;
10314}
10315
10316std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
10317{
10318	s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
10319	s << "\tsType = " << value.sType << '\n';
10320	s << "\tpNext = " << value.pNext << '\n';
10321	s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
10322	s << '}';
10323	return s;
10324}
10325
10326std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
10327{
10328	s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
10329	s << "\tsType = " << value.sType << '\n';
10330	s << "\tpNext = " << value.pNext << '\n';
10331	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10332	s << '}';
10333	return s;
10334}
10335
10336std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
10337{
10338	s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
10339	s << "\tsType = " << value.sType << '\n';
10340	s << "\tpNext = " << value.pNext << '\n';
10341	s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
10342	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10343	s << '}';
10344	return s;
10345}
10346
10347std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
10348{
10349	s << "VkFramebufferMixedSamplesCombinationNV = {\n";
10350	s << "\tsType = " << value.sType << '\n';
10351	s << "\tpNext = " << value.pNext << '\n';
10352	s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10353	s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
10354	s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
10355	s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
10356	s << '}';
10357	return s;
10358}
10359
10360std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
10361{
10362	s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
10363	s << "\tsType = " << value.sType << '\n';
10364	s << "\tpNext = " << value.pNext << '\n';
10365	s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
10366	s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
10367	s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
10368	s << '}';
10369	return s;
10370}
10371
10372std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
10373{
10374	s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
10375	s << "\tsType = " << value.sType << '\n';
10376	s << "\tpNext = " << value.pNext << '\n';
10377	s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
10378	s << '}';
10379	return s;
10380}
10381
10382std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
10383{
10384	s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
10385	s << "\tsType = " << value.sType << '\n';
10386	s << "\tpNext = " << value.pNext << '\n';
10387	s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
10388	s << '}';
10389	return s;
10390}
10391
10392std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
10393{
10394	s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
10395	s << "\tsType = " << value.sType << '\n';
10396	s << "\tpNext = " << value.pNext << '\n';
10397	s << "\trectangularLines = " << value.rectangularLines << '\n';
10398	s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
10399	s << "\tsmoothLines = " << value.smoothLines << '\n';
10400	s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
10401	s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
10402	s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
10403	s << '}';
10404	return s;
10405}
10406
10407std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
10408{
10409	s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
10410	s << "\tsType = " << value.sType << '\n';
10411	s << "\tpNext = " << value.pNext << '\n';
10412	s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
10413	s << '}';
10414	return s;
10415}
10416
10417std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
10418{
10419	s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
10420	s << "\tsType = " << value.sType << '\n';
10421	s << "\tpNext = " << value.pNext << '\n';
10422	s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
10423	s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
10424	s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
10425	s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
10426	s << '}';
10427	return s;
10428}
10429
10430std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
10431{
10432	s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
10433	s << "\tsType = " << value.sType << '\n';
10434	s << "\tpNext = " << value.pNext << '\n';
10435	s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
10436	s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
10437	s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
10438	s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
10439	s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
10440	s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
10441	s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
10442	s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
10443	s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
10444	s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
10445	s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
10446	s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
10447	s << '}';
10448	return s;
10449}
10450
10451std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
10452{
10453	s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
10454	s << "\tsType = " << value.sType << '\n';
10455	s << "\tpNext = " << value.pNext << '\n';
10456	s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
10457	s << '}';
10458	return s;
10459}
10460
10461std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
10462{
10463	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
10464	s << "\tsType = " << value.sType << '\n';
10465	s << "\tpNext = " << value.pNext << '\n';
10466	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
10467	s << '}';
10468	return s;
10469}
10470
10471std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& value)
10472{
10473	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = {\n";
10474	s << "\tsType = " << value.sType << '\n';
10475	s << "\tpNext = " << value.pNext << '\n';
10476	s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
10477	s << '}';
10478	return s;
10479}
10480
10481std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
10482{
10483	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
10484	s << "\tsType = " << value.sType << '\n';
10485	s << "\tpNext = " << value.pNext << '\n';
10486	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
10487	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
10488	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
10489	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
10490	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
10491	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
10492	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
10493	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
10494	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
10495	s << '}';
10496	return s;
10497}
10498
10499std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
10500{
10501	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
10502	s << "\tsType = " << value.sType << '\n';
10503	s << "\tpNext = " << value.pNext << '\n';
10504	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
10505	s << '}';
10506	return s;
10507}
10508
10509std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
10510{
10511	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
10512	s << "\tsType = " << value.sType << '\n';
10513	s << "\tpNext = " << value.pNext << '\n';
10514	s << "\tstageCount = " << value.stageCount << '\n';
10515	s << "\tpStages = " << value.pStages << '\n';
10516	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
10517	s << "\tpTessellationState = " << value.pTessellationState << '\n';
10518	s << '}';
10519	return s;
10520}
10521
10522std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
10523{
10524	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
10525	s << "\tsType = " << value.sType << '\n';
10526	s << "\tpNext = " << value.pNext << '\n';
10527	s << "\tgroupCount = " << value.groupCount << '\n';
10528	s << "\tpGroups = " << value.pGroups << '\n';
10529	s << "\tpipelineCount = " << value.pipelineCount << '\n';
10530	s << "\tpPipelines = " << value.pPipelines << '\n';
10531	s << '}';
10532	return s;
10533}
10534
10535std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
10536{
10537	s << "VkBindShaderGroupIndirectCommandNV = {\n";
10538	s << "\tgroupIndex = " << value.groupIndex << '\n';
10539	s << '}';
10540	return s;
10541}
10542
10543std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
10544{
10545	s << "VkBindIndexBufferIndirectCommandNV = {\n";
10546	s << "\tbufferAddress = " << value.bufferAddress << '\n';
10547	s << "\tsize = " << value.size << '\n';
10548	s << "\tindexType = " << value.indexType << '\n';
10549	s << '}';
10550	return s;
10551}
10552
10553std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
10554{
10555	s << "VkBindVertexBufferIndirectCommandNV = {\n";
10556	s << "\tbufferAddress = " << value.bufferAddress << '\n';
10557	s << "\tsize = " << value.size << '\n';
10558	s << "\tstride = " << value.stride << '\n';
10559	s << '}';
10560	return s;
10561}
10562
10563std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
10564{
10565	s << "VkSetStateFlagsIndirectCommandNV = {\n";
10566	s << "\tdata = " << value.data << '\n';
10567	s << '}';
10568	return s;
10569}
10570
10571std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
10572{
10573	s << "VkIndirectCommandsStreamNV = {\n";
10574	s << "\tbuffer = " << value.buffer << '\n';
10575	s << "\toffset = " << value.offset << '\n';
10576	s << '}';
10577	return s;
10578}
10579
10580std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
10581{
10582	s << "VkIndirectCommandsLayoutTokenNV = {\n";
10583	s << "\tsType = " << value.sType << '\n';
10584	s << "\tpNext = " << value.pNext << '\n';
10585	s << "\ttokenType = " << value.tokenType << '\n';
10586	s << "\tstream = " << value.stream << '\n';
10587	s << "\toffset = " << value.offset << '\n';
10588	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
10589	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
10590	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
10591	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
10592	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
10593	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
10594	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
10595	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
10596	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
10597	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
10598	s << '}';
10599	return s;
10600}
10601
10602std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
10603{
10604	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
10605	s << "\tsType = " << value.sType << '\n';
10606	s << "\tpNext = " << value.pNext << '\n';
10607	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
10608	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10609	s << "\ttokenCount = " << value.tokenCount << '\n';
10610	s << "\tpTokens = " << value.pTokens << '\n';
10611	s << "\tstreamCount = " << value.streamCount << '\n';
10612	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
10613	s << '}';
10614	return s;
10615}
10616
10617std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
10618{
10619	s << "VkGeneratedCommandsInfoNV = {\n";
10620	s << "\tsType = " << value.sType << '\n';
10621	s << "\tpNext = " << value.pNext << '\n';
10622	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10623	s << "\tpipeline = " << value.pipeline << '\n';
10624	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
10625	s << "\tstreamCount = " << value.streamCount << '\n';
10626	s << "\tpStreams = " << value.pStreams << '\n';
10627	s << "\tsequencesCount = " << value.sequencesCount << '\n';
10628	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
10629	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
10630	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
10631	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
10632	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
10633	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
10634	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
10635	s << '}';
10636	return s;
10637}
10638
10639std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
10640{
10641	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
10642	s << "\tsType = " << value.sType << '\n';
10643	s << "\tpNext = " << value.pNext << '\n';
10644	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10645	s << "\tpipeline = " << value.pipeline << '\n';
10646	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
10647	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
10648	s << '}';
10649	return s;
10650}
10651
10652std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
10653{
10654	s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
10655	s << "\tsType = " << value.sType << '\n';
10656	s << "\tpNext = " << value.pNext << '\n';
10657	s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
10658	s << '}';
10659	return s;
10660}
10661
10662std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
10663{
10664	s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
10665	s << "\tsType = " << value.sType << '\n';
10666	s << "\tpNext = " << value.pNext << '\n';
10667	s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
10668	s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
10669	s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
10670	s << '}';
10671	return s;
10672}
10673
10674std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
10675{
10676	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
10677	s << "\tsType = " << value.sType << '\n';
10678	s << "\tpNext = " << value.pNext << '\n';
10679	s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
10680	s << '}';
10681	return s;
10682}
10683
10684std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT& value)
10685{
10686	s << "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = {\n";
10687	s << "\tsType = " << value.sType << '\n';
10688	s << "\tpNext = " << value.pNext << '\n';
10689	s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
10690	s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
10691	s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
10692	s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
10693	s << '}';
10694	return s;
10695}
10696
10697std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
10698{
10699	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
10700	s << "\tsType = " << value.sType << '\n';
10701	s << "\tpNext = " << value.pNext << '\n';
10702	s << "\ttransform = " << value.transform << '\n';
10703	s << '}';
10704	return s;
10705}
10706
10707std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
10708{
10709	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
10710	s << "\tsType = " << value.sType << '\n';
10711	s << "\tpNext = " << value.pNext << '\n';
10712	s << "\ttransform = " << value.transform << '\n';
10713	s << "\trenderArea = " << value.renderArea << '\n';
10714	s << '}';
10715	return s;
10716}
10717
10718std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
10719{
10720	s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
10721	s << "\tsType = " << value.sType << '\n';
10722	s << "\tpNext = " << value.pNext << '\n';
10723	s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
10724	s << '}';
10725	return s;
10726}
10727
10728std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
10729{
10730	s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
10731	s << "\tsType = " << value.sType << '\n';
10732	s << "\tpNext = " << value.pNext << '\n';
10733	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10734	s << "\ttype = " << value.type << '\n';
10735	s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
10736	s << "\tsize = " << value.size << '\n';
10737	s << "\tobjectType = " << value.objectType << '\n';
10738	s << "\tobjectHandle = " << value.objectHandle << '\n';
10739	s << "\theapIndex = " << value.heapIndex << '\n';
10740	s << '}';
10741	return s;
10742}
10743
10744std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
10745{
10746	s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
10747	s << "\tsType = " << value.sType << '\n';
10748	s << "\tpNext = " << value.pNext << '\n';
10749	s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10750	s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10751	s << "\tpUserData = " << value.pUserData << '\n';
10752	s << '}';
10753	return s;
10754}
10755
10756std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
10757{
10758	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
10759	s << "\tsType = " << value.sType << '\n';
10760	s << "\tpNext = " << value.pNext << '\n';
10761	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
10762	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
10763	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
10764	s << '}';
10765	return s;
10766}
10767
10768std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
10769{
10770	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
10771	s << "\tsType = " << value.sType << '\n';
10772	s << "\tpNext = " << value.pNext << '\n';
10773	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
10774	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
10775	s << '}';
10776	return s;
10777}
10778
10779std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
10780{
10781	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
10782	s << "\tsType = " << value.sType << '\n';
10783	s << "\tpNext = " << value.pNext << '\n';
10784	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
10785	s << "\tformat = " << value.format << '\n';
10786	s << '}';
10787	return s;
10788}
10789
10790std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
10791{
10792	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
10793	s << "\tsType = " << value.sType << '\n';
10794	s << "\tpNext = " << value.pNext << '\n';
10795	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
10796	s << '}';
10797	return s;
10798}
10799
10800std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
10801{
10802	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
10803	s << "\tsType = " << value.sType << '\n';
10804	s << "\tpNext = " << value.pNext << '\n';
10805	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
10806	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
10807	s << '}';
10808	return s;
10809}
10810
10811std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeaturesEXT& value)
10812{
10813	s << "VkPhysicalDevicePrivateDataFeaturesEXT = {\n";
10814	s << "\tsType = " << value.sType << '\n';
10815	s << "\tpNext = " << value.pNext << '\n';
10816	s << "\tprivateData = " << value.privateData << '\n';
10817	s << '}';
10818	return s;
10819}
10820
10821std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfoEXT& value)
10822{
10823	s << "VkDevicePrivateDataCreateInfoEXT = {\n";
10824	s << "\tsType = " << value.sType << '\n';
10825	s << "\tpNext = " << value.pNext << '\n';
10826	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
10827	s << '}';
10828	return s;
10829}
10830
10831std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfoEXT& value)
10832{
10833	s << "VkPrivateDataSlotCreateInfoEXT = {\n";
10834	s << "\tsType = " << value.sType << '\n';
10835	s << "\tpNext = " << value.pNext << '\n';
10836	s << "\tflags = " << getPrivateDataSlotCreateFlagsEXTStr(value.flags) << '\n';
10837	s << '}';
10838	return s;
10839}
10840
10841std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT& value)
10842{
10843	s << "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = {\n";
10844	s << "\tsType = " << value.sType << '\n';
10845	s << "\tpNext = " << value.pNext << '\n';
10846	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
10847	s << '}';
10848	return s;
10849}
10850
10851std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
10852{
10853	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
10854	s << "\tsType = " << value.sType << '\n';
10855	s << "\tpNext = " << value.pNext << '\n';
10856	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
10857	s << '}';
10858	return s;
10859}
10860
10861std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
10862{
10863	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
10864	s << "\tsType = " << value.sType << '\n';
10865	s << "\tpNext = " << value.pNext << '\n';
10866	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
10867	s << '}';
10868	return s;
10869}
10870
10871std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
10872{
10873	s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
10874	s << "\tsType = " << value.sType << '\n';
10875	s << "\tpNext = " << value.pNext << '\n';
10876	s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
10877	s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
10878	s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
10879	s << '}';
10880	return s;
10881}
10882
10883std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
10884{
10885	s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
10886	s << "\tsType = " << value.sType << '\n';
10887	s << "\tpNext = " << value.pNext << '\n';
10888	s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
10889	s << '}';
10890	return s;
10891}
10892
10893std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
10894{
10895	s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
10896	s << "\tsType = " << value.sType << '\n';
10897	s << "\tpNext = " << value.pNext << '\n';
10898	s << "\tshadingRateType = " << value.shadingRateType << '\n';
10899	s << "\tshadingRate = " << value.shadingRate << '\n';
10900	s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
10901	s << '}';
10902	return s;
10903}
10904
10905std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
10906{
10907	s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
10908	s << "\tsType = " << value.sType << '\n';
10909	s << "\tpNext = " << value.pNext << '\n';
10910	s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
10911	s << '}';
10912	return s;
10913}
10914
10915std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
10916{
10917	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
10918	s << "\tsType = " << value.sType << '\n';
10919	s << "\tpNext = " << value.pNext << '\n';
10920	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
10921	s << '}';
10922	return s;
10923}
10924
10925std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
10926{
10927	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
10928	s << "\tsType = " << value.sType << '\n';
10929	s << "\tpNext = " << value.pNext << '\n';
10930	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
10931	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
10932	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
10933	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
10934	s << '}';
10935	return s;
10936}
10937
10938std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
10939{
10940	s << "VkCopyCommandTransformInfoQCOM = {\n";
10941	s << "\tsType = " << value.sType << '\n';
10942	s << "\tpNext = " << value.pNext << '\n';
10943	s << "\ttransform = " << value.transform << '\n';
10944	s << '}';
10945	return s;
10946}
10947
10948std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeaturesEXT& value)
10949{
10950	s << "VkPhysicalDeviceImageRobustnessFeaturesEXT = {\n";
10951	s << "\tsType = " << value.sType << '\n';
10952	s << "\tpNext = " << value.pNext << '\n';
10953	s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
10954	s << '}';
10955	return s;
10956}
10957
10958std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
10959{
10960	s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
10961	s << "\tsType = " << value.sType << '\n';
10962	s << "\tpNext = " << value.pNext << '\n';
10963	s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
10964	s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
10965	s << '}';
10966	return s;
10967}
10968
10969std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
10970{
10971	s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
10972	s << "\tsType = " << value.sType << '\n';
10973	s << "\tpNext = " << value.pNext << '\n';
10974	s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
10975	s << '}';
10976	return s;
10977}
10978
10979std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
10980{
10981	s << "VkMutableDescriptorTypeListVALVE = {\n";
10982	s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
10983	s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
10984	s << '}';
10985	return s;
10986}
10987
10988std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
10989{
10990	s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
10991	s << "\tsType = " << value.sType << '\n';
10992	s << "\tpNext = " << value.pNext << '\n';
10993	s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
10994	s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
10995	s << '}';
10996	return s;
10997}
10998
10999std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
11000{
11001	s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
11002	s << "\tsType = " << value.sType << '\n';
11003	s << "\tpNext = " << value.pNext << '\n';
11004	s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
11005	s << '}';
11006	return s;
11007}
11008
11009std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
11010{
11011	s << "VkVertexInputBindingDescription2EXT = {\n";
11012	s << "\tsType = " << value.sType << '\n';
11013	s << "\tpNext = " << value.pNext << '\n';
11014	s << "\tbinding = " << value.binding << '\n';
11015	s << "\tstride = " << value.stride << '\n';
11016	s << "\tinputRate = " << value.inputRate << '\n';
11017	s << "\tdivisor = " << value.divisor << '\n';
11018	s << '}';
11019	return s;
11020}
11021
11022std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
11023{
11024	s << "VkVertexInputAttributeDescription2EXT = {\n";
11025	s << "\tsType = " << value.sType << '\n';
11026	s << "\tpNext = " << value.pNext << '\n';
11027	s << "\tlocation = " << value.location << '\n';
11028	s << "\tbinding = " << value.binding << '\n';
11029	s << "\tformat = " << value.format << '\n';
11030	s << "\toffset = " << value.offset << '\n';
11031	s << '}';
11032	return s;
11033}
11034
11035std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
11036{
11037	s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
11038	s << "\tsType = " << value.sType << '\n';
11039	s << "\tpNext = " << value.pNext << '\n';
11040	s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
11041	s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
11042	s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
11043	s << '}';
11044	return s;
11045}
11046
11047std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
11048{
11049	s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
11050	s << "\tsType = " << value.sType << '\n';
11051	s << "\tpNext = " << value.pNext << '\n';
11052	s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
11053	s << '}';
11054	return s;
11055}
11056
11057std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
11058{
11059	s << "VkPipelineColorWriteCreateInfoEXT = {\n";
11060	s << "\tsType = " << value.sType << '\n';
11061	s << "\tpNext = " << value.pNext << '\n';
11062	s << "\tattachmentCount = " << value.attachmentCount << '\n';
11063	s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
11064	s << '}';
11065	return s;
11066}
11067
11068std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
11069{
11070	s << "VkDeviceOrHostAddressKHR = {\n";
11071	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11072	s << "\thostAddress = " << value.hostAddress << '\n';
11073	s << '}';
11074	return s;
11075}
11076
11077std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
11078{
11079	s << "VkDeviceOrHostAddressConstKHR = {\n";
11080	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11081	s << "\thostAddress = " << value.hostAddress << '\n';
11082	s << '}';
11083	return s;
11084}
11085
11086std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
11087{
11088	s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
11089	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
11090	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
11091	s << "\tfirstVertex = " << value.firstVertex << '\n';
11092	s << "\ttransformOffset = " << value.transformOffset << '\n';
11093	s << '}';
11094	return s;
11095}
11096
11097std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
11098{
11099	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
11100	s << "\tsType = " << value.sType << '\n';
11101	s << "\tpNext = " << value.pNext << '\n';
11102	s << "\tvertexFormat = " << value.vertexFormat << '\n';
11103	s << "\tvertexData = " << value.vertexData << '\n';
11104	s << "\tvertexStride = " << value.vertexStride << '\n';
11105	s << "\tmaxVertex = " << value.maxVertex << '\n';
11106	s << "\tindexType = " << value.indexType << '\n';
11107	s << "\tindexData = " << value.indexData << '\n';
11108	s << "\ttransformData = " << value.transformData << '\n';
11109	s << '}';
11110	return s;
11111}
11112
11113std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
11114{
11115	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
11116	s << "\tsType = " << value.sType << '\n';
11117	s << "\tpNext = " << value.pNext << '\n';
11118	s << "\tdata = " << value.data << '\n';
11119	s << "\tstride = " << value.stride << '\n';
11120	s << '}';
11121	return s;
11122}
11123
11124std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
11125{
11126	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
11127	s << "\tsType = " << value.sType << '\n';
11128	s << "\tpNext = " << value.pNext << '\n';
11129	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
11130	s << "\tdata = " << value.data << '\n';
11131	s << '}';
11132	return s;
11133}
11134
11135std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
11136{
11137	s << "VkAccelerationStructureGeometryDataKHR = {\n";
11138	s << "\ttriangles = " << value.triangles << '\n';
11139	s << "\taabbs = " << value.aabbs << '\n';
11140	s << "\tinstances = " << value.instances << '\n';
11141	s << '}';
11142	return s;
11143}
11144
11145std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
11146{
11147	s << "VkAccelerationStructureGeometryKHR = {\n";
11148	s << "\tsType = " << value.sType << '\n';
11149	s << "\tpNext = " << value.pNext << '\n';
11150	s << "\tgeometryType = " << value.geometryType << '\n';
11151	s << "\tgeometry = " << value.geometry << '\n';
11152	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
11153	s << '}';
11154	return s;
11155}
11156
11157std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
11158{
11159	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
11160	s << "\tsType = " << value.sType << '\n';
11161	s << "\tpNext = " << value.pNext << '\n';
11162	s << "\ttype = " << value.type << '\n';
11163	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
11164	s << "\tmode = " << value.mode << '\n';
11165	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
11166	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
11167	s << "\tgeometryCount = " << value.geometryCount << '\n';
11168	s << "\tpGeometries = " << value.pGeometries << '\n';
11169	s << "\tppGeometries = " << value.ppGeometries << '\n';
11170	s << "\tscratchData = " << value.scratchData << '\n';
11171	s << '}';
11172	return s;
11173}
11174
11175std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
11176{
11177	s << "VkAccelerationStructureCreateInfoKHR = {\n";
11178	s << "\tsType = " << value.sType << '\n';
11179	s << "\tpNext = " << value.pNext << '\n';
11180	s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
11181	s << "\tbuffer = " << value.buffer << '\n';
11182	s << "\toffset = " << value.offset << '\n';
11183	s << "\tsize = " << value.size << '\n';
11184	s << "\ttype = " << value.type << '\n';
11185	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11186	s << '}';
11187	return s;
11188}
11189
11190std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
11191{
11192	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
11193	s << "\tsType = " << value.sType << '\n';
11194	s << "\tpNext = " << value.pNext << '\n';
11195	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
11196	s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
11197	s << '}';
11198	return s;
11199}
11200
11201std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
11202{
11203	s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
11204	s << "\tsType = " << value.sType << '\n';
11205	s << "\tpNext = " << value.pNext << '\n';
11206	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11207	s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
11208	s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
11209	s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
11210	s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
11211	s << '}';
11212	return s;
11213}
11214
11215std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
11216{
11217	s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
11218	s << "\tsType = " << value.sType << '\n';
11219	s << "\tpNext = " << value.pNext << '\n';
11220	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
11221	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
11222	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
11223	s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
11224	s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
11225	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
11226	s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
11227	s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
11228	s << '}';
11229	return s;
11230}
11231
11232std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
11233{
11234	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
11235	s << "\tsType = " << value.sType << '\n';
11236	s << "\tpNext = " << value.pNext << '\n';
11237	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11238	s << '}';
11239	return s;
11240}
11241
11242std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
11243{
11244	s << "VkAccelerationStructureVersionInfoKHR = {\n";
11245	s << "\tsType = " << value.sType << '\n';
11246	s << "\tpNext = " << value.pNext << '\n';
11247	s << "\tpVersionData = " << value.pVersionData << '\n';
11248	s << '}';
11249	return s;
11250}
11251
11252std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
11253{
11254	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
11255	s << "\tsType = " << value.sType << '\n';
11256	s << "\tpNext = " << value.pNext << '\n';
11257	s << "\tsrc = " << value.src << '\n';
11258	s << "\tdst = " << value.dst << '\n';
11259	s << "\tmode = " << value.mode << '\n';
11260	s << '}';
11261	return s;
11262}
11263
11264std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
11265{
11266	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
11267	s << "\tsType = " << value.sType << '\n';
11268	s << "\tpNext = " << value.pNext << '\n';
11269	s << "\tsrc = " << value.src << '\n';
11270	s << "\tdst = " << value.dst << '\n';
11271	s << "\tmode = " << value.mode << '\n';
11272	s << '}';
11273	return s;
11274}
11275
11276std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
11277{
11278	s << "VkCopyAccelerationStructureInfoKHR = {\n";
11279	s << "\tsType = " << value.sType << '\n';
11280	s << "\tpNext = " << value.pNext << '\n';
11281	s << "\tsrc = " << value.src << '\n';
11282	s << "\tdst = " << value.dst << '\n';
11283	s << "\tmode = " << value.mode << '\n';
11284	s << '}';
11285	return s;
11286}
11287
11288std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
11289{
11290	s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
11291	s << "\tsType = " << value.sType << '\n';
11292	s << "\tpNext = " << value.pNext << '\n';
11293	s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
11294	s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
11295	s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
11296	s << '}';
11297	return s;
11298}
11299
11300std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
11301{
11302	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
11303	s << "\tsType = " << value.sType << '\n';
11304	s << "\tpNext = " << value.pNext << '\n';
11305	s << "\ttype = " << value.type << '\n';
11306	s << "\tgeneralShader = " << value.generalShader << '\n';
11307	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11308	s << "\tanyHitShader = " << value.anyHitShader << '\n';
11309	s << "\tintersectionShader = " << value.intersectionShader << '\n';
11310	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
11311	s << '}';
11312	return s;
11313}
11314
11315std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
11316{
11317	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
11318	s << "\tsType = " << value.sType << '\n';
11319	s << "\tpNext = " << value.pNext << '\n';
11320	s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
11321	s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
11322	s << '}';
11323	return s;
11324}
11325
11326std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
11327{
11328	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
11329	s << "\tsType = " << value.sType << '\n';
11330	s << "\tpNext = " << value.pNext << '\n';
11331	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11332	s << "\tstageCount = " << value.stageCount << '\n';
11333	s << "\tpStages = " << value.pStages << '\n';
11334	s << "\tgroupCount = " << value.groupCount << '\n';
11335	s << "\tpGroups = " << value.pGroups << '\n';
11336	s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
11337	s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
11338	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
11339	s << "\tpDynamicState = " << value.pDynamicState << '\n';
11340	s << "\tlayout = " << value.layout << '\n';
11341	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11342	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11343	s << '}';
11344	return s;
11345}
11346
11347std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
11348{
11349	s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
11350	s << "\tsType = " << value.sType << '\n';
11351	s << "\tpNext = " << value.pNext << '\n';
11352	s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
11353	s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
11354	s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
11355	s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
11356	s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
11357	s << '}';
11358	return s;
11359}
11360
11361std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
11362{
11363	s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
11364	s << "\tsType = " << value.sType << '\n';
11365	s << "\tpNext = " << value.pNext << '\n';
11366	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
11367	s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
11368	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
11369	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
11370	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
11371	s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
11372	s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
11373	s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
11374	s << '}';
11375	return s;
11376}
11377
11378std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
11379{
11380	s << "VkStridedDeviceAddressRegionKHR = {\n";
11381	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11382	s << "\tstride = " << value.stride << '\n';
11383	s << "\tsize = " << value.size << '\n';
11384	s << '}';
11385	return s;
11386}
11387
11388std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
11389{
11390	s << "VkTraceRaysIndirectCommandKHR = {\n";
11391	s << "\twidth = " << value.width << '\n';
11392	s << "\theight = " << value.height << '\n';
11393	s << "\tdepth = " << value.depth << '\n';
11394	s << '}';
11395	return s;
11396}
11397
11398std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
11399{
11400	s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
11401	s << "\tsType = " << value.sType << '\n';
11402	s << "\tpNext = " << value.pNext << '\n';
11403	s << "\trayQuery = " << value.rayQuery << '\n';
11404	s << '}';
11405	return s;
11406}
11407
11408std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
11409{
11410	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
11411	s << "\tsType = " << value.sType << '\n';
11412	s << "\tpNext = " << value.pNext << '\n';
11413	s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
11414	s << "\twindow = " << value.window << '\n';
11415	s << '}';
11416	return s;
11417}
11418
11419std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
11420{
11421	s << "VkAndroidHardwareBufferUsageANDROID = {\n";
11422	s << "\tsType = " << value.sType << '\n';
11423	s << "\tpNext = " << value.pNext << '\n';
11424	s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
11425	s << '}';
11426	return s;
11427}
11428
11429std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
11430{
11431	s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
11432	s << "\tsType = " << value.sType << '\n';
11433	s << "\tpNext = " << value.pNext << '\n';
11434	s << "\tallocationSize = " << value.allocationSize << '\n';
11435	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
11436	s << '}';
11437	return s;
11438}
11439
11440std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
11441{
11442	s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
11443	s << "\tsType = " << value.sType << '\n';
11444	s << "\tpNext = " << value.pNext << '\n';
11445	s << "\tformat = " << value.format << '\n';
11446	s << "\texternalFormat = " << value.externalFormat << '\n';
11447	s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
11448	s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
11449	s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
11450	s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
11451	s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
11452	s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
11453	s << '}';
11454	return s;
11455}
11456
11457std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
11458{
11459	s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
11460	s << "\tsType = " << value.sType << '\n';
11461	s << "\tpNext = " << value.pNext << '\n';
11462	s << "\tbuffer = " << value.buffer << '\n';
11463	s << '}';
11464	return s;
11465}
11466
11467std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
11468{
11469	s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
11470	s << "\tsType = " << value.sType << '\n';
11471	s << "\tpNext = " << value.pNext << '\n';
11472	s << "\tmemory = " << value.memory << '\n';
11473	s << '}';
11474	return s;
11475}
11476
11477std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
11478{
11479	s << "VkExternalFormatANDROID = {\n";
11480	s << "\tsType = " << value.sType << '\n';
11481	s << "\tpNext = " << value.pNext << '\n';
11482	s << "\texternalFormat = " << value.externalFormat << '\n';
11483	s << '}';
11484	return s;
11485}
11486
11487std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
11488{
11489	s << "VkVideoQueueFamilyProperties2KHR = {\n";
11490	s << "\tsType = " << value.sType << '\n';
11491	s << "\tpNext = " << value.pNext << '\n';
11492	s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
11493	s << '}';
11494	return s;
11495}
11496
11497std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
11498{
11499	s << "VkVideoProfileKHR = {\n";
11500	s << "\tsType = " << value.sType << '\n';
11501	s << "\tpNext = " << value.pNext << '\n';
11502	s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
11503	s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
11504	s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
11505	s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
11506	s << '}';
11507	return s;
11508}
11509
11510std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
11511{
11512	s << "VkVideoProfilesKHR = {\n";
11513	s << "\tsType = " << value.sType << '\n';
11514	s << "\tpNext = " << value.pNext << '\n';
11515	s << "\tprofileCount = " << value.profileCount << '\n';
11516	s << "\tpProfiles = " << value.pProfiles << '\n';
11517	s << '}';
11518	return s;
11519}
11520
11521std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
11522{
11523	s << "VkVideoCapabilitiesKHR = {\n";
11524	s << "\tsType = " << value.sType << '\n';
11525	s << "\tpNext = " << value.pNext << '\n';
11526	s << "\tcapabilityFlags = " << getVideoCapabilitiesFlagsKHRStr(value.capabilityFlags) << '\n';
11527	s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
11528	s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
11529	s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
11530	s << "\tminExtent = " << value.minExtent << '\n';
11531	s << "\tmaxExtent = " << value.maxExtent << '\n';
11532	s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
11533	s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
11534	s << '}';
11535	return s;
11536}
11537
11538std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
11539{
11540	s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
11541	s << "\tsType = " << value.sType << '\n';
11542	s << "\tpNext = " << value.pNext << '\n';
11543	s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
11544	s << "\tpVideoProfiles = " << value.pVideoProfiles << '\n';
11545	s << '}';
11546	return s;
11547}
11548
11549std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
11550{
11551	s << "VkVideoFormatPropertiesKHR = {\n";
11552	s << "\tsType = " << value.sType << '\n';
11553	s << "\tpNext = " << value.pNext << '\n';
11554	s << "\tformat = " << value.format << '\n';
11555	s << '}';
11556	return s;
11557}
11558
11559std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
11560{
11561	s << "VkVideoPictureResourceKHR = {\n";
11562	s << "\tsType = " << value.sType << '\n';
11563	s << "\tpNext = " << value.pNext << '\n';
11564	s << "\tcodedOffset = " << value.codedOffset << '\n';
11565	s << "\tcodedExtent = " << value.codedExtent << '\n';
11566	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
11567	s << "\timageViewBinding = " << value.imageViewBinding << '\n';
11568	s << '}';
11569	return s;
11570}
11571
11572std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
11573{
11574	s << "VkVideoReferenceSlotKHR = {\n";
11575	s << "\tsType = " << value.sType << '\n';
11576	s << "\tpNext = " << value.pNext << '\n';
11577	s << "\tslotIndex = " << value.slotIndex << '\n';
11578	s << "\tpPictureResource = " << value.pPictureResource << '\n';
11579	s << '}';
11580	return s;
11581}
11582
11583std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
11584{
11585	s << "VkVideoGetMemoryPropertiesKHR = {\n";
11586	s << "\tsType = " << value.sType << '\n';
11587	s << "\tpNext = " << value.pNext << '\n';
11588	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
11589	s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
11590	s << '}';
11591	return s;
11592}
11593
11594std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
11595{
11596	s << "VkVideoBindMemoryKHR = {\n";
11597	s << "\tsType = " << value.sType << '\n';
11598	s << "\tpNext = " << value.pNext << '\n';
11599	s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
11600	s << "\tmemory = " << value.memory << '\n';
11601	s << "\tmemoryOffset = " << value.memoryOffset << '\n';
11602	s << "\tmemorySize = " << value.memorySize << '\n';
11603	s << '}';
11604	return s;
11605}
11606
11607std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
11608{
11609	s << "VkVideoSessionCreateInfoKHR = {\n";
11610	s << "\tsType = " << value.sType << '\n';
11611	s << "\tpNext = " << value.pNext << '\n';
11612	s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
11613	s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
11614	s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
11615	s << "\tpictureFormat = " << value.pictureFormat << '\n';
11616	s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
11617	s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
11618	s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
11619	s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
11620	s << '}';
11621	return s;
11622}
11623
11624std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
11625{
11626	s << "VkVideoSessionParametersCreateInfoKHR = {\n";
11627	s << "\tsType = " << value.sType << '\n';
11628	s << "\tpNext = " << value.pNext << '\n';
11629	s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
11630	s << "\tvideoSession = " << value.videoSession << '\n';
11631	s << '}';
11632	return s;
11633}
11634
11635std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
11636{
11637	s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
11638	s << "\tsType = " << value.sType << '\n';
11639	s << "\tpNext = " << value.pNext << '\n';
11640	s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
11641	s << '}';
11642	return s;
11643}
11644
11645std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
11646{
11647	s << "VkVideoBeginCodingInfoKHR = {\n";
11648	s << "\tsType = " << value.sType << '\n';
11649	s << "\tpNext = " << value.pNext << '\n';
11650	s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
11651	s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
11652	s << "\tvideoSession = " << value.videoSession << '\n';
11653	s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
11654	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
11655	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
11656	s << '}';
11657	return s;
11658}
11659
11660std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
11661{
11662	s << "VkVideoEndCodingInfoKHR = {\n";
11663	s << "\tsType = " << value.sType << '\n';
11664	s << "\tpNext = " << value.pNext << '\n';
11665	s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
11666	s << '}';
11667	return s;
11668}
11669
11670std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
11671{
11672	s << "VkVideoCodingControlInfoKHR = {\n";
11673	s << "\tsType = " << value.sType << '\n';
11674	s << "\tpNext = " << value.pNext << '\n';
11675	s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
11676	s << '}';
11677	return s;
11678}
11679
11680std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
11681{
11682	s << "VkVideoDecodeInfoKHR = {\n";
11683	s << "\tsType = " << value.sType << '\n';
11684	s << "\tpNext = " << value.pNext << '\n';
11685	s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
11686	s << "\tcodedOffset = " << value.codedOffset << '\n';
11687	s << "\tcodedExtent = " << value.codedExtent << '\n';
11688	s << "\tsrcBuffer = " << value.srcBuffer << '\n';
11689	s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
11690	s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
11691	s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
11692	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
11693	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
11694	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
11695	s << '}';
11696	return s;
11697}
11698
11699std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
11700{
11701	s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
11702	s << "\tsType = " << value.sType << '\n';
11703	s << "\tpNext = " << value.pNext << '\n';
11704	s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
11705	s << "\tevents = " << value.events << '\n';
11706	s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
11707	s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
11708	s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
11709	s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
11710	s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
11711	s << "\tpointPolygons = " << value.pointPolygons << '\n';
11712	s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
11713	s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
11714	s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
11715	s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
11716	s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
11717	s << "\ttriangleFans = " << value.triangleFans << '\n';
11718	s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
11719	s << '}';
11720	return s;
11721}
11722
11723std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
11724{
11725	s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
11726	s << "\tsType = " << value.sType << '\n';
11727	s << "\tpNext = " << value.pNext << '\n';
11728	s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
11729	s << '}';
11730	return s;
11731}
11732
11733std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
11734{
11735	s << "VkVideoEncodeInfoKHR = {\n";
11736	s << "\tsType = " << value.sType << '\n';
11737	s << "\tpNext = " << value.pNext << '\n';
11738	s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
11739	s << "\tqualityLevel = " << value.qualityLevel << '\n';
11740	s << "\tcodedExtent = " << value.codedExtent << '\n';
11741	s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
11742	s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
11743	s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
11744	s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
11745	s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
11746	s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
11747	s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
11748	s << '}';
11749	return s;
11750}
11751
11752std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
11753{
11754	s << "VkVideoEncodeRateControlInfoKHR = {\n";
11755	s << "\tsType = " << value.sType << '\n';
11756	s << "\tpNext = " << value.pNext << '\n';
11757	s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
11758	s << "\trateControlMode = " << value.rateControlMode << '\n';
11759	s << "\taverageBitrate = " << value.averageBitrate << '\n';
11760	s << "\tpeakToAverageBitrateRatio = " << value.peakToAverageBitrateRatio << '\n';
11761	s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
11762	s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
11763	s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
11764	s << '}';
11765	return s;
11766}
11767
11768std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
11769{
11770	s << "StdVideoH264SpsVuiFlags = {\n";
11771	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
11772	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
11773	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
11774	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
11775	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
11776	s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
11777	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
11778	s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
11779	s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
11780	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
11781	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
11782	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
11783	s << '}';
11784	return s;
11785}
11786
11787std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
11788{
11789	s << "StdVideoH264HrdParameters = {\n";
11790	s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
11791	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
11792	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
11793	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';
11794	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';
11795	s << "\tcbr_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.cbr_flag)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.cbr_flag))) << '\n';
11796	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
11797	s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
11798	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
11799	s << "\ttime_offset_length = " << value.time_offset_length << '\n';
11800	s << '}';
11801	return s;
11802}
11803
11804std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
11805{
11806	s << "StdVideoH264SequenceParameterSetVui = {\n";
11807	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
11808	s << "\tsar_width = " << value.sar_width << '\n';
11809	s << "\tsar_height = " << value.sar_height << '\n';
11810	s << "\tvideo_format = " << value.video_format << '\n';
11811	s << "\tcolor_primaries = " << value.color_primaries << '\n';
11812	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
11813	s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
11814	s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
11815	s << "\ttime_scale = " << value.time_scale << '\n';
11816	s << "\thrd_parameters = " << value.hrd_parameters << '\n';
11817	s << "\tnum_reorder_frames = " << value.num_reorder_frames << '\n';
11818	s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
11819	s << "\tflags = " << value.flags << '\n';
11820	s << '}';
11821	return s;
11822}
11823
11824std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
11825{
11826	s << "StdVideoH264SpsFlags = {\n";
11827	s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
11828	s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
11829	s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
11830	s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
11831	s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
11832	s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
11833	s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
11834	s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
11835	s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
11836	s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
11837	s << "\tresidual_colour_transform_flag = " << value.residual_colour_transform_flag << '\n';
11838	s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
11839	s << "\tfirst_picture_after_seek_flag = " << value.first_picture_after_seek_flag << '\n';
11840	s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
11841	s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
11842	s << "\tscaling_matrix_present_flag = " << value.scaling_matrix_present_flag << '\n';
11843	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
11844	s << '}';
11845	return s;
11846}
11847
11848std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
11849{
11850	s << "StdVideoH264ScalingLists = {\n";
11851	s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
11852	s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
11853	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
11854	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
11855	s << '}';
11856	return s;
11857}
11858
11859std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
11860{
11861	s << "StdVideoH264SequenceParameterSet = {\n";
11862	s << "\tprofile_idc = " << value.profile_idc << '\n';
11863	s << "\tlevel_idc = " << value.level_idc << '\n';
11864	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
11865	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
11866	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
11867	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
11868	s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
11869	s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
11870	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
11871	s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
11872	s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
11873	s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
11874	s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
11875	s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
11876	s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
11877	s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
11878	s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
11879	s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
11880	s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
11881	s << "\tflags = " << value.flags << '\n';
11882	s << "\toffset_for_ref_frame = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.offset_for_ref_frame), DE_ARRAY_END(value.offset_for_ref_frame)) << '\n';
11883	s << "\tpScalingLists = " << value.pScalingLists << '\n';
11884	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
11885	s << '}';
11886	return s;
11887}
11888
11889std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
11890{
11891	s << "StdVideoH264PpsFlags = {\n";
11892	s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
11893	s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
11894	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
11895	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
11896	s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
11897	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
11898	s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
11899	s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
11900	s << "\tscaling_matrix_present_flag = " << value.scaling_matrix_present_flag << '\n';
11901	s << '}';
11902	return s;
11903}
11904
11905std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
11906{
11907	s << "StdVideoH264PictureParameterSet = {\n";
11908	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
11909	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
11910	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
11911	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
11912	s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
11913	s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
11914	s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
11915	s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
11916	s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
11917	s << "\tflags = " << value.flags << '\n';
11918	s << "\tpScalingLists = " << value.pScalingLists << '\n';
11919	s << '}';
11920	return s;
11921}
11922
11923std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
11924{
11925	s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
11926	s << "\tidr_flag = " << value.idr_flag << '\n';
11927	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
11928	s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
11929	s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
11930	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
11931	s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
11932	s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
11933	s << '}';
11934	return s;
11935}
11936
11937std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
11938{
11939	s << "StdVideoEncodeH264PictureInfoFlags = {\n";
11940	s << "\tidr_flag = " << value.idr_flag << '\n';
11941	s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
11942	s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
11943	s << '}';
11944	return s;
11945}
11946
11947std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
11948{
11949	s << "StdVideoEncodeH264RefMgmtFlags = {\n";
11950	s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
11951	s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
11952	s << '}';
11953	return s;
11954}
11955
11956std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
11957{
11958	s << "StdVideoEncodeH264RefListModEntry = {\n";
11959	s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
11960	s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
11961	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
11962	s << '}';
11963	return s;
11964}
11965
11966std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
11967{
11968	s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
11969	s << "\toperation = " << value.operation << '\n';
11970	s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
11971	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
11972	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
11973	s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
11974	s << '}';
11975	return s;
11976}
11977
11978std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
11979{
11980	s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
11981	s << "\tflags = " << value.flags << '\n';
11982	s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
11983	s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
11984	s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
11985	s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
11986	s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
11987	s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
11988	s << '}';
11989	return s;
11990}
11991
11992std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
11993{
11994	s << "StdVideoEncodeH264PictureInfo = {\n";
11995	s << "\tflags = " << value.flags << '\n';
11996	s << "\tpictureType = " << value.pictureType << '\n';
11997	s << "\tframeNum = " << value.frameNum << '\n';
11998	s << "\tpictureOrderCount = " << value.pictureOrderCount << '\n';
11999	s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
12000	s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
12001	s << '}';
12002	return s;
12003}
12004
12005std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
12006{
12007	s << "StdVideoEncodeH264SliceHeader = {\n";
12008	s << "\tflags = " << value.flags << '\n';
12009	s << "\tslice_type = " << value.slice_type << '\n';
12010	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12011	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
12012	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
12013	s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
12014	s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
12015	s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
12016	s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
12017	s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
12018	s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
12019	s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
12020	s << '}';
12021	return s;
12022}
12023
12024std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
12025{
12026	s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
12027	s << "\tsType = " << value.sType << '\n';
12028	s << "\tpNext = " << value.pNext << '\n';
12029	s << "\tflags = " << getVideoEncodeH264CapabilitiesFlagsEXTStr(value.flags) << '\n';
12030	s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
12031	s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
12032	s << "\tminPictureSizeInMbs = " << value.minPictureSizeInMbs << '\n';
12033	s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
12034	s << "\tinputImageDataAlignment = " << value.inputImageDataAlignment << '\n';
12035	s << "\tmaxNumL0ReferenceForP = " << value.maxNumL0ReferenceForP << '\n';
12036	s << "\tmaxNumL0ReferenceForB = " << value.maxNumL0ReferenceForB << '\n';
12037	s << "\tmaxNumL1Reference = " << value.maxNumL1Reference << '\n';
12038	s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
12039	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
12040	s << '}';
12041	return s;
12042}
12043
12044std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionCreateInfoEXT& value)
12045{
12046	s << "VkVideoEncodeH264SessionCreateInfoEXT = {\n";
12047	s << "\tsType = " << value.sType << '\n';
12048	s << "\tpNext = " << value.pNext << '\n';
12049	s << "\tflags = " << getVideoEncodeH264CreateFlagsEXTStr(value.flags) << '\n';
12050	s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
12051	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
12052	s << '}';
12053	return s;
12054}
12055
12056std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
12057{
12058	s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
12059	s << "\tsType = " << value.sType << '\n';
12060	s << "\tpNext = " << value.pNext << '\n';
12061	s << "\tspsStdCount = " << value.spsStdCount << '\n';
12062	s << "\tpSpsStd = " << value.pSpsStd << '\n';
12063	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
12064	s << "\tpPpsStd = " << value.pPpsStd << '\n';
12065	s << '}';
12066	return s;
12067}
12068
12069std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
12070{
12071	s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
12072	s << "\tsType = " << value.sType << '\n';
12073	s << "\tpNext = " << value.pNext << '\n';
12074	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
12075	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
12076	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
12077	s << '}';
12078	return s;
12079}
12080
12081std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
12082{
12083	s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
12084	s << "\tsType = " << value.sType << '\n';
12085	s << "\tpNext = " << value.pNext << '\n';
12086	s << "\tslotIndex = " << value.slotIndex << '\n';
12087	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
12088	s << '}';
12089	return s;
12090}
12091
12092std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
12093{
12094	s << "VkVideoEncodeH264NaluSliceEXT = {\n";
12095	s << "\tsType = " << value.sType << '\n';
12096	s << "\tpNext = " << value.pNext << '\n';
12097	s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
12098	s << "\tmbCount = " << value.mbCount << '\n';
12099	s << "\trefFinalList0EntryCount = " << value.refFinalList0EntryCount << '\n';
12100	s << "\tpRefFinalList0Entries = " << value.pRefFinalList0Entries << '\n';
12101	s << "\trefFinalList1EntryCount = " << value.refFinalList1EntryCount << '\n';
12102	s << "\tpRefFinalList1Entries = " << value.pRefFinalList1Entries << '\n';
12103	s << "\tprecedingNaluBytes = " << value.precedingNaluBytes << '\n';
12104	s << "\tminQp = " << value.minQp << '\n';
12105	s << "\tmaxQp = " << value.maxQp << '\n';
12106	s << '}';
12107	return s;
12108}
12109
12110std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
12111{
12112	s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
12113	s << "\tsType = " << value.sType << '\n';
12114	s << "\tpNext = " << value.pNext << '\n';
12115	s << "\trefDefaultFinalList0EntryCount = " << value.refDefaultFinalList0EntryCount << '\n';
12116	s << "\tpRefDefaultFinalList0Entries = " << value.pRefDefaultFinalList0Entries << '\n';
12117	s << "\trefDefaultFinalList1EntryCount = " << value.refDefaultFinalList1EntryCount << '\n';
12118	s << "\tpRefDefaultFinalList1Entries = " << value.pRefDefaultFinalList1Entries << '\n';
12119	s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
12120	s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
12121	s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
12122	s << '}';
12123	return s;
12124}
12125
12126std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
12127{
12128	s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
12129	s << "\tsType = " << value.sType << '\n';
12130	s << "\tpNext = " << value.pNext << '\n';
12131	s << "\tspsId = " << value.spsId << '\n';
12132	s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
12133	s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
12134	s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
12135	s << '}';
12136	return s;
12137}
12138
12139std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
12140{
12141	s << "VkVideoEncodeH264ProfileEXT = {\n";
12142	s << "\tsType = " << value.sType << '\n';
12143	s << "\tpNext = " << value.pNext << '\n';
12144	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
12145	s << '}';
12146	return s;
12147}
12148
12149std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
12150{
12151	s << "StdVideoDecodeH264PictureInfoFlags = {\n";
12152	s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
12153	s << "\tis_intra = " << value.is_intra << '\n';
12154	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
12155	s << "\tis_reference = " << value.is_reference << '\n';
12156	s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
12157	s << '}';
12158	return s;
12159}
12160
12161std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
12162{
12163	s << "StdVideoDecodeH264PictureInfo = {\n";
12164	s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12165	s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
12166	s << "\treserved = " << value.reserved << '\n';
12167	s << "\tframe_num = " << value.frame_num << '\n';
12168	s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
12169	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
12170	s << "\tflags = " << value.flags << '\n';
12171	s << '}';
12172	return s;
12173}
12174
12175std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
12176{
12177	s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
12178	s << "\ttop_field_flag = " << value.top_field_flag << '\n';
12179	s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
12180	s << "\tis_long_term = " << value.is_long_term << '\n';
12181	s << "\tis_non_existing = " << value.is_non_existing << '\n';
12182	s << '}';
12183	return s;
12184}
12185
12186std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
12187{
12188	s << "StdVideoDecodeH264ReferenceInfo = {\n";
12189	s << "\tFrameNum = " << value.FrameNum << '\n';
12190	s << "\treserved = " << value.reserved << '\n';
12191	s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
12192	s << "\tflags = " << value.flags << '\n';
12193	s << '}';
12194	return s;
12195}
12196
12197std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
12198{
12199	s << "StdVideoDecodeH264MvcElementFlags = {\n";
12200	s << "\tnon_idr = " << value.non_idr << '\n';
12201	s << "\tanchor_pic = " << value.anchor_pic << '\n';
12202	s << "\tinter_view = " << value.inter_view << '\n';
12203	s << '}';
12204	return s;
12205}
12206
12207std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
12208{
12209	s << "StdVideoDecodeH264MvcElement = {\n";
12210	s << "\tflags = " << value.flags << '\n';
12211	s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
12212	s << "\tviewId = " << value.viewId << '\n';
12213	s << "\ttemporalId = " << value.temporalId << '\n';
12214	s << "\tpriorityId = " << value.priorityId << '\n';
12215	s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
12216	s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
12217	s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
12218	s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
12219	s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
12220	s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
12221	s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
12222	s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
12223	s << '}';
12224	return s;
12225}
12226
12227std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
12228{
12229	s << "StdVideoDecodeH264Mvc = {\n";
12230	s << "\tviewId0 = " << value.viewId0 << '\n';
12231	s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
12232	s << "\tpMvcElements = " << value.pMvcElements << '\n';
12233	s << '}';
12234	return s;
12235}
12236
12237std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
12238{
12239	s << "VkVideoDecodeH264ProfileEXT = {\n";
12240	s << "\tsType = " << value.sType << '\n';
12241	s << "\tpNext = " << value.pNext << '\n';
12242	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
12243	s << "\tfieldLayout = " << getVideoDecodeH264FieldLayoutFlagsEXTStr(value.fieldLayout) << '\n';
12244	s << '}';
12245	return s;
12246}
12247
12248std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
12249{
12250	s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
12251	s << "\tsType = " << value.sType << '\n';
12252	s << "\tpNext = " << value.pNext << '\n';
12253	s << "\tmaxLevel = " << value.maxLevel << '\n';
12254	s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
12255	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
12256	s << '}';
12257	return s;
12258}
12259
12260std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionCreateInfoEXT& value)
12261{
12262	s << "VkVideoDecodeH264SessionCreateInfoEXT = {\n";
12263	s << "\tsType = " << value.sType << '\n';
12264	s << "\tpNext = " << value.pNext << '\n';
12265	s << "\tflags = " << getVideoDecodeH264CreateFlagsEXTStr(value.flags) << '\n';
12266	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
12267	s << '}';
12268	return s;
12269}
12270
12271std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
12272{
12273	s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
12274	s << "\tsType = " << value.sType << '\n';
12275	s << "\tpNext = " << value.pNext << '\n';
12276	s << "\tspsStdCount = " << value.spsStdCount << '\n';
12277	s << "\tpSpsStd = " << value.pSpsStd << '\n';
12278	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
12279	s << "\tpPpsStd = " << value.pPpsStd << '\n';
12280	s << '}';
12281	return s;
12282}
12283
12284std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
12285{
12286	s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
12287	s << "\tsType = " << value.sType << '\n';
12288	s << "\tpNext = " << value.pNext << '\n';
12289	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
12290	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
12291	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
12292	s << '}';
12293	return s;
12294}
12295
12296std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
12297{
12298	s << "VkVideoDecodeH264PictureInfoEXT = {\n";
12299	s << "\tsType = " << value.sType << '\n';
12300	s << "\tpNext = " << value.pNext << '\n';
12301	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
12302	s << "\tslicesCount = " << value.slicesCount << '\n';
12303	s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
12304	s << '}';
12305	return s;
12306}
12307
12308std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
12309{
12310	s << "VkVideoDecodeH264MvcEXT = {\n";
12311	s << "\tsType = " << value.sType << '\n';
12312	s << "\tpNext = " << value.pNext << '\n';
12313	s << "\tpStdMvc = " << value.pStdMvc << '\n';
12314	s << '}';
12315	return s;
12316}
12317
12318std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
12319{
12320	s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
12321	s << "\tsType = " << value.sType << '\n';
12322	s << "\tpNext = " << value.pNext << '\n';
12323	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
12324	s << '}';
12325	return s;
12326}
12327
12328std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
12329{
12330	s << "StdVideoH265DecPicBufMgr = {\n";
12331	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';
12332	s << "\tmax_dec_pic_buffering_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.max_dec_pic_buffering_minus1)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.max_dec_pic_buffering_minus1))) << '\n';
12333	s << "\tmax_num_reorder_pics = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.max_num_reorder_pics)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.max_num_reorder_pics))) << '\n';
12334	s << '}';
12335	return s;
12336}
12337
12338std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
12339{
12340	s << "StdVideoH265SubLayerHrdParameters = {\n";
12341	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';
12342	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';
12343	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';
12344	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';
12345	s << "\tcbr_flag = " << value.cbr_flag << '\n';
12346	s << '}';
12347	return s;
12348}
12349
12350std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
12351{
12352	s << "StdVideoH265HrdFlags = {\n";
12353	s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
12354	s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
12355	s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
12356	s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
12357	s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
12358	s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
12359	s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
12360	s << '}';
12361	return s;
12362}
12363
12364std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
12365{
12366	s << "StdVideoH265HrdParameters = {\n";
12367	s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
12368	s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
12369	s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
12370	s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
12371	s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
12372	s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
12373	s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
12374	s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
12375	s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
12376	s << "\tcpb_cnt_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.cpb_cnt_minus1)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.cpb_cnt_minus1))) << '\n';
12377	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';
12378	s << "\tSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.SubLayerHrdParametersNal), DE_ARRAY_END(value.SubLayerHrdParametersNal)) << '\n';
12379	s << "\tSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.SubLayerHrdParametersVcl), DE_ARRAY_END(value.SubLayerHrdParametersVcl)) << '\n';
12380	s << "\tflags = " << value.flags << '\n';
12381	s << '}';
12382	return s;
12383}
12384
12385std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
12386{
12387	s << "StdVideoH265VpsFlags = {\n";
12388	s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
12389	s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
12390	s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
12391	s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
12392	s << '}';
12393	return s;
12394}
12395
12396std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
12397{
12398	s << "StdVideoH265VideoParameterSet = {\n";
12399	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
12400	s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
12401	s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
12402	s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
12403	s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
12404	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
12405	s << "\thrd_parameters = " << value.hrd_parameters << '\n';
12406	s << "\tflags = " << value.flags << '\n';
12407	s << '}';
12408	return s;
12409}
12410
12411std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
12412{
12413	s << "StdVideoH265ScalingLists = {\n";
12414	s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
12415	s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
12416	s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
12417	s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
12418	s << "\tScalingListDCCoef16x16 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.ScalingListDCCoef16x16)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.ScalingListDCCoef16x16))) << '\n';
12419	s << "\tScalingListDCCoef32x32 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.ScalingListDCCoef32x32)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.ScalingListDCCoef32x32))) << '\n';
12420	s << '}';
12421	return s;
12422}
12423
12424std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
12425{
12426	s << "StdVideoH265SpsVuiFlags = {\n";
12427	s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
12428	s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
12429	s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
12430	s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
12431	s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
12432	s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
12433	s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
12434	s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
12435	s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
12436	s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
12437	s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
12438	s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
12439	s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
12440	s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
12441	s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
12442	s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
12443	s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
12444	s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
12445	s << '}';
12446	return s;
12447}
12448
12449std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
12450{
12451	s << "StdVideoH265SequenceParameterSetVui = {\n";
12452	s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
12453	s << "\tsar_width = " << value.sar_width << '\n';
12454	s << "\tsar_height = " << value.sar_height << '\n';
12455	s << "\tvideo_format = " << value.video_format << '\n';
12456	s << "\tcolour_primaries = " << value.colour_primaries << '\n';
12457	s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
12458	s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
12459	s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
12460	s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
12461	s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
12462	s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
12463	s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
12464	s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
12465	s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
12466	s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
12467	s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
12468	s << "\thrd_parameters = " << value.hrd_parameters << '\n';
12469	s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
12470	s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
12471	s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
12472	s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
12473	s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
12474	s << "\tflags = " << value.flags << '\n';
12475	s << '}';
12476	return s;
12477}
12478
12479std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
12480{
12481	s << "StdVideoH265PredictorPaletteEntries = {\n";
12482	s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
12483	s << '}';
12484	return s;
12485}
12486
12487std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
12488{
12489	s << "StdVideoH265SpsFlags = {\n";
12490	s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
12491	s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
12492	s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
12493	s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
12494	s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
12495	s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
12496	s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
12497	s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
12498	s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
12499	s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
12500	s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
12501	s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
12502	s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
12503	s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
12504	s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
12505	s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
12506	s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
12507	s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
12508	s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
12509	s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
12510	s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
12511	s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
12512	s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
12513	s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
12514	s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
12515	s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
12516	s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
12517	s << '}';
12518	return s;
12519}
12520
12521std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
12522{
12523	s << "StdVideoH265SequenceParameterSet = {\n";
12524	s << "\tprofile_idc = " << value.profile_idc << '\n';
12525	s << "\tlevel_idc = " << value.level_idc << '\n';
12526	s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
12527	s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
12528	s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
12529	s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
12530	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
12531	s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
12532	s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
12533	s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
12534	s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
12535	s << "\tsps_max_dec_pic_buffering_minus1 = " << value.sps_max_dec_pic_buffering_minus1 << '\n';
12536	s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
12537	s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
12538	s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
12539	s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
12540	s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
12541	s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
12542	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
12543	s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
12544	s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
12545	s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
12546	s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
12547	s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
12548	s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
12549	s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
12550	s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
12551	s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
12552	s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
12553	s << "\tflags = " << value.flags << '\n';
12554	s << "\tpScalingLists = " << value.pScalingLists << '\n';
12555	s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
12556	s << "\tpalette_max_size = " << value.palette_max_size << '\n';
12557	s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
12558	s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
12559	s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
12560	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
12561	s << '}';
12562	return s;
12563}
12564
12565std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
12566{
12567	s << "StdVideoH265PpsFlags = {\n";
12568	s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
12569	s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
12570	s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
12571	s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
12572	s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
12573	s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
12574	s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
12575	s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
12576	s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
12577	s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
12578	s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
12579	s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
12580	s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
12581	s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
12582	s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
12583	s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
12584	s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
12585	s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
12586	s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
12587	s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
12588	s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
12589	s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
12590	s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
12591	s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
12592	s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
12593	s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
12594	s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
12595	s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
12596	s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
12597	s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
12598	s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
12599	s << '}';
12600	return s;
12601}
12602
12603std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
12604{
12605	s << "StdVideoH265PictureParameterSet = {\n";
12606	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
12607	s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
12608	s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
12609	s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
12610	s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
12611	s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
12612	s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
12613	s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
12614	s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
12615	s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
12616	s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
12617	s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
12618	s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
12619	s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
12620	s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
12621	s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
12622	s << "\tflags = " << value.flags << '\n';
12623	s << "\tpScalingLists = " << value.pScalingLists << '\n';
12624	s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
12625	s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
12626	s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
12627	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';
12628	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';
12629	s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
12630	s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
12631	s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
12632	s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
12633	s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
12634	s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
12635	s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
12636	s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
12637	s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
12638	s << '}';
12639	return s;
12640}
12641
12642std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
12643{
12644	s << "StdVideoDecodeH265PictureInfoFlags = {\n";
12645	s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
12646	s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
12647	s << "\tIsReference = " << value.IsReference << '\n';
12648	s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
12649	s << '}';
12650	return s;
12651}
12652
12653std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
12654{
12655	s << "StdVideoDecodeH265PictureInfo = {\n";
12656	s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
12657	s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
12658	s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
12659	s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
12660	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
12661	s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
12662	s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
12663	s << "\tRefPicSetStCurrBefore = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.RefPicSetStCurrBefore)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.RefPicSetStCurrBefore))) << '\n';
12664	s << "\tRefPicSetStCurrAfter = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.RefPicSetStCurrAfter)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.RefPicSetStCurrAfter))) << '\n';
12665	s << "\tRefPicSetLtCurr = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<deUint8>(DE_ARRAY_BEGIN(value.RefPicSetLtCurr)), tcu::Format::HexIterator<deUint8>(DE_ARRAY_END(value.RefPicSetLtCurr))) << '\n';
12666	s << "\tflags = " << value.flags << '\n';
12667	s << '}';
12668	return s;
12669}
12670
12671std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
12672{
12673	s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
12674	s << "\tis_long_term = " << value.is_long_term << '\n';
12675	s << "\tis_non_existing = " << value.is_non_existing << '\n';
12676	s << '}';
12677	return s;
12678}
12679
12680std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
12681{
12682	s << "StdVideoDecodeH265ReferenceInfo = {\n";
12683	s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
12684	s << "\tflags = " << value.flags << '\n';
12685	s << '}';
12686	return s;
12687}
12688
12689std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
12690{
12691	s << "VkVideoDecodeH265ProfileEXT = {\n";
12692	s << "\tsType = " << value.sType << '\n';
12693	s << "\tpNext = " << value.pNext << '\n';
12694	s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
12695	s << '}';
12696	return s;
12697}
12698
12699std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
12700{
12701	s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
12702	s << "\tsType = " << value.sType << '\n';
12703	s << "\tpNext = " << value.pNext << '\n';
12704	s << "\tmaxLevel = " << value.maxLevel << '\n';
12705	s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
12706	s << '}';
12707	return s;
12708}
12709
12710std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionCreateInfoEXT& value)
12711{
12712	s << "VkVideoDecodeH265SessionCreateInfoEXT = {\n";
12713	s << "\tsType = " << value.sType << '\n';
12714	s << "\tpNext = " << value.pNext << '\n';
12715	s << "\tflags = " << getVideoDecodeH265CreateFlagsEXTStr(value.flags) << '\n';
12716	s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
12717	s << '}';
12718	return s;
12719}
12720
12721std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
12722{
12723	s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
12724	s << "\tsType = " << value.sType << '\n';
12725	s << "\tpNext = " << value.pNext << '\n';
12726	s << "\tspsStdCount = " << value.spsStdCount << '\n';
12727	s << "\tpSpsStd = " << value.pSpsStd << '\n';
12728	s << "\tppsStdCount = " << value.ppsStdCount << '\n';
12729	s << "\tpPpsStd = " << value.pPpsStd << '\n';
12730	s << '}';
12731	return s;
12732}
12733
12734std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
12735{
12736	s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
12737	s << "\tsType = " << value.sType << '\n';
12738	s << "\tpNext = " << value.pNext << '\n';
12739	s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
12740	s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
12741	s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
12742	s << '}';
12743	return s;
12744}
12745
12746std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
12747{
12748	s << "VkVideoDecodeH265PictureInfoEXT = {\n";
12749	s << "\tsType = " << value.sType << '\n';
12750	s << "\tpNext = " << value.pNext << '\n';
12751	s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
12752	s << "\tslicesCount = " << value.slicesCount << '\n';
12753	s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
12754	s << '}';
12755	return s;
12756}
12757
12758std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
12759{
12760	s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
12761	s << "\tsType = " << value.sType << '\n';
12762	s << "\tpNext = " << value.pNext << '\n';
12763	s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
12764	s << '}';
12765	return s;
12766}
12767
12768std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
12769{
12770	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
12771	s << "\tsType = " << value.sType << '\n';
12772	s << "\tpNext = " << value.pNext << '\n';
12773	s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
12774	s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
12775	s << '}';
12776	return s;
12777}
12778
12779std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
12780{
12781	s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
12782	s << "\tsType = " << value.sType << '\n';
12783	s << "\tpNext = " << value.pNext << '\n';
12784	s << "\thandleType = " << value.handleType << '\n';
12785	s << "\thandle = " << value.handle << '\n';
12786	s << '}';
12787	return s;
12788}
12789
12790std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
12791{
12792	s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
12793	s << "\tsType = " << value.sType << '\n';
12794	s << "\tpNext = " << value.pNext << '\n';
12795	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
12796	s << '}';
12797	return s;
12798}
12799
12800std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
12801{
12802	s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
12803	s << "\tsType = " << value.sType << '\n';
12804	s << "\tpNext = " << value.pNext << '\n';
12805	s << "\tmemory = " << value.memory << '\n';
12806	s << "\thandleType = " << value.handleType << '\n';
12807	s << '}';
12808	return s;
12809}
12810
12811std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
12812{
12813	s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
12814	s << "\tsType = " << value.sType << '\n';
12815	s << "\tpNext = " << value.pNext << '\n';
12816	s << "\tsemaphore = " << value.semaphore << '\n';
12817	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
12818	s << "\thandleType = " << value.handleType << '\n';
12819	s << "\tzirconHandle = " << value.zirconHandle << '\n';
12820	s << '}';
12821	return s;
12822}
12823
12824std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
12825{
12826	s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
12827	s << "\tsType = " << value.sType << '\n';
12828	s << "\tpNext = " << value.pNext << '\n';
12829	s << "\tsemaphore = " << value.semaphore << '\n';
12830	s << "\thandleType = " << value.handleType << '\n';
12831	s << '}';
12832	return s;
12833}
12834
12835std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
12836{
12837	s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
12838	s << "\tsType = " << value.sType << '\n';
12839	s << "\tpNext = " << value.pNext << '\n';
12840	s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
12841	s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
12842	s << '}';
12843	return s;
12844}
12845
12846std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
12847{
12848	s << "VkPresentFrameTokenGGP = {\n";
12849	s << "\tsType = " << value.sType << '\n';
12850	s << "\tpNext = " << value.pNext << '\n';
12851	s << "\tframeToken = " << value.frameToken << '\n';
12852	s << '}';
12853	return s;
12854}
12855
12856std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
12857{
12858	s << "VkIOSSurfaceCreateInfoMVK = {\n";
12859	s << "\tsType = " << value.sType << '\n';
12860	s << "\tpNext = " << value.pNext << '\n';
12861	s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
12862	s << "\tpView = " << value.pView << '\n';
12863	s << '}';
12864	return s;
12865}
12866
12867std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
12868{
12869	s << "VkMacOSSurfaceCreateInfoMVK = {\n";
12870	s << "\tsType = " << value.sType << '\n';
12871	s << "\tpNext = " << value.pNext << '\n';
12872	s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
12873	s << "\tpView = " << value.pView << '\n';
12874	s << '}';
12875	return s;
12876}
12877
12878std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
12879{
12880	s << "VkMetalSurfaceCreateInfoEXT = {\n";
12881	s << "\tsType = " << value.sType << '\n';
12882	s << "\tpNext = " << value.pNext << '\n';
12883	s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
12884	s << "\tpLayer = " << value.pLayer << '\n';
12885	s << '}';
12886	return s;
12887}
12888
12889std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
12890{
12891	s << "VkViSurfaceCreateInfoNN = {\n";
12892	s << "\tsType = " << value.sType << '\n';
12893	s << "\tpNext = " << value.pNext << '\n';
12894	s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
12895	s << "\twindow = " << value.window << '\n';
12896	s << '}';
12897	return s;
12898}
12899
12900std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
12901{
12902	s << "VkWaylandSurfaceCreateInfoKHR = {\n";
12903	s << "\tsType = " << value.sType << '\n';
12904	s << "\tpNext = " << value.pNext << '\n';
12905	s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
12906	s << "\tdisplay = " << value.display << '\n';
12907	s << "\tsurface = " << value.surface << '\n';
12908	s << '}';
12909	return s;
12910}
12911
12912std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
12913{
12914	s << "VkWin32SurfaceCreateInfoKHR = {\n";
12915	s << "\tsType = " << value.sType << '\n';
12916	s << "\tpNext = " << value.pNext << '\n';
12917	s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
12918	s << "\thinstance = " << value.hinstance << '\n';
12919	s << "\thwnd = " << value.hwnd << '\n';
12920	s << '}';
12921	return s;
12922}
12923
12924std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
12925{
12926	s << "VkImportMemoryWin32HandleInfoKHR = {\n";
12927	s << "\tsType = " << value.sType << '\n';
12928	s << "\tpNext = " << value.pNext << '\n';
12929	s << "\thandleType = " << value.handleType << '\n';
12930	s << "\thandle = " << value.handle << '\n';
12931	s << "\tname = " << getWStr(value.name) << '\n';
12932	s << '}';
12933	return s;
12934}
12935
12936std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
12937{
12938	s << "VkExportMemoryWin32HandleInfoKHR = {\n";
12939	s << "\tsType = " << value.sType << '\n';
12940	s << "\tpNext = " << value.pNext << '\n';
12941	s << "\tpAttributes = " << value.pAttributes << '\n';
12942	s << "\tdwAccess = " << value.dwAccess << '\n';
12943	s << "\tname = " << getWStr(value.name) << '\n';
12944	s << '}';
12945	return s;
12946}
12947
12948std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
12949{
12950	s << "VkMemoryWin32HandlePropertiesKHR = {\n";
12951	s << "\tsType = " << value.sType << '\n';
12952	s << "\tpNext = " << value.pNext << '\n';
12953	s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
12954	s << '}';
12955	return s;
12956}
12957
12958std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
12959{
12960	s << "VkMemoryGetWin32HandleInfoKHR = {\n";
12961	s << "\tsType = " << value.sType << '\n';
12962	s << "\tpNext = " << value.pNext << '\n';
12963	s << "\tmemory = " << value.memory << '\n';
12964	s << "\thandleType = " << value.handleType << '\n';
12965	s << '}';
12966	return s;
12967}
12968
12969std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
12970{
12971	s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
12972	s << "\tsType = " << value.sType << '\n';
12973	s << "\tpNext = " << value.pNext << '\n';
12974	s << "\tacquireCount = " << value.acquireCount << '\n';
12975	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
12976	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
12977	s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
12978	s << "\treleaseCount = " << value.releaseCount << '\n';
12979	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
12980	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
12981	s << '}';
12982	return s;
12983}
12984
12985std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
12986{
12987	s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
12988	s << "\tsType = " << value.sType << '\n';
12989	s << "\tpNext = " << value.pNext << '\n';
12990	s << "\tsemaphore = " << value.semaphore << '\n';
12991	s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
12992	s << "\thandleType = " << value.handleType << '\n';
12993	s << "\thandle = " << value.handle << '\n';
12994	s << "\tname = " << getWStr(value.name) << '\n';
12995	s << '}';
12996	return s;
12997}
12998
12999std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
13000{
13001	s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
13002	s << "\tsType = " << value.sType << '\n';
13003	s << "\tpNext = " << value.pNext << '\n';
13004	s << "\tpAttributes = " << value.pAttributes << '\n';
13005	s << "\tdwAccess = " << value.dwAccess << '\n';
13006	s << "\tname = " << getWStr(value.name) << '\n';
13007	s << '}';
13008	return s;
13009}
13010
13011std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
13012{
13013	s << "VkD3D12FenceSubmitInfoKHR = {\n";
13014	s << "\tsType = " << value.sType << '\n';
13015	s << "\tpNext = " << value.pNext << '\n';
13016	s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
13017	s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
13018	s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
13019	s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
13020	s << '}';
13021	return s;
13022}
13023
13024std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
13025{
13026	s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
13027	s << "\tsType = " << value.sType << '\n';
13028	s << "\tpNext = " << value.pNext << '\n';
13029	s << "\tsemaphore = " << value.semaphore << '\n';
13030	s << "\thandleType = " << value.handleType << '\n';
13031	s << '}';
13032	return s;
13033}
13034
13035std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
13036{
13037	s << "VkImportFenceWin32HandleInfoKHR = {\n";
13038	s << "\tsType = " << value.sType << '\n';
13039	s << "\tpNext = " << value.pNext << '\n';
13040	s << "\tfence = " << value.fence << '\n';
13041	s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
13042	s << "\thandleType = " << value.handleType << '\n';
13043	s << "\thandle = " << value.handle << '\n';
13044	s << "\tname = " << getWStr(value.name) << '\n';
13045	s << '}';
13046	return s;
13047}
13048
13049std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
13050{
13051	s << "VkExportFenceWin32HandleInfoKHR = {\n";
13052	s << "\tsType = " << value.sType << '\n';
13053	s << "\tpNext = " << value.pNext << '\n';
13054	s << "\tpAttributes = " << value.pAttributes << '\n';
13055	s << "\tdwAccess = " << value.dwAccess << '\n';
13056	s << "\tname = " << getWStr(value.name) << '\n';
13057	s << '}';
13058	return s;
13059}
13060
13061std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
13062{
13063	s << "VkFenceGetWin32HandleInfoKHR = {\n";
13064	s << "\tsType = " << value.sType << '\n';
13065	s << "\tpNext = " << value.pNext << '\n';
13066	s << "\tfence = " << value.fence << '\n';
13067	s << "\thandleType = " << value.handleType << '\n';
13068	s << '}';
13069	return s;
13070}
13071
13072std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
13073{
13074	s << "VkImportMemoryWin32HandleInfoNV = {\n";
13075	s << "\tsType = " << value.sType << '\n';
13076	s << "\tpNext = " << value.pNext << '\n';
13077	s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
13078	s << "\thandle = " << value.handle << '\n';
13079	s << '}';
13080	return s;
13081}
13082
13083std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
13084{
13085	s << "VkExportMemoryWin32HandleInfoNV = {\n";
13086	s << "\tsType = " << value.sType << '\n';
13087	s << "\tpNext = " << value.pNext << '\n';
13088	s << "\tpAttributes = " << value.pAttributes << '\n';
13089	s << "\tdwAccess = " << value.dwAccess << '\n';
13090	s << '}';
13091	return s;
13092}
13093
13094std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
13095{
13096	s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
13097	s << "\tsType = " << value.sType << '\n';
13098	s << "\tpNext = " << value.pNext << '\n';
13099	s << "\tacquireCount = " << value.acquireCount << '\n';
13100	s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
13101	s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
13102	s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
13103	s << "\treleaseCount = " << value.releaseCount << '\n';
13104	s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
13105	s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
13106	s << '}';
13107	return s;
13108}
13109
13110std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
13111{
13112	s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
13113	s << "\tsType = " << value.sType << '\n';
13114	s << "\tpNext = " << value.pNext << '\n';
13115	s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
13116	s << '}';
13117	return s;
13118}
13119
13120std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
13121{
13122	s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
13123	s << "\tsType = " << value.sType << '\n';
13124	s << "\tpNext = " << value.pNext << '\n';
13125	s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
13126	s << '}';
13127	return s;
13128}
13129
13130std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
13131{
13132	s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
13133	s << "\tsType = " << value.sType << '\n';
13134	s << "\tpNext = " << value.pNext << '\n';
13135	s << "\thmonitor = " << value.hmonitor << '\n';
13136	s << '}';
13137	return s;
13138}
13139
13140std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
13141{
13142	s << "VkXcbSurfaceCreateInfoKHR = {\n";
13143	s << "\tsType = " << value.sType << '\n';
13144	s << "\tpNext = " << value.pNext << '\n';
13145	s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13146	s << "\tconnection = " << value.connection << '\n';
13147	s << "\twindow = " << value.window << '\n';
13148	s << '}';
13149	return s;
13150}
13151
13152std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
13153{
13154	s << "VkXlibSurfaceCreateInfoKHR = {\n";
13155	s << "\tsType = " << value.sType << '\n';
13156	s << "\tpNext = " << value.pNext << '\n';
13157	s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13158	s << "\tdpy = " << value.dpy << '\n';
13159	s << "\twindow = " << value.window << '\n';
13160	s << '}';
13161	return s;
13162}
13163