c2c70b5760020871861d96c68058a3b65ece7199
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / generated / vulkan / vkStrUtilImpl.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  * This file was generated by /scripts/gen_framework.py
4  */
5
6 template<> const char*  getTypeName<VkInstance>                                                 (void) { return "VkInstance";                                           }
7 template<> const char*  getTypeName<VkPhysicalDevice>                                   (void) { return "VkPhysicalDevice";                                     }
8 template<> const char*  getTypeName<VkDevice>                                                   (void) { return "VkDevice";                                                     }
9 template<> const char*  getTypeName<VkQueue>                                                    (void) { return "VkQueue";                                                      }
10 template<> const char*  getTypeName<VkCommandBuffer>                                    (void) { return "VkCommandBuffer";                                      }
11 template<> const char*  getTypeName<VkDeviceMemory>                                             (void) { return "VkDeviceMemory";                                       }
12 template<> const char*  getTypeName<VkCommandPool>                                              (void) { return "VkCommandPool";                                        }
13 template<> const char*  getTypeName<VkBuffer>                                                   (void) { return "VkBuffer";                                                     }
14 template<> const char*  getTypeName<VkBufferView>                                               (void) { return "VkBufferView";                                         }
15 template<> const char*  getTypeName<VkImage>                                                    (void) { return "VkImage";                                                      }
16 template<> const char*  getTypeName<VkImageView>                                                (void) { return "VkImageView";                                          }
17 template<> const char*  getTypeName<VkShaderModule>                                             (void) { return "VkShaderModule";                                       }
18 template<> const char*  getTypeName<VkPipeline>                                                 (void) { return "VkPipeline";                                           }
19 template<> const char*  getTypeName<VkPipelineLayout>                                   (void) { return "VkPipelineLayout";                                     }
20 template<> const char*  getTypeName<VkSampler>                                                  (void) { return "VkSampler";                                            }
21 template<> const char*  getTypeName<VkDescriptorSet>                                    (void) { return "VkDescriptorSet";                                      }
22 template<> const char*  getTypeName<VkDescriptorSetLayout>                              (void) { return "VkDescriptorSetLayout";                        }
23 template<> const char*  getTypeName<VkDescriptorPool>                                   (void) { return "VkDescriptorPool";                                     }
24 template<> const char*  getTypeName<VkFence>                                                    (void) { return "VkFence";                                                      }
25 template<> const char*  getTypeName<VkSemaphore>                                                (void) { return "VkSemaphore";                                          }
26 template<> const char*  getTypeName<VkEvent>                                                    (void) { return "VkEvent";                                                      }
27 template<> const char*  getTypeName<VkQueryPool>                                                (void) { return "VkQueryPool";                                          }
28 template<> const char*  getTypeName<VkFramebuffer>                                              (void) { return "VkFramebuffer";                                        }
29 template<> const char*  getTypeName<VkRenderPass>                                               (void) { return "VkRenderPass";                                         }
30 template<> const char*  getTypeName<VkPipelineCache>                                    (void) { return "VkPipelineCache";                                      }
31 template<> const char*  getTypeName<VkIndirectCommandsLayoutNV>                 (void) { return "VkIndirectCommandsLayoutNV";           }
32 template<> const char*  getTypeName<VkDescriptorUpdateTemplate>                 (void) { return "VkDescriptorUpdateTemplate";           }
33 template<> const char*  getTypeName<VkSamplerYcbcrConversion>                   (void) { return "VkSamplerYcbcrConversion";                     }
34 template<> const char*  getTypeName<VkValidationCacheEXT>                               (void) { return "VkValidationCacheEXT";                         }
35 template<> const char*  getTypeName<VkAccelerationStructureKHR>                 (void) { return "VkAccelerationStructureKHR";           }
36 template<> const char*  getTypeName<VkAccelerationStructureNV>                  (void) { return "VkAccelerationStructureNV";            }
37 template<> const char*  getTypeName<VkPerformanceConfigurationINTEL>    (void) { return "VkPerformanceConfigurationINTEL";      }
38 template<> const char*  getTypeName<VkBufferCollectionFUCHSIA>                  (void) { return "VkBufferCollectionFUCHSIA";            }
39 template<> const char*  getTypeName<VkDeferredOperationKHR>                             (void) { return "VkDeferredOperationKHR";                       }
40 template<> const char*  getTypeName<VkPrivateDataSlot>                                  (void) { return "VkPrivateDataSlot";                            }
41 template<> const char*  getTypeName<VkCuModuleNVX>                                              (void) { return "VkCuModuleNVX";                                        }
42 template<> const char*  getTypeName<VkCuFunctionNVX>                                    (void) { return "VkCuFunctionNVX";                                      }
43 template<> const char*  getTypeName<VkDisplayKHR>                                               (void) { return "VkDisplayKHR";                                         }
44 template<> const char*  getTypeName<VkDisplayModeKHR>                                   (void) { return "VkDisplayModeKHR";                                     }
45 template<> const char*  getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
46 template<> const char*  getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
47 template<> const char*  getTypeName<VkDebugReportCallbackEXT>                   (void) { return "VkDebugReportCallbackEXT";                     }
48 template<> const char*  getTypeName<VkDebugUtilsMessengerEXT>                   (void) { return "VkDebugUtilsMessengerEXT";                     }
49 template<> const char*  getTypeName<VkVideoSessionKHR>                                  (void) { return "VkVideoSessionKHR";                            }
50 template<> const char*  getTypeName<VkVideoSessionParametersKHR>                (void) { return "VkVideoSessionParametersKHR";          }
51
52 namespace pt
53 {
54 std::ostream& operator<< (std::ostream& s, XlibDisplayPtr                               v) { return s << tcu::toHex(v.internal); }
55 std::ostream& operator<< (std::ostream& s, XlibWindow                                   v) { return s << tcu::toHex(v.internal); }
56 std::ostream& operator<< (std::ostream& s, XlibVisualID                                 v) { return s << tcu::toHex(v.internal); }
57 std::ostream& operator<< (std::ostream& s, XcbConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
58 std::ostream& operator<< (std::ostream& s, XcbWindow                                    v) { return s << tcu::toHex(v.internal); }
59 std::ostream& operator<< (std::ostream& s, XcbVisualid                                  v) { return s << tcu::toHex(v.internal); }
60 std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr                    v) { return s << tcu::toHex(v.internal); }
61 std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr                    v) { return s << tcu::toHex(v.internal); }
62 std::ostream& operator<< (std::ostream& s, MirConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
63 std::ostream& operator<< (std::ostream& s, MirSurfacePtr                                v) { return s << tcu::toHex(v.internal); }
64 std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr               v) { return s << tcu::toHex(v.internal); }
65 std::ostream& operator<< (std::ostream& s, Win32InstanceHandle                  v) { return s << tcu::toHex(v.internal); }
66 std::ostream& operator<< (std::ostream& s, Win32WindowHandle                    v) { return s << tcu::toHex(v.internal); }
67 std::ostream& operator<< (std::ostream& s, Win32Handle                                  v) { return s << tcu::toHex(v.internal); }
68 std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr   v) { return s << tcu::toHex(v.internal); }
69 std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr             v) { return s << tcu::toHex(v.internal); }
70 std::ostream& operator<< (std::ostream& s, Win32MonitorHandle                   v) { return s << tcu::toHex(v.internal); }
71 std::ostream& operator<< (std::ostream& s, Win32LPCWSTR                                 v) { return s << tcu::toHex(v.internal); }
72 std::ostream& operator<< (std::ostream& s, RROutput                                             v) { return s << tcu::toHex(v.internal); }
73 std::ostream& operator<< (std::ostream& s, zx_handle_t                                  v) { return s << tcu::toHex(v.internal); }
74 std::ostream& operator<< (std::ostream& s, GgpFrameToken                                v) { return s << tcu::toHex(v.internal); }
75 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                  v) { return s << tcu::toHex(v.internal); }
76 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                 v) { return s << tcu::toHex(v.internal); }
77 std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr                  v) { return s << tcu::toHex(v.internal); }
78 std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr                   v) { return s << tcu::toHex(v.internal); }
79 std::ostream& operator<< (std::ostream& s, MTLDevice_id                                 v) { return s << tcu::toHex(v.internal); }
80 std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id                   v) { return s << tcu::toHex(v.internal); }
81 std::ostream& operator<< (std::ostream& s, MTLBuffer_id                                 v) { return s << tcu::toHex(v.internal); }
82 std::ostream& operator<< (std::ostream& s, MTLTexture_id                                v) { return s << tcu::toHex(v.internal); }
83 std::ostream& operator<< (std::ostream& s, IOSurfaceRef                                 v) { return s << tcu::toHex(v.internal); }
84 std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id                    v) { return s << tcu::toHex(v.internal); }
85 }
86
87 const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
88 {
89         switch (value)
90         {
91                 case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
92                 case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
93                 case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
94                 case VK_ATTACHMENT_LOAD_OP_NONE_EXT:    return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
95                 default:                                                                return DE_NULL;
96         }
97 }
98
99 const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
100 {
101         switch (value)
102         {
103                 case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
104                 case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
105                 case VK_ATTACHMENT_STORE_OP_NONE:               return "VK_ATTACHMENT_STORE_OP_NONE";
106                 default:                                                                return DE_NULL;
107         }
108 }
109
110 const char* getBlendFactorName (VkBlendFactor value)
111 {
112         switch (value)
113         {
114                 case VK_BLEND_FACTOR_ZERO:                                              return "VK_BLEND_FACTOR_ZERO";
115                 case VK_BLEND_FACTOR_ONE:                                               return "VK_BLEND_FACTOR_ONE";
116                 case VK_BLEND_FACTOR_SRC_COLOR:                                 return "VK_BLEND_FACTOR_SRC_COLOR";
117                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
118                 case VK_BLEND_FACTOR_DST_COLOR:                                 return "VK_BLEND_FACTOR_DST_COLOR";
119                 case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
120                 case VK_BLEND_FACTOR_SRC_ALPHA:                                 return "VK_BLEND_FACTOR_SRC_ALPHA";
121                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
122                 case VK_BLEND_FACTOR_DST_ALPHA:                                 return "VK_BLEND_FACTOR_DST_ALPHA";
123                 case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
124                 case VK_BLEND_FACTOR_CONSTANT_COLOR:                    return "VK_BLEND_FACTOR_CONSTANT_COLOR";
125                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
126                 case VK_BLEND_FACTOR_CONSTANT_ALPHA:                    return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
127                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
128                 case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:                return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
129                 case VK_BLEND_FACTOR_SRC1_COLOR:                                return "VK_BLEND_FACTOR_SRC1_COLOR";
130                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
131                 case VK_BLEND_FACTOR_SRC1_ALPHA:                                return "VK_BLEND_FACTOR_SRC1_ALPHA";
132                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
133                 default:                                                                                return DE_NULL;
134         }
135 }
136
137 const char* getBlendOpName (VkBlendOp value)
138 {
139         switch (value)
140         {
141                 case VK_BLEND_OP_ADD:                                           return "VK_BLEND_OP_ADD";
142                 case VK_BLEND_OP_SUBTRACT:                                      return "VK_BLEND_OP_SUBTRACT";
143                 case VK_BLEND_OP_REVERSE_SUBTRACT:                      return "VK_BLEND_OP_REVERSE_SUBTRACT";
144                 case VK_BLEND_OP_MIN:                                           return "VK_BLEND_OP_MIN";
145                 case VK_BLEND_OP_MAX:                                           return "VK_BLEND_OP_MAX";
146                 case VK_BLEND_OP_ZERO_EXT:                                      return "VK_BLEND_OP_ZERO_EXT";
147                 case VK_BLEND_OP_SRC_EXT:                                       return "VK_BLEND_OP_SRC_EXT";
148                 case VK_BLEND_OP_DST_EXT:                                       return "VK_BLEND_OP_DST_EXT";
149                 case VK_BLEND_OP_SRC_OVER_EXT:                          return "VK_BLEND_OP_SRC_OVER_EXT";
150                 case VK_BLEND_OP_DST_OVER_EXT:                          return "VK_BLEND_OP_DST_OVER_EXT";
151                 case VK_BLEND_OP_SRC_IN_EXT:                            return "VK_BLEND_OP_SRC_IN_EXT";
152                 case VK_BLEND_OP_DST_IN_EXT:                            return "VK_BLEND_OP_DST_IN_EXT";
153                 case VK_BLEND_OP_SRC_OUT_EXT:                           return "VK_BLEND_OP_SRC_OUT_EXT";
154                 case VK_BLEND_OP_DST_OUT_EXT:                           return "VK_BLEND_OP_DST_OUT_EXT";
155                 case VK_BLEND_OP_SRC_ATOP_EXT:                          return "VK_BLEND_OP_SRC_ATOP_EXT";
156                 case VK_BLEND_OP_DST_ATOP_EXT:                          return "VK_BLEND_OP_DST_ATOP_EXT";
157                 case VK_BLEND_OP_XOR_EXT:                                       return "VK_BLEND_OP_XOR_EXT";
158                 case VK_BLEND_OP_MULTIPLY_EXT:                          return "VK_BLEND_OP_MULTIPLY_EXT";
159                 case VK_BLEND_OP_SCREEN_EXT:                            return "VK_BLEND_OP_SCREEN_EXT";
160                 case VK_BLEND_OP_OVERLAY_EXT:                           return "VK_BLEND_OP_OVERLAY_EXT";
161                 case VK_BLEND_OP_DARKEN_EXT:                            return "VK_BLEND_OP_DARKEN_EXT";
162                 case VK_BLEND_OP_LIGHTEN_EXT:                           return "VK_BLEND_OP_LIGHTEN_EXT";
163                 case VK_BLEND_OP_COLORDODGE_EXT:                        return "VK_BLEND_OP_COLORDODGE_EXT";
164                 case VK_BLEND_OP_COLORBURN_EXT:                         return "VK_BLEND_OP_COLORBURN_EXT";
165                 case VK_BLEND_OP_HARDLIGHT_EXT:                         return "VK_BLEND_OP_HARDLIGHT_EXT";
166                 case VK_BLEND_OP_SOFTLIGHT_EXT:                         return "VK_BLEND_OP_SOFTLIGHT_EXT";
167                 case VK_BLEND_OP_DIFFERENCE_EXT:                        return "VK_BLEND_OP_DIFFERENCE_EXT";
168                 case VK_BLEND_OP_EXCLUSION_EXT:                         return "VK_BLEND_OP_EXCLUSION_EXT";
169                 case VK_BLEND_OP_INVERT_EXT:                            return "VK_BLEND_OP_INVERT_EXT";
170                 case VK_BLEND_OP_INVERT_RGB_EXT:                        return "VK_BLEND_OP_INVERT_RGB_EXT";
171                 case VK_BLEND_OP_LINEARDODGE_EXT:                       return "VK_BLEND_OP_LINEARDODGE_EXT";
172                 case VK_BLEND_OP_LINEARBURN_EXT:                        return "VK_BLEND_OP_LINEARBURN_EXT";
173                 case VK_BLEND_OP_VIVIDLIGHT_EXT:                        return "VK_BLEND_OP_VIVIDLIGHT_EXT";
174                 case VK_BLEND_OP_LINEARLIGHT_EXT:                       return "VK_BLEND_OP_LINEARLIGHT_EXT";
175                 case VK_BLEND_OP_PINLIGHT_EXT:                          return "VK_BLEND_OP_PINLIGHT_EXT";
176                 case VK_BLEND_OP_HARDMIX_EXT:                           return "VK_BLEND_OP_HARDMIX_EXT";
177                 case VK_BLEND_OP_HSL_HUE_EXT:                           return "VK_BLEND_OP_HSL_HUE_EXT";
178                 case VK_BLEND_OP_HSL_SATURATION_EXT:            return "VK_BLEND_OP_HSL_SATURATION_EXT";
179                 case VK_BLEND_OP_HSL_COLOR_EXT:                         return "VK_BLEND_OP_HSL_COLOR_EXT";
180                 case VK_BLEND_OP_HSL_LUMINOSITY_EXT:            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
181                 case VK_BLEND_OP_PLUS_EXT:                                      return "VK_BLEND_OP_PLUS_EXT";
182                 case VK_BLEND_OP_PLUS_CLAMPED_EXT:                      return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
183                 case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:        return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
184                 case VK_BLEND_OP_PLUS_DARKER_EXT:                       return "VK_BLEND_OP_PLUS_DARKER_EXT";
185                 case VK_BLEND_OP_MINUS_EXT:                                     return "VK_BLEND_OP_MINUS_EXT";
186                 case VK_BLEND_OP_MINUS_CLAMPED_EXT:                     return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
187                 case VK_BLEND_OP_CONTRAST_EXT:                          return "VK_BLEND_OP_CONTRAST_EXT";
188                 case VK_BLEND_OP_INVERT_OVG_EXT:                        return "VK_BLEND_OP_INVERT_OVG_EXT";
189                 case VK_BLEND_OP_RED_EXT:                                       return "VK_BLEND_OP_RED_EXT";
190                 case VK_BLEND_OP_GREEN_EXT:                                     return "VK_BLEND_OP_GREEN_EXT";
191                 case VK_BLEND_OP_BLUE_EXT:                                      return "VK_BLEND_OP_BLUE_EXT";
192                 default:                                                                        return DE_NULL;
193         }
194 }
195
196 const char* getBorderColorName (VkBorderColor value)
197 {
198         switch (value)
199         {
200                 case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
201                 case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
202                 case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
203                 case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
204                 case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
205                 case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
206                 case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
207                 case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
208                 default:                                                                                return DE_NULL;
209         }
210 }
211
212 tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
213 {
214         static const tcu::Format::BitDesc s_desc[] =
215         {
216                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,       "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
217         };
218         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
219 }
220
221 tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
222 {
223         static const tcu::Format::BitDesc s_desc[] =
224         {
225                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
226         };
227         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
228 }
229
230 tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
231 {
232         static const tcu::Format::BitDesc s_desc[] =
233         {
234                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
235                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
236                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,                           "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
237                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,                                       "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
238         };
239         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
240 }
241
242 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
243 {
244         switch (value)
245         {
246                 case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:      return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
247                 default:                                                                        return DE_NULL;
248         }
249 }
250
251 tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
252 {
253         static const tcu::Format::BitDesc s_desc[] =
254         {
255                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,      "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
256         };
257         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
258 }
259
260 tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
261 {
262         static const tcu::Format::BitDesc s_desc[] =
263         {
264                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,   "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
265                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,                "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
266         };
267         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
268 }
269
270 tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
271 {
272         static const tcu::Format::BitDesc s_desc[] =
273         {
274                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,           "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
275                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,        "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
276                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,          "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
277         };
278         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
279 }
280
281 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
282 {
283         static const tcu::Format::BitDesc s_desc[] =
284         {
285                 tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,  "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
286         };
287         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
288 }
289
290 tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
291 {
292         static const tcu::Format::BitDesc s_desc[] =
293         {
294                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,      "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
295         };
296         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
297 }
298
299 tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
300 {
301         static const tcu::Format::BitDesc s_desc[] =
302         {
303                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                       "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
304                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                     "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
305                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                       "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
306                 tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                            "VK_BUFFER_CREATE_PROTECTED_BIT"),
307                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,        "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
308         };
309         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
310 }
311
312 tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
313 {
314         static const tcu::Format::BitDesc s_desc[] =
315         {
316                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
317                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
318                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
319                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
320                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
321                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
322                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
323                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
324                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
325                 tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
326                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
327                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
328                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
329                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
330                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
331                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
332                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
333                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
334                 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"),
335                 tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
336         };
337         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
338 }
339
340 tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
341 {
342         static const tcu::Format::BitDesc s_desc[] =
343         {
344                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,  "VK_COLOR_COMPONENT_R_BIT"),
345                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,  "VK_COLOR_COMPONENT_G_BIT"),
346                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,  "VK_COLOR_COMPONENT_B_BIT"),
347                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,  "VK_COLOR_COMPONENT_A_BIT"),
348         };
349         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
350 }
351
352 const char* getComponentSwizzleName (VkComponentSwizzle value)
353 {
354         switch (value)
355         {
356                 case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
357                 case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
358                 case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
359                 case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
360                 case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
361                 case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
362                 case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
363                 default:                                                        return DE_NULL;
364         }
365 }
366
367 tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
368 {
369         static const tcu::Format::BitDesc s_desc[] =
370         {
371                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
372                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
373                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
374         };
375         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
376 }
377
378 tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
379 {
380         static const tcu::Format::BitDesc s_desc[] =
381         {
382                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
383         };
384         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
385 }
386
387 tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
388 {
389         static const tcu::Format::BitDesc s_desc[] =
390         {
391                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
392         };
393         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
394 }
395
396 const char* getCommandBufferLevelName (VkCommandBufferLevel value)
397 {
398         switch (value)
399         {
400                 case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
401                 case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
402                 default:                                                                return DE_NULL;
403         }
404 }
405
406 tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
407 {
408         static const tcu::Format::BitDesc s_desc[] =
409         {
410                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
411                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
412                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
413         };
414         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
415 }
416
417 const char* getCompareOpName (VkCompareOp value)
418 {
419         switch (value)
420         {
421                 case VK_COMPARE_OP_NEVER:                               return "VK_COMPARE_OP_NEVER";
422                 case VK_COMPARE_OP_LESS:                                return "VK_COMPARE_OP_LESS";
423                 case VK_COMPARE_OP_EQUAL:                               return "VK_COMPARE_OP_EQUAL";
424                 case VK_COMPARE_OP_LESS_OR_EQUAL:               return "VK_COMPARE_OP_LESS_OR_EQUAL";
425                 case VK_COMPARE_OP_GREATER:                             return "VK_COMPARE_OP_GREATER";
426                 case VK_COMPARE_OP_NOT_EQUAL:                   return "VK_COMPARE_OP_NOT_EQUAL";
427                 case VK_COMPARE_OP_GREATER_OR_EQUAL:    return "VK_COMPARE_OP_GREATER_OR_EQUAL";
428                 case VK_COMPARE_OP_ALWAYS:                              return "VK_COMPARE_OP_ALWAYS";
429                 default:                                                                return DE_NULL;
430         }
431 }
432
433 tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
434 {
435         static const tcu::Format::BitDesc s_desc[] =
436         {
437                 tcu::Format::BitDesc(VK_CULL_MODE_NONE,                         "VK_CULL_MODE_NONE"),
438                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,            "VK_CULL_MODE_FRONT_BIT"),
439                 tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                     "VK_CULL_MODE_BACK_BIT"),
440                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,       "VK_CULL_MODE_FRONT_AND_BACK"),
441         };
442         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
443 }
444
445 const char* getDescriptorTypeName (VkDescriptorType value)
446 {
447         switch (value)
448         {
449                 case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
450                 case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
451                 case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
452                 case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
453                 case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
454                 case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
455                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
456                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
457                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
458                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
459                 case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
460                 case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:           return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
461                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
462                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
463                 case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:                          return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
464                 case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:       return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
465                 case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:         return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
466                 default:                                                                                        return DE_NULL;
467         }
468 }
469
470 const char* getDynamicStateName (VkDynamicState value)
471 {
472         switch (value)
473         {
474                 case VK_DYNAMIC_STATE_VIEWPORT:                                                         return "VK_DYNAMIC_STATE_VIEWPORT";
475                 case VK_DYNAMIC_STATE_SCISSOR:                                                          return "VK_DYNAMIC_STATE_SCISSOR";
476                 case VK_DYNAMIC_STATE_LINE_WIDTH:                                                       return "VK_DYNAMIC_STATE_LINE_WIDTH";
477                 case VK_DYNAMIC_STATE_DEPTH_BIAS:                                                       return "VK_DYNAMIC_STATE_DEPTH_BIAS";
478                 case VK_DYNAMIC_STATE_BLEND_CONSTANTS:                                          return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
479                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                                                     return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
480                 case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:                                     return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
481                 case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:                                       return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
482                 case VK_DYNAMIC_STATE_STENCIL_REFERENCE:                                        return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
483                 case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:                            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
484                 case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:                            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
485                 case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:                                     return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
486                 case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:         return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
487                 case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:          return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
488                 case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                     return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
489                 case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                        return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
490                 case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                         return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
491                 case VK_DYNAMIC_STATE_CULL_MODE:                                                        return "VK_DYNAMIC_STATE_CULL_MODE";
492                 case VK_DYNAMIC_STATE_FRONT_FACE:                                                       return "VK_DYNAMIC_STATE_FRONT_FACE";
493                 case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:                                       return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
494                 case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:                                      return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
495                 case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:                                       return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
496                 case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:                      return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
497                 case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
498                 case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:                                       return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
499                 case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:                                         return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
500                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:                         return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
501                 case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:                                      return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
502                 case VK_DYNAMIC_STATE_STENCIL_OP:                                                       return "VK_DYNAMIC_STATE_STENCIL_OP";
503                 case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:      return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
504                 case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:                                         return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
505                 case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:                         return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
506                 case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:                        return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
507                 case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
508                 case VK_DYNAMIC_STATE_LOGIC_OP_EXT:                                                     return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
509                 case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:                         return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
510                 case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:                           return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
511                 default:                                                                                                        return DE_NULL;
512         }
513 }
514
515 tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
516 {
517         static const tcu::Format::BitDesc s_desc[] =
518         {
519                 tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,      "VK_FENCE_CREATE_SIGNALED_BIT"),
520         };
521         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
522 }
523
524 const char* getPolygonModeName (VkPolygonMode value)
525 {
526         switch (value)
527         {
528                 case VK_POLYGON_MODE_FILL:                              return "VK_POLYGON_MODE_FILL";
529                 case VK_POLYGON_MODE_LINE:                              return "VK_POLYGON_MODE_LINE";
530                 case VK_POLYGON_MODE_POINT:                             return "VK_POLYGON_MODE_POINT";
531                 case VK_POLYGON_MODE_FILL_RECTANGLE_NV: return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
532                 default:                                                                return DE_NULL;
533         }
534 }
535
536 const char* getFormatName (VkFormat value)
537 {
538         switch (value)
539         {
540                 case VK_FORMAT_UNDEFINED:                                                                       return "VK_FORMAT_UNDEFINED";
541                 case VK_FORMAT_R4G4_UNORM_PACK8:                                                        return "VK_FORMAT_R4G4_UNORM_PACK8";
542                 case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                           return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
543                 case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                           return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
544                 case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                     return "VK_FORMAT_R5G6B5_UNORM_PACK16";
545                 case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                     return "VK_FORMAT_B5G6R5_UNORM_PACK16";
546                 case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                           return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
547                 case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                           return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
548                 case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                           return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
549                 case VK_FORMAT_R8_UNORM:                                                                        return "VK_FORMAT_R8_UNORM";
550                 case VK_FORMAT_R8_SNORM:                                                                        return "VK_FORMAT_R8_SNORM";
551                 case VK_FORMAT_R8_USCALED:                                                                      return "VK_FORMAT_R8_USCALED";
552                 case VK_FORMAT_R8_SSCALED:                                                                      return "VK_FORMAT_R8_SSCALED";
553                 case VK_FORMAT_R8_UINT:                                                                         return "VK_FORMAT_R8_UINT";
554                 case VK_FORMAT_R8_SINT:                                                                         return "VK_FORMAT_R8_SINT";
555                 case VK_FORMAT_R8_SRGB:                                                                         return "VK_FORMAT_R8_SRGB";
556                 case VK_FORMAT_R8G8_UNORM:                                                                      return "VK_FORMAT_R8G8_UNORM";
557                 case VK_FORMAT_R8G8_SNORM:                                                                      return "VK_FORMAT_R8G8_SNORM";
558                 case VK_FORMAT_R8G8_USCALED:                                                            return "VK_FORMAT_R8G8_USCALED";
559                 case VK_FORMAT_R8G8_SSCALED:                                                            return "VK_FORMAT_R8G8_SSCALED";
560                 case VK_FORMAT_R8G8_UINT:                                                                       return "VK_FORMAT_R8G8_UINT";
561                 case VK_FORMAT_R8G8_SINT:                                                                       return "VK_FORMAT_R8G8_SINT";
562                 case VK_FORMAT_R8G8_SRGB:                                                                       return "VK_FORMAT_R8G8_SRGB";
563                 case VK_FORMAT_R8G8B8_UNORM:                                                            return "VK_FORMAT_R8G8B8_UNORM";
564                 case VK_FORMAT_R8G8B8_SNORM:                                                            return "VK_FORMAT_R8G8B8_SNORM";
565                 case VK_FORMAT_R8G8B8_USCALED:                                                          return "VK_FORMAT_R8G8B8_USCALED";
566                 case VK_FORMAT_R8G8B8_SSCALED:                                                          return "VK_FORMAT_R8G8B8_SSCALED";
567                 case VK_FORMAT_R8G8B8_UINT:                                                                     return "VK_FORMAT_R8G8B8_UINT";
568                 case VK_FORMAT_R8G8B8_SINT:                                                                     return "VK_FORMAT_R8G8B8_SINT";
569                 case VK_FORMAT_R8G8B8_SRGB:                                                                     return "VK_FORMAT_R8G8B8_SRGB";
570                 case VK_FORMAT_B8G8R8_UNORM:                                                            return "VK_FORMAT_B8G8R8_UNORM";
571                 case VK_FORMAT_B8G8R8_SNORM:                                                            return "VK_FORMAT_B8G8R8_SNORM";
572                 case VK_FORMAT_B8G8R8_USCALED:                                                          return "VK_FORMAT_B8G8R8_USCALED";
573                 case VK_FORMAT_B8G8R8_SSCALED:                                                          return "VK_FORMAT_B8G8R8_SSCALED";
574                 case VK_FORMAT_B8G8R8_UINT:                                                                     return "VK_FORMAT_B8G8R8_UINT";
575                 case VK_FORMAT_B8G8R8_SINT:                                                                     return "VK_FORMAT_B8G8R8_SINT";
576                 case VK_FORMAT_B8G8R8_SRGB:                                                                     return "VK_FORMAT_B8G8R8_SRGB";
577                 case VK_FORMAT_R8G8B8A8_UNORM:                                                          return "VK_FORMAT_R8G8B8A8_UNORM";
578                 case VK_FORMAT_R8G8B8A8_SNORM:                                                          return "VK_FORMAT_R8G8B8A8_SNORM";
579                 case VK_FORMAT_R8G8B8A8_USCALED:                                                        return "VK_FORMAT_R8G8B8A8_USCALED";
580                 case VK_FORMAT_R8G8B8A8_SSCALED:                                                        return "VK_FORMAT_R8G8B8A8_SSCALED";
581                 case VK_FORMAT_R8G8B8A8_UINT:                                                           return "VK_FORMAT_R8G8B8A8_UINT";
582                 case VK_FORMAT_R8G8B8A8_SINT:                                                           return "VK_FORMAT_R8G8B8A8_SINT";
583                 case VK_FORMAT_R8G8B8A8_SRGB:                                                           return "VK_FORMAT_R8G8B8A8_SRGB";
584                 case VK_FORMAT_B8G8R8A8_UNORM:                                                          return "VK_FORMAT_B8G8R8A8_UNORM";
585                 case VK_FORMAT_B8G8R8A8_SNORM:                                                          return "VK_FORMAT_B8G8R8A8_SNORM";
586                 case VK_FORMAT_B8G8R8A8_USCALED:                                                        return "VK_FORMAT_B8G8R8A8_USCALED";
587                 case VK_FORMAT_B8G8R8A8_SSCALED:                                                        return "VK_FORMAT_B8G8R8A8_SSCALED";
588                 case VK_FORMAT_B8G8R8A8_UINT:                                                           return "VK_FORMAT_B8G8R8A8_UINT";
589                 case VK_FORMAT_B8G8R8A8_SINT:                                                           return "VK_FORMAT_B8G8R8A8_SINT";
590                 case VK_FORMAT_B8G8R8A8_SRGB:                                                           return "VK_FORMAT_B8G8R8A8_SRGB";
591                 case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
592                 case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
593                 case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
594                 case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
595                 case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
596                 case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
597                 case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
598                 case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
599                 case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
600                 case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
601                 case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
602                 case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
603                 case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
604                 case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
605                 case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
606                 case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
607                 case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
608                 case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
609                 case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
610                 case VK_FORMAT_R16_UNORM:                                                                       return "VK_FORMAT_R16_UNORM";
611                 case VK_FORMAT_R16_SNORM:                                                                       return "VK_FORMAT_R16_SNORM";
612                 case VK_FORMAT_R16_USCALED:                                                                     return "VK_FORMAT_R16_USCALED";
613                 case VK_FORMAT_R16_SSCALED:                                                                     return "VK_FORMAT_R16_SSCALED";
614                 case VK_FORMAT_R16_UINT:                                                                        return "VK_FORMAT_R16_UINT";
615                 case VK_FORMAT_R16_SINT:                                                                        return "VK_FORMAT_R16_SINT";
616                 case VK_FORMAT_R16_SFLOAT:                                                                      return "VK_FORMAT_R16_SFLOAT";
617                 case VK_FORMAT_R16G16_UNORM:                                                            return "VK_FORMAT_R16G16_UNORM";
618                 case VK_FORMAT_R16G16_SNORM:                                                            return "VK_FORMAT_R16G16_SNORM";
619                 case VK_FORMAT_R16G16_USCALED:                                                          return "VK_FORMAT_R16G16_USCALED";
620                 case VK_FORMAT_R16G16_SSCALED:                                                          return "VK_FORMAT_R16G16_SSCALED";
621                 case VK_FORMAT_R16G16_UINT:                                                                     return "VK_FORMAT_R16G16_UINT";
622                 case VK_FORMAT_R16G16_SINT:                                                                     return "VK_FORMAT_R16G16_SINT";
623                 case VK_FORMAT_R16G16_SFLOAT:                                                           return "VK_FORMAT_R16G16_SFLOAT";
624                 case VK_FORMAT_R16G16B16_UNORM:                                                         return "VK_FORMAT_R16G16B16_UNORM";
625                 case VK_FORMAT_R16G16B16_SNORM:                                                         return "VK_FORMAT_R16G16B16_SNORM";
626                 case VK_FORMAT_R16G16B16_USCALED:                                                       return "VK_FORMAT_R16G16B16_USCALED";
627                 case VK_FORMAT_R16G16B16_SSCALED:                                                       return "VK_FORMAT_R16G16B16_SSCALED";
628                 case VK_FORMAT_R16G16B16_UINT:                                                          return "VK_FORMAT_R16G16B16_UINT";
629                 case VK_FORMAT_R16G16B16_SINT:                                                          return "VK_FORMAT_R16G16B16_SINT";
630                 case VK_FORMAT_R16G16B16_SFLOAT:                                                        return "VK_FORMAT_R16G16B16_SFLOAT";
631                 case VK_FORMAT_R16G16B16A16_UNORM:                                                      return "VK_FORMAT_R16G16B16A16_UNORM";
632                 case VK_FORMAT_R16G16B16A16_SNORM:                                                      return "VK_FORMAT_R16G16B16A16_SNORM";
633                 case VK_FORMAT_R16G16B16A16_USCALED:                                            return "VK_FORMAT_R16G16B16A16_USCALED";
634                 case VK_FORMAT_R16G16B16A16_SSCALED:                                            return "VK_FORMAT_R16G16B16A16_SSCALED";
635                 case VK_FORMAT_R16G16B16A16_UINT:                                                       return "VK_FORMAT_R16G16B16A16_UINT";
636                 case VK_FORMAT_R16G16B16A16_SINT:                                                       return "VK_FORMAT_R16G16B16A16_SINT";
637                 case VK_FORMAT_R16G16B16A16_SFLOAT:                                                     return "VK_FORMAT_R16G16B16A16_SFLOAT";
638                 case VK_FORMAT_R32_UINT:                                                                        return "VK_FORMAT_R32_UINT";
639                 case VK_FORMAT_R32_SINT:                                                                        return "VK_FORMAT_R32_SINT";
640                 case VK_FORMAT_R32_SFLOAT:                                                                      return "VK_FORMAT_R32_SFLOAT";
641                 case VK_FORMAT_R32G32_UINT:                                                                     return "VK_FORMAT_R32G32_UINT";
642                 case VK_FORMAT_R32G32_SINT:                                                                     return "VK_FORMAT_R32G32_SINT";
643                 case VK_FORMAT_R32G32_SFLOAT:                                                           return "VK_FORMAT_R32G32_SFLOAT";
644                 case VK_FORMAT_R32G32B32_UINT:                                                          return "VK_FORMAT_R32G32B32_UINT";
645                 case VK_FORMAT_R32G32B32_SINT:                                                          return "VK_FORMAT_R32G32B32_SINT";
646                 case VK_FORMAT_R32G32B32_SFLOAT:                                                        return "VK_FORMAT_R32G32B32_SFLOAT";
647                 case VK_FORMAT_R32G32B32A32_UINT:                                                       return "VK_FORMAT_R32G32B32A32_UINT";
648                 case VK_FORMAT_R32G32B32A32_SINT:                                                       return "VK_FORMAT_R32G32B32A32_SINT";
649                 case VK_FORMAT_R32G32B32A32_SFLOAT:                                                     return "VK_FORMAT_R32G32B32A32_SFLOAT";
650                 case VK_FORMAT_R64_UINT:                                                                        return "VK_FORMAT_R64_UINT";
651                 case VK_FORMAT_R64_SINT:                                                                        return "VK_FORMAT_R64_SINT";
652                 case VK_FORMAT_R64_SFLOAT:                                                                      return "VK_FORMAT_R64_SFLOAT";
653                 case VK_FORMAT_R64G64_UINT:                                                                     return "VK_FORMAT_R64G64_UINT";
654                 case VK_FORMAT_R64G64_SINT:                                                                     return "VK_FORMAT_R64G64_SINT";
655                 case VK_FORMAT_R64G64_SFLOAT:                                                           return "VK_FORMAT_R64G64_SFLOAT";
656                 case VK_FORMAT_R64G64B64_UINT:                                                          return "VK_FORMAT_R64G64B64_UINT";
657                 case VK_FORMAT_R64G64B64_SINT:                                                          return "VK_FORMAT_R64G64B64_SINT";
658                 case VK_FORMAT_R64G64B64_SFLOAT:                                                        return "VK_FORMAT_R64G64B64_SFLOAT";
659                 case VK_FORMAT_R64G64B64A64_UINT:                                                       return "VK_FORMAT_R64G64B64A64_UINT";
660                 case VK_FORMAT_R64G64B64A64_SINT:                                                       return "VK_FORMAT_R64G64B64A64_SINT";
661                 case VK_FORMAT_R64G64B64A64_SFLOAT:                                                     return "VK_FORMAT_R64G64B64A64_SFLOAT";
662                 case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                         return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
663                 case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                          return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
664                 case VK_FORMAT_D16_UNORM:                                                                       return "VK_FORMAT_D16_UNORM";
665                 case VK_FORMAT_X8_D24_UNORM_PACK32:                                                     return "VK_FORMAT_X8_D24_UNORM_PACK32";
666                 case VK_FORMAT_D32_SFLOAT:                                                                      return "VK_FORMAT_D32_SFLOAT";
667                 case VK_FORMAT_S8_UINT:                                                                         return "VK_FORMAT_S8_UINT";
668                 case VK_FORMAT_D16_UNORM_S8_UINT:                                                       return "VK_FORMAT_D16_UNORM_S8_UINT";
669                 case VK_FORMAT_D24_UNORM_S8_UINT:                                                       return "VK_FORMAT_D24_UNORM_S8_UINT";
670                 case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                      return "VK_FORMAT_D32_SFLOAT_S8_UINT";
671                 case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                     return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
672                 case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                      return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
673                 case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
674                 case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                     return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
675                 case VK_FORMAT_BC2_UNORM_BLOCK:                                                         return "VK_FORMAT_BC2_UNORM_BLOCK";
676                 case VK_FORMAT_BC2_SRGB_BLOCK:                                                          return "VK_FORMAT_BC2_SRGB_BLOCK";
677                 case VK_FORMAT_BC3_UNORM_BLOCK:                                                         return "VK_FORMAT_BC3_UNORM_BLOCK";
678                 case VK_FORMAT_BC3_SRGB_BLOCK:                                                          return "VK_FORMAT_BC3_SRGB_BLOCK";
679                 case VK_FORMAT_BC4_UNORM_BLOCK:                                                         return "VK_FORMAT_BC4_UNORM_BLOCK";
680                 case VK_FORMAT_BC4_SNORM_BLOCK:                                                         return "VK_FORMAT_BC4_SNORM_BLOCK";
681                 case VK_FORMAT_BC5_UNORM_BLOCK:                                                         return "VK_FORMAT_BC5_UNORM_BLOCK";
682                 case VK_FORMAT_BC5_SNORM_BLOCK:                                                         return "VK_FORMAT_BC5_SNORM_BLOCK";
683                 case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
684                 case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
685                 case VK_FORMAT_BC7_UNORM_BLOCK:                                                         return "VK_FORMAT_BC7_UNORM_BLOCK";
686                 case VK_FORMAT_BC7_SRGB_BLOCK:                                                          return "VK_FORMAT_BC7_SRGB_BLOCK";
687                 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                         return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
688                 case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                          return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
689                 case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
690                 case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
691                 case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
692                 case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
693                 case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
694                 case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
695                 case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
696                 case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
697                 case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
698                 case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
699                 case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
700                 case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
701                 case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
702                 case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
703                 case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
704                 case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
705                 case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
706                 case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
707                 case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
708                 case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
709                 case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
710                 case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
711                 case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
712                 case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
713                 case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
714                 case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
715                 case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
716                 case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
717                 case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
718                 case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
719                 case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
720                 case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
721                 case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
722                 case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
723                 case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
724                 case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
725                 case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
726                 case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
727                 case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
728                 case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
729                 case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
730                 case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
731                 case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
732                 case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
733                 case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
734                 case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
735                 case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
736                 case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
737                 case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
738                 case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
739                 case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
740                 case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
741                 case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
742                 case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
743                 case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
744                 case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
745                 case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
746                 case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
747                 case VK_FORMAT_G8B8G8R8_422_UNORM:                                                      return "VK_FORMAT_G8B8G8R8_422_UNORM";
748                 case VK_FORMAT_B8G8R8G8_422_UNORM:                                                      return "VK_FORMAT_B8G8R8G8_422_UNORM";
749                 case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
750                 case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
751                 case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
752                 case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
753                 case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
754                 case VK_FORMAT_R10X6_UNORM_PACK16:                                                      return "VK_FORMAT_R10X6_UNORM_PACK16";
755                 case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                        return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
756                 case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                      return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
757                 case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:          return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
758                 case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:          return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
759                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
760                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
761                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
762                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
763                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
764                 case VK_FORMAT_R12X4_UNORM_PACK16:                                                      return "VK_FORMAT_R12X4_UNORM_PACK16";
765                 case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                        return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
766                 case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                      return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
767                 case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:          return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
768                 case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:          return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
769                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
770                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
771                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
772                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
773                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
774                 case VK_FORMAT_G16B16G16R16_422_UNORM:                                          return "VK_FORMAT_G16B16G16R16_422_UNORM";
775                 case VK_FORMAT_B16G16R16G16_422_UNORM:                                          return "VK_FORMAT_B16G16R16G16_422_UNORM";
776                 case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
777                 case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
778                 case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
779                 case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
780                 case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
781                 case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
782                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
783                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
784                 case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
785                 case VK_FORMAT_A4R4G4B4_UNORM_PACK16:                                           return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
786                 case VK_FORMAT_A4B4G4R4_UNORM_PACK16:                                           return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
787                 default:                                                                                                        return DE_NULL;
788         }
789 }
790
791 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
792 {
793         static const tcu::Format::BitDesc s_desc[] =
794         {
795                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
796                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
797                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
798                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
799                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
800                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                         "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
801                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                       "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
802                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                            "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
803                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                      "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
804                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                            "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
805                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                                                                                                            "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
806                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                                                                                                            "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
807                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                         "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
808                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,                                                                                      "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
809                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
810                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
811                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                         "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
812                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                     "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
813                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                        "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
814                 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"),
815                 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"),
816                 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"),
817                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                            "VK_FORMAT_FEATURE_DISJOINT_BIT"),
818                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                      "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
819                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                            "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
820                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                     "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
821                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
822                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                      "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
823                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
824                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                            "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
825                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                        "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
826         };
827         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
828 }
829
830 const char* getFrontFaceName (VkFrontFace value)
831 {
832         switch (value)
833         {
834                 case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
835                 case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
836                 default:                                                                return DE_NULL;
837         }
838 }
839
840 tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
841 {
842         static const tcu::Format::BitDesc s_desc[] =
843         {
844                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
845                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,                                              "VK_IMAGE_ASPECT_NONE"),
846                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
847                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
848                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
849                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
850                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
851                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
852                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
853                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
854                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
855                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
856         };
857         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
858 }
859
860 tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
861 {
862         static const tcu::Format::BitDesc s_desc[] =
863         {
864                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                                        "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
865                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                                      "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
866                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                                        "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
867                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                                        "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
868                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                                       "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
869                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,                                           "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
870                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                           "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
871                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                           "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
872                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                        "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
873                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                                      "VK_IMAGE_CREATE_DISJOINT_BIT"),
874                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,                                                                         "VK_IMAGE_CREATE_ALIAS_BIT"),
875                 tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                                     "VK_IMAGE_CREATE_PROTECTED_BIT"),
876                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,         "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
877                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,                                                     "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
878                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,                                                        "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
879                 tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,                      "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
880                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,                                        "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
881                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,     "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
882         };
883         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
884 }
885
886 const char* getImageLayoutName (VkImageLayout value)
887 {
888         switch (value)
889         {
890                 case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
891                 case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
892                 case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
893                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
894                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
895                 case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
896                 case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
897                 case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
898                 case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
899                 case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
900                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
901                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
902                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
903                 case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
904                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
905                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
906                 case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
907                 case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
908                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
909                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
910                 case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
911                 case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
912                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
913                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
914                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
915                 case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:                                                         return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
916                 case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:                                                        return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
917                 case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:                      return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
918                 default:                                                                                                                        return DE_NULL;
919         }
920 }
921
922 const char* getImageTilingName (VkImageTiling value)
923 {
924         switch (value)
925         {
926                 case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
927                 case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
928                 case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
929                 default:                                                                                return DE_NULL;
930         }
931 }
932
933 const char* getImageTypeName (VkImageType value)
934 {
935         switch (value)
936         {
937                 case VK_IMAGE_TYPE_1D:  return "VK_IMAGE_TYPE_1D";
938                 case VK_IMAGE_TYPE_2D:  return "VK_IMAGE_TYPE_2D";
939                 case VK_IMAGE_TYPE_3D:  return "VK_IMAGE_TYPE_3D";
940                 default:                                return DE_NULL;
941         }
942 }
943
944 tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
945 {
946         static const tcu::Format::BitDesc s_desc[] =
947         {
948                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
949                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
950                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
951                 tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
952                 tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
953                 tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
954                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
955                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
956                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
957                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
958                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
959                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
960                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
961                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
962                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
963                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
964                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
965                 tcu::Format::BitDesc(VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                   "VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
966                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,                                             "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
967                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,                                "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
968         };
969         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
970 }
971
972 tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
973 {
974         static const tcu::Format::BitDesc s_desc[] =
975         {
976                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
977                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
978         };
979         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
980 }
981
982 const char* getImageViewTypeName (VkImageViewType value)
983 {
984         switch (value)
985         {
986                 case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
987                 case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
988                 case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
989                 case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
990                 case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
991                 case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
992                 case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
993                 default:                                                        return DE_NULL;
994         }
995 }
996
997 const char* getSharingModeName (VkSharingMode value)
998 {
999         switch (value)
1000         {
1001                 case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
1002                 case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
1003                 default:                                                        return DE_NULL;
1004         }
1005 }
1006
1007 const char* getIndexTypeName (VkIndexType value)
1008 {
1009         switch (value)
1010         {
1011                 case VK_INDEX_TYPE_UINT16:              return "VK_INDEX_TYPE_UINT16";
1012                 case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
1013                 case VK_INDEX_TYPE_NONE_KHR:    return "VK_INDEX_TYPE_NONE_KHR";
1014                 case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
1015                 default:                                                return DE_NULL;
1016         }
1017 }
1018
1019 const char* getLogicOpName (VkLogicOp value)
1020 {
1021         switch (value)
1022         {
1023                 case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
1024                 case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
1025                 case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
1026                 case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
1027                 case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
1028                 case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
1029                 case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
1030                 case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
1031                 case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
1032                 case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
1033                 case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
1034                 case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
1035                 case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
1036                 case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
1037                 case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
1038                 case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
1039                 default:                                                return DE_NULL;
1040         }
1041 }
1042
1043 tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
1044 {
1045         static const tcu::Format::BitDesc s_desc[] =
1046         {
1047                 tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,   "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
1048                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
1049         };
1050         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1051 }
1052
1053 tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
1054 {
1055         static const tcu::Format::BitDesc s_desc[] =
1056         {
1057                 tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                                               "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
1058                 tcu::Format::BitDesc(VK_ACCESS_NONE,                                                                                    "VK_ACCESS_NONE"),
1059                 tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                                                  "VK_ACCESS_INDEX_READ_BIT"),
1060                 tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                                               "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
1061                 tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                                                "VK_ACCESS_UNIFORM_READ_BIT"),
1062                 tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
1063                 tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                                                 "VK_ACCESS_SHADER_READ_BIT"),
1064                 tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                                                "VK_ACCESS_SHADER_WRITE_BIT"),
1065                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
1066                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                              "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
1067                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                               "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
1068                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                              "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
1069                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                                               "VK_ACCESS_TRANSFER_READ_BIT"),
1070                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                                              "VK_ACCESS_TRANSFER_WRITE_BIT"),
1071                 tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                                                   "VK_ACCESS_HOST_READ_BIT"),
1072                 tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                                  "VK_ACCESS_HOST_WRITE_BIT"),
1073                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                                 "VK_ACCESS_MEMORY_READ_BIT"),
1074                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                                "VK_ACCESS_MEMORY_WRITE_BIT"),
1075                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
1076                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
1077                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
1078                 tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
1079                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
1080                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
1081                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
1082                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
1083                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
1084                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
1085                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
1086         };
1087         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1088 }
1089
1090 tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
1091 {
1092         static const tcu::Format::BitDesc s_desc[] =
1093         {
1094                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
1095                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
1096                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
1097                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
1098                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
1099                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
1100                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
1101                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
1102                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
1103         };
1104         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1105 }
1106
1107 const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1108 {
1109         switch (value)
1110         {
1111                 case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1112                 case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1113                 case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1114                 case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1115                 case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1116                 default:                                                                                return DE_NULL;
1117         }
1118 }
1119
1120 const char* getPipelineBindPointName (VkPipelineBindPoint value)
1121 {
1122         switch (value)
1123         {
1124                 case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1125                 case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
1126                 case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1127                 case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1128                 default:                                                                                        return DE_NULL;
1129         }
1130 }
1131
1132 tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
1133 {
1134         static const tcu::Format::BitDesc s_desc[] =
1135         {
1136                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,                                                               "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
1137                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,                                                                  "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
1138                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,                                                                                 "VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
1139                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
1140                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
1141                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
1142                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
1143                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
1144                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,                                  "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
1145                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,                                                    "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
1146                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,                                                 "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
1147                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
1148                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
1149                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
1150                 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"),
1151                 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"),
1152                 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"),
1153                 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"),
1154                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
1155                 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"),
1156                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
1157                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,             "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1158                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,              "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
1159                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,                             "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
1160                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                                 "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1161                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                 "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1162         };
1163         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1164 }
1165
1166 const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1167 {
1168         switch (value)
1169         {
1170                 case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1171                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1172                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1173                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1174                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1175                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1176                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1177                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1178                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1179                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1180                 case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1181                 default:                                                                                                        return DE_NULL;
1182         }
1183 }
1184
1185 tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
1186 {
1187         static const tcu::Format::BitDesc s_desc[] =
1188         {
1189                 tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,      "VK_QUERY_CONTROL_PRECISE_BIT"),
1190         };
1191         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1192 }
1193
1194 tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
1195 {
1196         static const tcu::Format::BitDesc s_desc[] =
1197         {
1198                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
1199                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
1200                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
1201                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
1202                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
1203                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
1204                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
1205                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
1206                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
1207                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
1208                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
1209                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,                                       "VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"),
1210                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,                                       "VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"),
1211         };
1212         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1213 }
1214
1215 tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
1216 {
1217         static const tcu::Format::BitDesc s_desc[] =
1218         {
1219                 tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
1220                 tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
1221                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
1222                 tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
1223                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
1224         };
1225         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1226 }
1227
1228 const char* getQueryTypeName (VkQueryType value)
1229 {
1230         switch (value)
1231         {
1232                 case VK_QUERY_TYPE_OCCLUSION:                                                                                                           return "VK_QUERY_TYPE_OCCLUSION";
1233                 case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1234                 case VK_QUERY_TYPE_TIMESTAMP:                                                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
1235                 case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1236                 case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1237                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1238                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:                                           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1239                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:                                       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1240                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:                                            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1241                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1242                 case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                                                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1243                 case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:                                                                       return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
1244                 case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:                                                                            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1245                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:      return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1246                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:                                                                     return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1247                 default:                                                                                                                                                        return DE_NULL;
1248         }
1249 }
1250
1251 tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
1252 {
1253         static const tcu::Format::BitDesc s_desc[] =
1254         {
1255                 tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
1256                 tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
1257                 tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
1258                 tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
1259                 tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
1260                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
1261                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
1262         };
1263         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1264 }
1265
1266 const char* getSubpassContentsName (VkSubpassContents value)
1267 {
1268         switch (value)
1269         {
1270                 case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
1271                 case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1272                 default:                                                                                        return DE_NULL;
1273         }
1274 }
1275
1276 const char* getResultName (VkResult value)
1277 {
1278         switch (value)
1279         {
1280                 case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:                                        return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
1281                 case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1282                 case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1283                 case VK_ERROR_NOT_PERMITTED_KHR:                                                        return "VK_ERROR_NOT_PERMITTED_KHR";
1284                 case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
1285                 case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1286                 case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
1287                 case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
1288                 case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:                      return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1289                 case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:            return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1290                 case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1291                 case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:        return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1292                 case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1293                 case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:                            return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1294                 case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
1295                 case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
1296                 case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
1297                 case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
1298                 case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
1299                 case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
1300                 case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
1301                 case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
1302                 case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
1303                 case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
1304                 case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
1305                 case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
1306                 case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
1307                 case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
1308                 case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
1309                 case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
1310                 case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
1311                 case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
1312                 case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
1313                 case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
1314                 case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
1315                 case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
1316                 case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
1317                 case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
1318                 case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
1319                 case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
1320                 case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
1321                 case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
1322                 case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
1323                 case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
1324                 case VK_PIPELINE_COMPILE_REQUIRED:                                                      return "VK_PIPELINE_COMPILE_REQUIRED";
1325                 default:                                                                                                        return DE_NULL;
1326         }
1327 }
1328
1329 tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
1330 {
1331         static const tcu::Format::BitDesc s_desc[] =
1332         {
1333                 tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
1334                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
1335                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
1336                 tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
1337                 tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
1338                 tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
1339                 tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_EXT,                                      "VK_SHADER_STAGE_TASK_BIT_EXT"),
1340                 tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_EXT,                                      "VK_SHADER_STAGE_MESH_BIT_EXT"),
1341                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
1342                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
1343                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
1344                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
1345                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
1346                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
1347                 tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
1348                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
1349                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
1350         };
1351         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1352 }
1353
1354 tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
1355 {
1356         static const tcu::Format::BitDesc s_desc[] =
1357         {
1358                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,        "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
1359         };
1360         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1361 }
1362
1363 tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
1364 {
1365         static const tcu::Format::BitDesc s_desc[] =
1366         {
1367                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                 "VK_STENCIL_FACE_FRONT_BIT"),
1368                 tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                  "VK_STENCIL_FACE_BACK_BIT"),
1369                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,    "VK_STENCIL_FACE_FRONT_AND_BACK"),
1370         };
1371         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1372 }
1373
1374 const char* getStencilOpName (VkStencilOp value)
1375 {
1376         switch (value)
1377         {
1378                 case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
1379                 case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
1380                 case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
1381                 case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1382                 case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1383                 case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
1384                 case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1385                 case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1386                 default:                                                                return DE_NULL;
1387         }
1388 }
1389
1390 const char* getStructureTypeName (VkStructureType value)
1391 {
1392         switch (value)
1393         {
1394                 case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
1395                 case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
1396                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
1397                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
1398                 case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                                     return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
1399                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
1400                 case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                                     return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
1401                 case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
1402                 case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
1403                 case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
1404                 case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
1405                 case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
1406                 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
1407                 case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
1408                 case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
1409                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
1410                 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
1411                 case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
1412                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
1413                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
1414                 case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
1415                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
1416                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
1417                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
1418                 case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
1419                 case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
1420                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
1421                 case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
1422                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
1423                 case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
1424                 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
1425                 case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
1426                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
1427                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
1428                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
1429                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                                            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
1430                 case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                                     return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
1431                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
1432                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
1433                 case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
1434                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
1435                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                                         return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
1436                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
1437                 case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
1438                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
1439                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
1440                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
1441                 case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
1442                 case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
1443                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
1444                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
1445                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
1446                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
1447                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
1448                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
1449                 case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
1450                 case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
1451                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
1452                 case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
1453                 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
1454                 case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
1455                 case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
1456                 case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
1457                 case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
1458                 case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
1459                 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
1460                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:                            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
1461                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
1462                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
1463                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
1464                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
1465                 case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
1466                 case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
1467                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
1468                 case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
1469                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
1470                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
1471                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
1472                 case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
1473                 case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
1474                 case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
1475                 case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
1476                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
1477                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
1478                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
1479                 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
1480                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
1481                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
1482                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
1483                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
1484                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
1485                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
1486                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
1487                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
1488                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
1489                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
1490                 case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
1491                 case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
1492                 case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
1493                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
1494                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
1495                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
1496                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
1497                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
1498                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
1499                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
1500                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT";
1501                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1502                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT";
1503                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
1504                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
1505                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT:                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT";
1506                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
1507                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
1508                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
1509                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
1510                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
1511                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT";
1512                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1513                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT";
1514                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT:                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT";
1515                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
1516                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
1517                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
1518                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
1519                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_INFO_EXT:                                                                          return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_INFO_EXT";
1520                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT";
1521                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
1522                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
1523                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
1524                 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
1525                 case VK_STRUCTURE_TYPE_RENDERING_INFO:                                                                                                          return "VK_STRUCTURE_TYPE_RENDERING_INFO";
1526                 case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:                                                                                       return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
1527                 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
1528                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
1529                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
1530                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1531                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
1532                 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
1533                 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
1534                 case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
1535                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
1536                 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
1537                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
1538                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
1539                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
1540                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
1541                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1542                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1543                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
1544                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
1545                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
1546                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
1547                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
1548                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
1549                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
1550                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
1551                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
1552                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
1553                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
1554                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
1555                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
1556                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
1557                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
1558                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
1559                 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
1560                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
1561                 case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
1562                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
1563                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
1564                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
1565                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
1566                 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:                                                                                            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
1567                 case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:                                                                                       return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
1568                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
1569                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
1570                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
1571                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
1572                 case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
1573                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
1574                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
1575                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
1576                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
1577                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
1578                 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
1579                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
1580                 case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
1581                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
1582                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
1583                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
1584                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
1585                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1586                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1587                 case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
1588                 case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
1589                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
1590                 case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
1591                 case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
1592                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
1593                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
1594                 case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
1595                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
1596                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1597                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1598                 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
1599                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
1600                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
1601                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
1602                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
1603                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
1604                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
1605                 case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
1606                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
1607                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
1608                 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
1609                 case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
1610                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
1611                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
1612                 case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
1613                 case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
1614                 case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
1615                 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
1616                 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                                       return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
1617                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
1618                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
1619                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
1620                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
1621                 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
1622                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
1623                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
1624                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
1625                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
1626                 case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                        return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
1627                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
1628                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
1629                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
1630                 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
1631                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
1632                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
1633                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
1634                 case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
1635                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
1636                 case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
1637                 case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
1638                 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                                         return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
1639                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
1640                 case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
1641                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
1642                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1643                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1644                 case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
1645                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
1646                 case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
1647                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
1648                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
1649                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
1650                 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
1651                 case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
1652                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
1653                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
1654                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
1655                 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
1656                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
1657                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
1658                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
1659                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
1660                 case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                                            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
1661                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
1662                 case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
1663                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
1664                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:                                                                           return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
1665                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
1666                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
1667                 case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                                     return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
1668                 case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                           return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
1669                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
1670                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
1671                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
1672                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
1673                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
1674                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
1675                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
1676                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
1677                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
1678                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
1679                 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                                     return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1680                 case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                         return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1681                 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
1682                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:                                     return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
1683                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
1684                 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
1685                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
1686                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
1687                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:                                                       return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
1688                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
1689                 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                                       return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
1690                 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
1691                 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:                                         return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
1692                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
1693                 case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:                                                                                      return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
1694                 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
1695                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
1696                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
1697                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
1698                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
1699                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
1700                 case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
1701                 case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
1702                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
1703                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
1704                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
1705                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
1706                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
1707                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:                                         return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
1708                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
1709                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
1710                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
1711                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
1712                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
1713                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
1714                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
1715                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
1716                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
1717                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
1718                 case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
1719                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
1720                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
1721                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
1722                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
1723                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
1724                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
1725                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
1726                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:                                       return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
1727                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
1728                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
1729                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
1730                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
1731                 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
1732                 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
1733                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
1734                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
1735                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
1736                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
1737                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
1738                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
1739                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
1740                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
1741                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
1742                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:                                                       return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
1743                 case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
1744                 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
1745                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
1746                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
1747                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
1748                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
1749                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
1750                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
1751                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
1752                 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";
1753                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
1754                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
1755                 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";
1756                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
1757                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
1758                 case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
1759                 case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
1760                 case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
1761                 case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
1762                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
1763                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
1764                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
1765                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
1766                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
1767                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
1768                 case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
1769                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
1770                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
1771                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
1772                 case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
1773                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
1774                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
1775                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
1776                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
1777                 case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
1778                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
1779                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
1780                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
1781                 case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
1782                 case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
1783                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
1784                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
1785                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
1786                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
1787                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT";
1788                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
1789                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
1790                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
1791                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
1792                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
1793                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
1794                 case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
1795                 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
1796                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
1797                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
1798                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
1799                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
1800                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
1801                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
1802                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
1803                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
1804                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
1805                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
1806                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
1807                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
1808                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
1809                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
1810                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
1811                 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
1812                 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
1813                 case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
1814                 case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
1815                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
1816                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
1817                 case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
1818                 case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
1819                 case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
1820                 case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
1821                 case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
1822                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
1823                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
1824                 case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
1825                 case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
1826                 case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
1827                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
1828                 case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
1829                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
1830                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
1831                 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
1832                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
1833                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
1834                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:                        return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
1835                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
1836                 case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1837                 case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
1838                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
1839                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
1840                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
1841                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
1842                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
1843                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
1844                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
1845                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
1846                 case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
1847                 case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
1848                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
1849                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
1850                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
1851                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
1852                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
1853                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
1854                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
1855                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:                                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
1856                 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
1857                 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
1858                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
1859                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
1860                 case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1861                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1862                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
1863                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
1864                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
1865                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
1866                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
1867                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
1868                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
1869                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
1870                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
1871                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
1872                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
1873                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
1874                 case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
1875                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
1876                 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
1877                 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
1878                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
1879                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
1880                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
1881                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
1882                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
1883                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
1884                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
1885                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
1886                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
1887                 case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
1888                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
1889                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
1890                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
1891                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
1892                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
1893                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
1894                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
1895                 case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
1896                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
1897                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
1898                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
1899                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
1900                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
1901                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
1902                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
1903                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
1904                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
1905                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
1906                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
1907                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
1908                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
1909                 case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
1910                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
1911                 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
1912                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
1913                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
1914                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
1915                 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
1916                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
1917                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
1918                 case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
1919                 case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
1920                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
1921                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
1922                 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
1923                 case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
1924                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
1925                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
1926                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
1927                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
1928                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
1929                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
1930                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
1931                 case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
1932                 case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
1933                 case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
1934                 case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
1935                 case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
1936                 case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
1937                 case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
1938                 case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
1939                 case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
1940                 case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
1941                 case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
1942                 case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
1943                 case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
1944                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:                                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
1945                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
1946                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
1947                 case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:                                                                                                         return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
1948                 case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:                                                                                                           return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
1949                 case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
1950                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:                                                                                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
1951                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
1952                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
1953                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
1954                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
1955                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
1956                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
1957                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
1958                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
1959                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR";
1960                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
1961                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
1962                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
1963                 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";
1964                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
1965                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
1966                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
1967                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
1968                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
1969                 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";
1970                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
1971                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
1972                 case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
1973                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
1974                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
1975                 case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:                                                                                                      return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
1976                 case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
1977                 case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
1978                 case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
1979                 case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
1980                 case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:                                                                                            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
1981                 case VK_STRUCTURE_TYPE_BUFFER_COPY_2:                                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
1982                 case VK_STRUCTURE_TYPE_IMAGE_COPY_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
1983                 case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
1984                 case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:                                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
1985                 case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:                                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
1986                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
1987                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
1988                 case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:                                                                                        return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
1989                 case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
1990                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
1991                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
1992                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
1993                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
1994                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
1995                 case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
1996                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
1997                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
1998                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
1999                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
2000                 case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:                                                       return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
2001                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
2002                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
2003                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
2004                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
2005                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
2006                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
2007                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
2008                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
2009                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
2010                 case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
2011                 case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2012                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
2013                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2014                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
2015                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
2016                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
2017                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:                                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
2018                 case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
2019                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
2020                 case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
2021                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
2022                 case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:                                                                                      return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
2023                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:                                                      return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
2024                 case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
2025                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
2026                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
2027                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
2028                 case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
2029                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
2030                 case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
2031                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
2032                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT";
2033                 case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:                                                           return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
2034                 case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
2035                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
2036                 case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
2037                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
2038                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
2039                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
2040                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
2041                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
2042                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
2043                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
2044                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
2045                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
2046                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
2047                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
2048                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
2049                 case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:                          return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
2050                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
2051                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
2052                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
2053                 case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:                                                                       return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
2054                 case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
2055                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
2056                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
2057                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
2058                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT";
2059                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
2060                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
2061                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
2062                 case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:                                       return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
2063                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
2064                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
2065                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
2066                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
2067                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
2068                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
2069                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:                                                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
2070                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
2071                 case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
2072                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
2073                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
2074                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
2075                 case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:                                                                            return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
2076                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
2077                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
2078                 case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:                                                                                            return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
2079                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
2080                 case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:                                                                         return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
2081                 default:                                                                                                                                                                        return DE_NULL;
2082         }
2083 }
2084
2085 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
2086 {
2087         switch (value)
2088         {
2089                 case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
2090                 case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
2091                 case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
2092                 case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
2093                 case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
2094                 default:                                                                        return DE_NULL;
2095         }
2096 }
2097
2098 const char* getInternalAllocationTypeName (VkInternalAllocationType value)
2099 {
2100         switch (value)
2101         {
2102                 case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
2103                 default:                                                                                return DE_NULL;
2104         }
2105 }
2106
2107 const char* getSamplerAddressModeName (VkSamplerAddressMode value)
2108 {
2109         switch (value)
2110         {
2111                 case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
2112                 case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
2113                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
2114                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
2115                 case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
2116                 default:                                                                                        return DE_NULL;
2117         }
2118 }
2119
2120 const char* getFilterName (VkFilter value)
2121 {
2122         switch (value)
2123         {
2124                 case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
2125                 case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
2126                 case VK_FILTER_CUBIC_EXT:       return "VK_FILTER_CUBIC_EXT";
2127                 default:                                        return DE_NULL;
2128         }
2129 }
2130
2131 const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
2132 {
2133         switch (value)
2134         {
2135                 case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
2136                 case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
2137                 default:                                                                return DE_NULL;
2138         }
2139 }
2140
2141 const char* getVertexInputRateName (VkVertexInputRate value)
2142 {
2143         switch (value)
2144         {
2145                 case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
2146                 case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
2147                 default:                                                        return DE_NULL;
2148         }
2149 }
2150
2151 tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2152 {
2153         static const tcu::Format::BitDesc s_desc[] =
2154         {
2155                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2156                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,                                                                            "VK_PIPELINE_STAGE_NONE"),
2157                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2158                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2159                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2160                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2161                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2162                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2163                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2164                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2165                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2166                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2167                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2168                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
2169                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2170                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
2171                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2172                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2173                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2174                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2175                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,                                                     "VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"),
2176                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,                                                     "VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"),
2177                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2178                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2179                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2180                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2181                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2182         };
2183         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2184 }
2185
2186 tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2187 {
2188         static const tcu::Format::BitDesc s_desc[] =
2189         {
2190                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2191                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2192                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2193         };
2194         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2195 }
2196
2197 tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2198 {
2199         static const tcu::Format::BitDesc s_desc[] =
2200         {
2201                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,             "VK_SAMPLE_COUNT_1_BIT"),
2202                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,             "VK_SAMPLE_COUNT_2_BIT"),
2203                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,             "VK_SAMPLE_COUNT_4_BIT"),
2204                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,             "VK_SAMPLE_COUNT_8_BIT"),
2205                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,    "VK_SAMPLE_COUNT_16_BIT"),
2206                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,    "VK_SAMPLE_COUNT_32_BIT"),
2207                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,    "VK_SAMPLE_COUNT_64_BIT"),
2208         };
2209         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2210 }
2211
2212 tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
2213 {
2214         static const tcu::Format::BitDesc s_desc[] =
2215         {
2216                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,   "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
2217         };
2218         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2219 }
2220
2221 tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
2222 {
2223         static const tcu::Format::BitDesc s_desc[] =
2224         {
2225                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
2226                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,   "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
2227                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,             "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
2228         };
2229         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2230 }
2231
2232 tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
2233 {
2234         static const tcu::Format::BitDesc s_desc[] =
2235         {
2236                 tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,                       "VK_DEPENDENCY_BY_REGION_BIT"),
2237                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,                      "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
2238                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,            "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
2239                 tcu::Format::BitDesc(VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,       "VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"),
2240         };
2241         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2242 }
2243
2244 const char* getObjectTypeName (VkObjectType value)
2245 {
2246         switch (value)
2247         {
2248                 case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
2249                 case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
2250                 case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
2251                 case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
2252                 case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
2253                 case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
2254                 case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
2255                 case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
2256                 case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
2257                 case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
2258                 case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
2259                 case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
2260                 case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
2261                 case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
2262                 case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
2263                 case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
2264                 case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
2265                 case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
2266                 case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
2267                 case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
2268                 case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
2269                 case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
2270                 case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
2271                 case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
2272                 case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
2273                 case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
2274                 case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
2275                 case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
2276                 case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
2277                 case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
2278                 case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
2279                 case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
2280                 case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
2281                 case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
2282                 case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
2283                 case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
2284                 case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
2285                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
2286                 case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
2287                 case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
2288                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
2289                 case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
2290                 case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
2291                 case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
2292                 case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:                                  return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
2293                 case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:                  return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
2294                 default:                                                                                                return DE_NULL;
2295         }
2296 }
2297
2298 tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2299 {
2300         static const tcu::Format::BitDesc s_desc[] =
2301         {
2302                 tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,   "VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
2303         };
2304         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2305 }
2306
2307 tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
2308 {
2309         static const tcu::Format::BitDesc s_desc[] =
2310         {
2311                 tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,        "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
2312         };
2313         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2314 }
2315
2316 tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
2317 {
2318         static const tcu::Format::BitDesc s_desc[] =
2319         {
2320                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
2321                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
2322                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
2323         };
2324         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2325 }
2326
2327 const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2328 {
2329         switch (value)
2330         {
2331                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2332                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2333                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2334                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:          return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2335                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:          return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2336                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2337                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2338                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:                     return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2339                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:        return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
2340                 default:                                                                                                        return DE_NULL;
2341         }
2342 }
2343
2344 tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
2345 {
2346         static const tcu::Format::BitDesc s_desc[] =
2347         {
2348                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
2349         };
2350         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2351 }
2352
2353 const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
2354 {
2355         switch (value)
2356         {
2357                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
2358                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
2359                 default:                                                                                                                return DE_NULL;
2360         }
2361 }
2362
2363 const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2364 {
2365         switch (value)
2366         {
2367                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2368                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2369                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2370                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2371                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2372                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2373                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2374                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2375                 default:                                                                                        return DE_NULL;
2376         }
2377 }
2378
2379 const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2380 {
2381         switch (value)
2382         {
2383                 case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2384                 case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2385                 default:                                                                                return DE_NULL;
2386         }
2387 }
2388
2389 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
2390 {
2391         static const tcu::Format::BitDesc s_desc[] =
2392         {
2393                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,                                                        "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
2394                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,                                           "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
2395                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                                                           "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
2396                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                                                            "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
2397                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"),
2398                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
2399                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,      "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
2400                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,                                            "VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"),
2401         };
2402         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2403 }
2404
2405 const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
2406 {
2407         switch (value)
2408         {
2409                 case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
2410                 case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
2411                 default:                                                                                                return DE_NULL;
2412         }
2413 }
2414
2415 const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2416 {
2417         switch (value)
2418         {
2419                 case VK_COVERAGE_MODULATION_MODE_NONE_NV:       return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2420                 case VK_COVERAGE_MODULATION_MODE_RGB_NV:        return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2421                 case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:      return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2422                 case VK_COVERAGE_MODULATION_MODE_RGBA_NV:       return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2423                 default:                                                                        return DE_NULL;
2424         }
2425 }
2426
2427 const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2428 {
2429         switch (value)
2430         {
2431                 case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2432                 case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2433                 default:                                                                                return DE_NULL;
2434         }
2435 }
2436
2437 const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2438 {
2439         switch (value)
2440         {
2441                 case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:        return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2442                 default:                                                                                        return DE_NULL;
2443         }
2444 }
2445
2446 const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2447 {
2448         switch (value)
2449         {
2450                 case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2451                 case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2452                 case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2453                 default:                                                                        return DE_NULL;
2454         }
2455 }
2456
2457 const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
2458 {
2459         switch (value)
2460         {
2461                 case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
2462                 case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
2463                 case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
2464                 case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
2465                 default:                                                                        return DE_NULL;
2466         }
2467 }
2468
2469 const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2470 {
2471         switch (value)
2472         {
2473                 case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
2474                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2475                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2476                 case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2477                 default:                                                                                        return DE_NULL;
2478         }
2479 }
2480
2481 const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2482 {
2483         switch (value)
2484         {
2485                 case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2486                 case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2487                 case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2488                 default:                                                                                                        return DE_NULL;
2489         }
2490 }
2491
2492 tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
2493 {
2494         static const tcu::Format::BitDesc s_desc[] =
2495         {
2496                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                              "VK_RESOLVE_MODE_NONE"),
2497                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,   "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
2498                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,               "VK_RESOLVE_MODE_AVERAGE_BIT"),
2499                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                   "VK_RESOLVE_MODE_MIN_BIT"),
2500                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                   "VK_RESOLVE_MODE_MAX_BIT"),
2501         };
2502         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2503 }
2504
2505 tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
2506 {
2507         static const tcu::Format::BitDesc s_desc[] =
2508         {
2509                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                       "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
2510                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,     "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
2511                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                         "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
2512                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,       "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
2513         };
2514         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2515 }
2516
2517 tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
2518 {
2519         static const tcu::Format::BitDesc s_desc[] =
2520         {
2521                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT, "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
2522         };
2523         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2524 }
2525
2526 const char* getSemaphoreTypeName (VkSemaphoreType value)
2527 {
2528         switch (value)
2529         {
2530                 case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
2531                 case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
2532                 default:                                                        return DE_NULL;
2533         }
2534 }
2535
2536 tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
2537 {
2538         static const tcu::Format::BitDesc s_desc[] =
2539         {
2540                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
2541                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
2542         };
2543         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2544 }
2545
2546 tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
2547 {
2548         static const tcu::Format::BitDesc s_desc[] =
2549         {
2550                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
2551                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,                 "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
2552                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                 "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
2553                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                              "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
2554         };
2555         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2556 }
2557
2558 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
2559 {
2560         static const tcu::Format::BitDesc s_desc[] =
2561         {
2562                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
2563                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
2564                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
2565                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
2566                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
2567                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
2568         };
2569         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2570 }
2571
2572 tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
2573 {
2574         static const tcu::Format::BitDesc s_desc[] =
2575         {
2576                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
2577                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
2578         };
2579         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2580 }
2581
2582 const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2583 {
2584         switch (value)
2585         {
2586                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2587                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2588                 default:                                                                                                return DE_NULL;
2589         }
2590 }
2591
2592 const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2593 {
2594         switch (value)
2595         {
2596                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2597                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2598                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2599                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2600                 default:                                                                                                        return DE_NULL;
2601         }
2602 }
2603
2604 const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2605 {
2606         switch (value)
2607         {
2608                 case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2609                 case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2610                 case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2611                 default:                                                                                                return DE_NULL;
2612         }
2613 }
2614
2615 const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2616 {
2617         switch (value)
2618         {
2619                 case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2620                 case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
2621                 case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2622                 default:                                                                return DE_NULL;
2623         }
2624 }
2625
2626 const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2627 {
2628         switch (value)
2629         {
2630                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2631                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2632                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2633                 default:                                                                                                                return DE_NULL;
2634         }
2635 }
2636
2637 const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2638 {
2639         switch (value)
2640         {
2641                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2642                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2643                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2644                 default:                                                                                                                                        return DE_NULL;
2645         }
2646 }
2647
2648 const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2649 {
2650         switch (value)
2651         {
2652                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:                             return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2653                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:                   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2654                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2655                 default:                                                                                                                return DE_NULL;
2656         }
2657 }
2658
2659 const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2660 {
2661         switch (value)
2662         {
2663                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:    return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2664                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:  return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2665                 default:                                                                                                                return DE_NULL;
2666         }
2667 }
2668
2669 const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2670 {
2671         switch (value)
2672         {
2673                 case VK_SHADER_GROUP_SHADER_GENERAL_KHR:                return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2674                 case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:    return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2675                 case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:                return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2676                 case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:   return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2677                 default:                                                                                return DE_NULL;
2678         }
2679 }
2680
2681 const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2682 {
2683         switch (value)
2684         {
2685                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2686                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2687                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2688                 default:                                                                                                return DE_NULL;
2689         }
2690 }
2691
2692 const char* getScopeNVName (VkScopeNV value)
2693 {
2694         switch (value)
2695         {
2696                 case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
2697                 case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
2698                 case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
2699                 case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
2700                 default:                                                return DE_NULL;
2701         }
2702 }
2703
2704 const char* getComponentTypeNVName (VkComponentTypeNV value)
2705 {
2706         switch (value)
2707         {
2708                 case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
2709                 case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
2710                 case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
2711                 case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
2712                 case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
2713                 case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
2714                 case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
2715                 case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
2716                 case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
2717                 case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
2718                 case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
2719                 default:                                                        return DE_NULL;
2720         }
2721 }
2722
2723 tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
2724 {
2725         static const tcu::Format::BitDesc s_desc[] =
2726         {
2727                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
2728                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
2729                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
2730                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
2731         };
2732         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2733 }
2734
2735 tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
2736 {
2737         static const tcu::Format::BitDesc s_desc[] =
2738         {
2739                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,                                                   "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
2740                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,  "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
2741                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,              "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
2742         };
2743         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2744 }
2745
2746 const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
2747 {
2748         switch (value)
2749         {
2750                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
2751                 case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
2752                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
2753                 default:                                                                                                return DE_NULL;
2754         }
2755 }
2756
2757 const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
2758 {
2759         switch (value)
2760         {
2761                 case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
2762                 case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
2763                 case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
2764                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
2765                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
2766                 case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
2767                 case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
2768                 case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
2769                 case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
2770                 case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
2771                 case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
2772                 default:                                                                                                return DE_NULL;
2773         }
2774 }
2775
2776 const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
2777 {
2778         switch (value)
2779         {
2780                 case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
2781                 case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
2782                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
2783                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
2784                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
2785                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
2786                 default:                                                                                        return DE_NULL;
2787         }
2788 }
2789
2790 tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
2791 {
2792         static const tcu::Format::BitDesc s_desc[] =
2793         {
2794                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
2795                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
2796         };
2797         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2798 }
2799
2800 tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
2801 {
2802         static const tcu::Format::BitDesc s_desc[] =
2803         {
2804                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT, "VK_SEMAPHORE_WAIT_ANY_BIT"),
2805         };
2806         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2807 }
2808
2809 const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2810 {
2811         switch (value)
2812         {
2813                 case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2814                 default:                                                                                                                                                                return DE_NULL;
2815         }
2816 }
2817
2818 const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2819 {
2820         switch (value)
2821         {
2822                 case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:  return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2823                 default:                                                                                return DE_NULL;
2824         }
2825 }
2826
2827 const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2828 {
2829         switch (value)
2830         {
2831                 case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2832                 case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2833                 default:                                                                                                        return DE_NULL;
2834         }
2835 }
2836
2837 const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2838 {
2839         switch (value)
2840         {
2841                 case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2842                 case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2843                 default:                                                                                                                        return DE_NULL;
2844         }
2845 }
2846
2847 const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2848 {
2849         switch (value)
2850         {
2851                 case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2852                 case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2853                 case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2854                 case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2855                 case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2856                 default:                                                                                return DE_NULL;
2857         }
2858 }
2859
2860 const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2861 {
2862         switch (value)
2863         {
2864                 case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2865                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2866                 case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2867                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2868                 default:                                                                                                return DE_NULL;
2869         }
2870 }
2871
2872 tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
2873 {
2874         static const tcu::Format::BitDesc s_desc[] =
2875         {
2876                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,                    "VK_TOOL_PURPOSE_VALIDATION_BIT"),
2877                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,                             "VK_TOOL_PURPOSE_PROFILING_BIT"),
2878                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,                               "VK_TOOL_PURPOSE_TRACING_BIT"),
2879                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,   "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
2880                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,    "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
2881                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,   "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
2882                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,             "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
2883         };
2884         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2885 }
2886
2887 const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2888 {
2889         switch (value)
2890         {
2891                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2892                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2893                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2894                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2895                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2896                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2897                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2898                 case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2899                 case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2900                 case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2901                 case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2902                 case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2903                 default:                                                                                                                return DE_NULL;
2904         }
2905 }
2906
2907 const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2908 {
2909         switch (value)
2910         {
2911                 case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2912                 case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2913                 default:                                                                                                return DE_NULL;
2914         }
2915 }
2916
2917 const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
2918 {
2919         switch (value)
2920         {
2921                 case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:                                                                        return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
2922                 case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:                                                            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
2923                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
2924                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
2925                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
2926                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:                                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
2927                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
2928                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:      return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
2929                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
2930                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
2931                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
2932                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
2933                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
2934                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:                                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
2935                 default:                                                                                                                                        return DE_NULL;
2936         }
2937 }
2938
2939 tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
2940 {
2941         static const tcu::Format::BitDesc s_desc[] =
2942         {
2943                 tcu::Format::BitDesc(VK_ACCESS_2_NONE,                                                                                  "VK_ACCESS_2_NONE"),
2944                 tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,                                             "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
2945                 tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,                                                                "VK_ACCESS_2_INDEX_READ_BIT"),
2946                 tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,                                             "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
2947                 tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,                                                              "VK_ACCESS_2_UNIFORM_READ_BIT"),
2948                 tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
2949                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,                                                               "VK_ACCESS_2_SHADER_READ_BIT"),
2950                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,                                                              "VK_ACCESS_2_SHADER_WRITE_BIT"),
2951                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
2952                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,                                    "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
2953                 tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                             "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
2954                 tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                    "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
2955                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,                                                             "VK_ACCESS_2_TRANSFER_READ_BIT"),
2956                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,                                                    "VK_ACCESS_2_TRANSFER_WRITE_BIT"),
2957                 tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,                                                                 "VK_ACCESS_2_HOST_READ_BIT"),
2958                 tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,                                                                "VK_ACCESS_2_HOST_WRITE_BIT"),
2959                 tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,                                                               "VK_ACCESS_2_MEMORY_READ_BIT"),
2960                 tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,                                                              "VK_ACCESS_2_MEMORY_WRITE_BIT"),
2961                 tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,                                "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
2962                 tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,                               "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
2963                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
2964                 tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,                    "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
2965                 tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,                   "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
2966                 tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                  "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
2967                 tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
2968                 tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                             "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
2969                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                              "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
2970                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,               "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
2971                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,              "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
2972                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,                                               "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
2973                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,                                               "VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
2974                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,                                              "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
2975                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
2976                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
2977                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
2978                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
2979                 tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,                               "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
2980                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,                             "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
2981         };
2982         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2983 }
2984
2985 tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
2986 {
2987         static const tcu::Format::BitDesc s_desc[] =
2988         {
2989                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,                                                                          "VK_PIPELINE_STAGE_2_NONE"),
2990                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,                                                       "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
2991                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,                                                     "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
2992                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,                                                      "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
2993                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
2994                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,                       "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
2995                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,            "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
2996                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
2997                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
2998                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,                                      "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
2999                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,                                       "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
3000                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,                           "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
3001                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,                                            "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
3002                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
3003                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,                                            "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
3004                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,                                                                      "VK_PIPELINE_STAGE_2_HOST_BIT"),
3005                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
3006                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
3007                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,                                     "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
3008                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,                         "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3009                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,                                           "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"),
3010                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,                                           "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"),
3011                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,                            "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
3012                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,      "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3013                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                      "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3014                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,                            "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
3015                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,          "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3016                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
3017                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
3018                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,           "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
3019                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,                                                                      "VK_PIPELINE_STAGE_2_COPY_BIT"),
3020                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,                                                           "VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
3021                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,                                                                      "VK_PIPELINE_STAGE_2_BLIT_BIT"),
3022                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,                                                                     "VK_PIPELINE_STAGE_2_CLEAR_BIT"),
3023                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,                                                       "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
3024                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,                            "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
3025                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,                         "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
3026                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"),
3027                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
3028         };
3029         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3030 }
3031
3032 const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
3033 {
3034         switch (value)
3035         {
3036                 case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
3037                 case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
3038                 default:                                                                                return DE_NULL;
3039         }
3040 }
3041
3042 tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
3043 {
3044         static const tcu::Format::BitDesc s_desc[] =
3045         {
3046                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
3047                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,          "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
3048                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,        "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
3049                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
3050                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
3051         };
3052         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3053 }
3054
3055 tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
3056 {
3057         static const tcu::Format::BitDesc s_desc[] =
3058         {
3059                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
3060                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
3061                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
3062                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3063                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
3064                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
3065                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
3066                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,                                                                                                                  "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
3067                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
3068                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                  "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
3069                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
3070                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
3071                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
3072                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,                                                                                                "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
3073                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
3074                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
3075                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
3076                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                   "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
3077                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                              "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
3078                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
3079                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
3080                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,   "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
3081                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
3082                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
3083                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                  "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3084                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                   "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
3085                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
3086                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                    "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
3087                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
3088                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                  "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
3089                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                              "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3090                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
3091                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
3092                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,                                                                                    "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
3093                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,                                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
3094                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
3095                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,                                                                                                               "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
3096                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,                                                                                                   "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
3097                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,                                                                                                "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
3098         };
3099         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3100 }
3101
3102 tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3103 {
3104         static const tcu::Format::BitDesc s_desc[] =
3105         {
3106                 tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,       "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3107                 tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,                                                       "VK_RENDERING_SUSPENDING_BIT"),
3108                 tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,                                                         "VK_RENDERING_RESUMING_BIT"),
3109                 tcu::Format::BitDesc(VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,                      "VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3110         };
3111         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3112 }
3113
3114 tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3115 {
3116         static const tcu::Format::BitDesc s_desc[] =
3117         {
3118                 tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,        "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
3119                 tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,      "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
3120         };
3121         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3122 }
3123
3124 tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3125 {
3126         static const tcu::Format::BitDesc s_desc[] =
3127         {
3128                 tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,        "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"),
3129         };
3130         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3131 }
3132
3133 tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
3134 {
3135         static const tcu::Format::BitDesc s_desc[] =
3136         {
3137                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,                          "VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
3138                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,       "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
3139                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
3140                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,                         "VK_IMAGE_COMPRESSION_DISABLED_EXT"),
3141         };
3142         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3143 }
3144
3145 tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
3146 {
3147         static const tcu::Format::BitDesc s_desc[] =
3148         {
3149                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,          "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
3150                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
3151                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
3152                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
3153                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
3154                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
3155                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
3156                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
3157                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
3158                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
3159                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
3160                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
3161                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
3162                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
3163                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
3164                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
3165                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
3166                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
3167                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
3168                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
3169                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
3170                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
3171                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
3172                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
3173                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
3174         };
3175         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3176 }
3177
3178 tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
3179 {
3180         static const tcu::Format::BitDesc s_desc[] =
3181         {
3182                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
3183                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,   "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
3184                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
3185                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,                 "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
3186                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,               "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
3187                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,    "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
3188         };
3189         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3190 }
3191
3192 const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
3193 {
3194         switch (value)
3195         {
3196                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:                 return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
3197                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:                               return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
3198                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:   return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
3199                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
3200                 default:                                                                                                                                return DE_NULL;
3201         }
3202 }
3203
3204 const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
3205 {
3206         switch (value)
3207         {
3208                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:                  return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
3209                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:                                return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
3210                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:             return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
3211                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:   return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
3212                 default:                                                                                                                                return DE_NULL;
3213         }
3214 }
3215
3216 const char* getColorSpaceKHRName (VkColorSpaceKHR value)
3217 {
3218         switch (value)
3219         {
3220                 case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                         return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
3221                 case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:           return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
3222                 case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:           return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
3223                 case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
3224                 case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:                       return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
3225                 case VK_COLOR_SPACE_BT709_LINEAR_EXT:                           return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
3226                 case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                        return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
3227                 case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                          return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
3228                 case VK_COLOR_SPACE_HDR10_ST2084_EXT:                           return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
3229                 case VK_COLOR_SPACE_DOLBYVISION_EXT:                            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
3230                 case VK_COLOR_SPACE_HDR10_HLG_EXT:                                      return "VK_COLOR_SPACE_HDR10_HLG_EXT";
3231                 case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                        return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
3232                 case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:                     return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
3233                 case VK_COLOR_SPACE_PASS_THROUGH_EXT:                           return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
3234                 case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:        return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
3235                 case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
3236                 default:                                                                                        return DE_NULL;
3237         }
3238 }
3239
3240 tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3241 {
3242         static const tcu::Format::BitDesc s_desc[] =
3243         {
3244                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3245                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3246                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3247                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3248         };
3249         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3250 }
3251
3252 tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3253 {
3254         static const tcu::Format::BitDesc s_desc[] =
3255         {
3256                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3257                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3258                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3259                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3260         };
3261         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3262 }
3263
3264 const char* getPresentModeKHRName (VkPresentModeKHR value)
3265 {
3266         switch (value)
3267         {
3268                 case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
3269                 case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
3270                 case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
3271                 case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
3272                 case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
3273                 case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
3274                 default:                                                                                        return DE_NULL;
3275         }
3276 }
3277
3278 tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3279 {
3280         static const tcu::Format::BitDesc s_desc[] =
3281         {
3282                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3283                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3284                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3285                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3286                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3287                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3288                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3289                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3290                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3291         };
3292         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3293 }
3294
3295 tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3296 {
3297         static const tcu::Format::BitDesc s_desc[] =
3298         {
3299                 tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3300                 tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3301                 tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3302                 tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3303                 tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3304         };
3305         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3306 }
3307
3308 const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
3309 {
3310         switch (value)
3311         {
3312                 case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
3313                 case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
3314                 case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
3315                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
3316                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
3317                 case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
3318                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
3319                 case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
3320                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
3321                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
3322                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
3323                 case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
3324                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
3325                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
3326                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
3327                 case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
3328                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
3329                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
3330                 case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
3331                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
3332                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
3333                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
3334                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
3335                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
3336                 case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
3337                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
3338                 case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
3339                 case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
3340                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
3341                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
3342                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
3343                 case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
3344                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
3345                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
3346                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
3347                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
3348                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
3349                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
3350                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
3351                 default:                                                                                                                        return DE_NULL;
3352         }
3353 }
3354
3355 const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
3356 {
3357         switch (value)
3358         {
3359                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
3360                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
3361                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
3362                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
3363                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
3364                 default:                                                                                                                return DE_NULL;
3365         }
3366 }
3367
3368 const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
3369 {
3370         switch (value)
3371         {
3372                 case VK_RASTERIZATION_ORDER_STRICT_AMD:         return "VK_RASTERIZATION_ORDER_STRICT_AMD";
3373                 case VK_RASTERIZATION_ORDER_RELAXED_AMD:        return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
3374                 default:                                                                        return DE_NULL;
3375         }
3376 }
3377
3378 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3379 {
3380         static const tcu::Format::BitDesc s_desc[] =
3381         {
3382                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,                "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3383                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,    "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3384                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,                 "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3385                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,             "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3386         };
3387         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3388 }
3389
3390 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3391 {
3392         static const tcu::Format::BitDesc s_desc[] =
3393         {
3394                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,  "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3395                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3396                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3397         };
3398         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3399 }
3400
3401 const char* getValidationCheckEXTName (VkValidationCheckEXT value)
3402 {
3403         switch (value)
3404         {
3405                 case VK_VALIDATION_CHECK_ALL_EXT:               return "VK_VALIDATION_CHECK_ALL_EXT";
3406                 case VK_VALIDATION_CHECK_SHADERS_EXT:   return "VK_VALIDATION_CHECK_SHADERS_EXT";
3407                 default:                                                                return DE_NULL;
3408         }
3409 }
3410
3411 const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
3412 {
3413         switch (value)
3414         {
3415                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
3416                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
3417                 case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
3418                 case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
3419                 case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
3420                 default:                                                                                                                                        return DE_NULL;
3421         }
3422 }
3423
3424 const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
3425 {
3426         switch (value)
3427         {
3428                 case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
3429                 case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
3430                 case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
3431                 case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
3432                 case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
3433                 case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
3434                 case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
3435                 case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
3436                 default:                                                                                                                return DE_NULL;
3437         }
3438 }
3439
3440 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3441 {
3442         static const tcu::Format::BitDesc s_desc[] =
3443         {
3444                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3445                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3446                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3447                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3448                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3449                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3450                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3451                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3452                 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"),
3453                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3454                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3455                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3456                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3457         };
3458         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3459 }
3460
3461 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3462 {
3463         static const tcu::Format::BitDesc s_desc[] =
3464         {
3465                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,     "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3466                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3467                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3468         };
3469         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3470 }
3471
3472 tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3473 {
3474         static const tcu::Format::BitDesc s_desc[] =
3475         {
3476                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3477                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3478                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3479                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3480                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3481                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3482         };
3483         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3484 }
3485
3486 tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3487 {
3488         static const tcu::Format::BitDesc s_desc[] =
3489         {
3490                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3491                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3492         };
3493         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3494 }
3495
3496 tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3497 {
3498         static const tcu::Format::BitDesc s_desc[] =
3499         {
3500                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3501         };
3502         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3503 }
3504
3505 tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3506 {
3507         static const tcu::Format::BitDesc s_desc[] =
3508         {
3509                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                       "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3510                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,            "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3511                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,        "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3512                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                         "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3513         };
3514         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3515 }
3516
3517 tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3518 {
3519         static const tcu::Format::BitDesc s_desc[] =
3520         {
3521                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3522                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3523         };
3524         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3525 }
3526
3527 tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3528 {
3529         static const tcu::Format::BitDesc s_desc[] =
3530         {
3531                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
3532         };
3533         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3534 }
3535
3536 tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3537 {
3538         static const tcu::Format::BitDesc s_desc[] =
3539         {
3540                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT, "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3541         };
3542         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3543 }
3544
3545 const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
3546 {
3547         switch (value)
3548         {
3549                 case VK_DISPLAY_POWER_STATE_OFF_EXT:            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
3550                 case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:        return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
3551                 case VK_DISPLAY_POWER_STATE_ON_EXT:                     return "VK_DISPLAY_POWER_STATE_ON_EXT";
3552                 default:                                                                        return DE_NULL;
3553         }
3554 }
3555
3556 const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
3557 {
3558         switch (value)
3559         {
3560                 case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
3561                 default:                                                                                return DE_NULL;
3562         }
3563 }
3564
3565 const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
3566 {
3567         switch (value)
3568         {
3569                 case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
3570                 default:                                                                                return DE_NULL;
3571         }
3572 }
3573
3574 tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3575 {
3576         static const tcu::Format::BitDesc s_desc[] =
3577         {
3578                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3579                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3580                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3581                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3582         };
3583         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3584 }
3585
3586 tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3587 {
3588         static const tcu::Format::BitDesc s_desc[] =
3589         {
3590                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                        "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3591                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                     "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3592                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,      "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3593         };
3594         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3595 }
3596
3597 tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3598 {
3599         static const tcu::Format::BitDesc s_desc[] =
3600         {
3601                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3602                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3603                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3604                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3605         };
3606         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3607 }
3608
3609 tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3610 {
3611         static const tcu::Format::BitDesc s_desc[] =
3612         {
3613                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3614                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3615                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3616         };
3617         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3618 }
3619
3620 tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3621 {
3622         static const tcu::Format::BitDesc s_desc[] =
3623         {
3624                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
3625                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
3626                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3627                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3628                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3629                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3630                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3631                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
3632                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,    "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3633         };
3634         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3635 }
3636
3637 const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
3638 {
3639         switch (value)
3640         {
3641                 case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
3642                 case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
3643                 default:                                                                                return DE_NULL;
3644         }
3645 }
3646
3647 const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
3648 {
3649         switch (value)
3650         {
3651                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
3652                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
3653                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
3654                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
3655                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
3656                 default:                                                                                                return DE_NULL;
3657         }
3658 }
3659
3660 const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
3661 {
3662         switch (value)
3663         {
3664                 case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
3665                 case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
3666                 default:                                                                return DE_NULL;
3667         }
3668 }
3669
3670 const char* getChromaLocationName (VkChromaLocation value)
3671 {
3672         switch (value)
3673         {
3674                 case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
3675                 case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
3676                 default:                                                                return DE_NULL;
3677         }
3678 }
3679
3680 const char* getSamplerReductionModeName (VkSamplerReductionMode value)
3681 {
3682         switch (value)
3683         {
3684                 case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
3685                 case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
3686                 case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
3687                 default:                                                                                        return DE_NULL;
3688         }
3689 }
3690
3691 const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
3692 {
3693         switch (value)
3694         {
3695                 case VK_BLEND_OVERLAP_UNCORRELATED_EXT: return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
3696                 case VK_BLEND_OVERLAP_DISJOINT_EXT:             return "VK_BLEND_OVERLAP_DISJOINT_EXT";
3697                 case VK_BLEND_OVERLAP_CONJOINT_EXT:             return "VK_BLEND_OVERLAP_CONJOINT_EXT";
3698                 default:                                                                return DE_NULL;
3699         }
3700 }
3701
3702 tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3703 {
3704         static const tcu::Format::BitDesc s_desc[] =
3705         {
3706                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3707                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3708                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
3709                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
3710         };
3711         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3712 }
3713
3714 tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
3715 {
3716         static const tcu::Format::BitDesc s_desc[] =
3717         {
3718                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,               "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
3719                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,    "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
3720                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
3721         };
3722         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3723 }
3724
3725 const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
3726 {
3727         switch (value)
3728         {
3729                 case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
3730                 case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
3731                 case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
3732                 case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
3733                 default:                                                                                                        return DE_NULL;
3734         }
3735 }
3736
3737 const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
3738 {
3739         switch (value)
3740         {
3741                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
3742                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
3743                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
3744                 default:                                                                                                return DE_NULL;
3745         }
3746 }
3747
3748 tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
3749 {
3750         static const tcu::Format::BitDesc s_desc[] =
3751         {
3752                 tcu::Format::BitDesc(VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID,       "VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"),
3753         };
3754         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3755 }
3756
3757 const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
3758 {
3759         switch (value)
3760         {
3761                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
3762                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
3763                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
3764                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
3765                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
3766                 default:                                                                                                return DE_NULL;
3767         }
3768 }
3769
3770 tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
3771 {
3772         static const tcu::Format::BitDesc s_desc[] =
3773         {
3774                 tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,   "VK_SUBMIT_PROTECTED_BIT"),
3775         };
3776         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3777 }
3778
3779 tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
3780 {
3781         static const tcu::Format::BitDesc s_desc[] =
3782         {
3783                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,               "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
3784                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
3785                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,                              "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
3786                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
3787         };
3788         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3789 }
3790
3791 const char* getVendorIdName (VkVendorId value)
3792 {
3793         switch (value)
3794         {
3795                 case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
3796                 case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
3797                 case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
3798                 case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
3799                 case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
3800                 case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
3801                 default:                                        return DE_NULL;
3802         }
3803 }
3804
3805 const char* getDriverIdName (VkDriverId value)
3806 {
3807         switch (value)
3808         {
3809                 case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
3810                 case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
3811                 case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
3812                 case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
3813                 case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
3814                 case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
3815                 case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
3816                 case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
3817                 case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
3818                 case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
3819                 case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
3820                 case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
3821                 case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
3822                 case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
3823                 case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
3824                 case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
3825                 case VK_DRIVER_ID_VERISILICON_PROPRIETARY:              return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
3826                 case VK_DRIVER_ID_MESA_TURNIP:                                  return "VK_DRIVER_ID_MESA_TURNIP";
3827                 case VK_DRIVER_ID_MESA_V3DV:                                    return "VK_DRIVER_ID_MESA_V3DV";
3828                 case VK_DRIVER_ID_MESA_PANVK:                                   return "VK_DRIVER_ID_MESA_PANVK";
3829                 case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:                  return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
3830                 case VK_DRIVER_ID_MESA_VENUS:                                   return "VK_DRIVER_ID_MESA_VENUS";
3831                 case VK_DRIVER_ID_MESA_DOZEN:                                   return "VK_DRIVER_ID_MESA_DOZEN";
3832                 default:                                                                                return DE_NULL;
3833         }
3834 }
3835
3836 const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
3837 {
3838         switch (value)
3839         {
3840                 case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
3841                 case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
3842                 case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
3843                 case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
3844                 case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
3845                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
3846                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
3847                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
3848                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
3849                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
3850                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
3851                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
3852                 default:                                                                                                                        return DE_NULL;
3853         }
3854 }
3855
3856 const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
3857 {
3858         switch (value)
3859         {
3860                 case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
3861                 case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
3862                 case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
3863                 case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
3864                 default:                                                                                        return DE_NULL;
3865         }
3866 }
3867
3868 const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
3869 {
3870         switch (value)
3871         {
3872                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
3873                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
3874                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
3875                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
3876                 default:                                                                                                        return DE_NULL;
3877         }
3878 }
3879
3880 tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
3881 {
3882         static const tcu::Format::BitDesc s_desc[] =
3883         {
3884                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_NONE_KHR,                         "VK_VIDEO_CODEC_OPERATION_NONE_KHR"),
3885                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
3886                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
3887                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
3888                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
3889         };
3890         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3891 }
3892
3893 tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
3894 {
3895         static const tcu::Format::BitDesc s_desc[] =
3896         {
3897                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"),
3898                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,    "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
3899                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
3900                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
3901                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
3902         };
3903         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3904 }
3905
3906 tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
3907 {
3908         static const tcu::Format::BitDesc s_desc[] =
3909         {
3910                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,  "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
3911                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,    "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
3912                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
3913                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
3914         };
3915         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3916 }
3917
3918 tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
3919 {
3920         static const tcu::Format::BitDesc s_desc[] =
3921         {
3922                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,                     "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
3923                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,     "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
3924         };
3925         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3926 }
3927
3928 tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
3929 {
3930         static const tcu::Format::BitDesc s_desc[] =
3931         {
3932                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
3933         };
3934         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3935 }
3936
3937 tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
3938 {
3939         static const tcu::Format::BitDesc s_desc[] =
3940         {
3941                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,                                             "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
3942                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,               "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"),
3943                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR, "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR"),
3944         };
3945         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3946 }
3947
3948 const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
3949 {
3950         switch (value)
3951         {
3952                 case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
3953                 case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
3954                 case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
3955                 default:                                                                        return DE_NULL;
3956         }
3957 }
3958
3959 tcu::Format::Bitfield<32> getVideoDecodeUsageFlagsKHRStr (VkVideoDecodeUsageFlagsKHR value)
3960 {
3961         static const tcu::Format::BitDesc s_desc[] =
3962         {
3963                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,                 "VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"),
3964                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR, "VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"),
3965                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,             "VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"),
3966                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,   "VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"),
3967         };
3968         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3969 }
3970
3971 tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
3972 {
3973         static const tcu::Format::BitDesc s_desc[] =
3974         {
3975                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
3976                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
3977         };
3978         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3979 }
3980
3981 tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
3982 {
3983         static const tcu::Format::BitDesc s_desc[] =
3984         {
3985                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,                                               "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
3986                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,  "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"),
3987                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT,    "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"),
3988         };
3989         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3990 }
3991
3992 tcu::Format::Bitfield<32> getVideoEncodeUsageFlagsKHRStr (VkVideoEncodeUsageFlagsKHR value)
3993 {
3994         static const tcu::Format::BitDesc s_desc[] =
3995         {
3996                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,                         "VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"),
3997                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,         "VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"),
3998                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,           "VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"),
3999                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,           "VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"),
4000                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,        "VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"),
4001         };
4002         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4003 }
4004
4005 tcu::Format::Bitfield<32> getVideoEncodeContentFlagsKHRStr (VkVideoEncodeContentFlagsKHR value)
4006 {
4007         static const tcu::Format::BitDesc s_desc[] =
4008         {
4009                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,               "VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"),
4010                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,    "VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"),
4011                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,   "VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"),
4012                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,  "VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"),
4013         };
4014         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4015 }
4016
4017 const char* getVideoEncodeTuningModeKHRName (VkVideoEncodeTuningModeKHR value)
4018 {
4019         switch (value)
4020         {
4021                 case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:                   return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
4022                 case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:              return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
4023                 case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:               return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
4024                 case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR: return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
4025                 case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:                  return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
4026                 default:                                                                                                return DE_NULL;
4027         }
4028 }
4029
4030 tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
4031 {
4032         static const tcu::Format::BitDesc s_desc[] =
4033         {
4034                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,     "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
4035         };
4036         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4037 }
4038
4039 tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4040 {
4041         static const tcu::Format::BitDesc s_desc[] =
4042         {
4043                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4044                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4045                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4046         };
4047         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4048 }
4049
4050 tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
4051 {
4052         static const tcu::Format::BitDesc s_desc[] =
4053         {
4054                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"),
4055                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,             "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"),
4056                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4057                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,   "VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"),
4058                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4059                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4060                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                                  "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4061                 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"),
4062                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"),
4063                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4064                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
4065                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
4066                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4067                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4068                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4069                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4070                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,                "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4071                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4072                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4073                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,    "VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"),
4074                 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"),
4075                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
4076                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
4077                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4078                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4079         };
4080         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4081 }
4082
4083 tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4084 {
4085         static const tcu::Format::BitDesc s_desc[] =
4086         {
4087                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4088                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4089                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4090         };
4091         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4092 }
4093
4094 tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4095 {
4096         static const tcu::Format::BitDesc s_desc[] =
4097         {
4098                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4099                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4100                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4101         };
4102         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4103 }
4104
4105 const char* getVideoEncodeH264RateControlStructureEXTName (VkVideoEncodeH264RateControlStructureEXT value)
4106 {
4107         switch (value)
4108         {
4109                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:   return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4110                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT:              return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4111                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT:    return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4112                 default:                                                                                                                return DE_NULL;
4113         }
4114 }
4115
4116 tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
4117 {
4118         static const tcu::Format::BitDesc s_desc[] =
4119         {
4120                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4121                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4122                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,            "VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"),
4123                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,                                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
4124                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"),
4125                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4126                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
4127                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,          "VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"),
4128                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"),
4129                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
4130                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
4131                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,       "VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"),
4132                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4133                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
4134                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4135                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,                         "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
4136                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"),
4137                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,        "VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"),
4138                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"),
4139                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"),
4140                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"),
4141                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"),
4142                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"),
4143                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
4144                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                                      "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4145                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4146         };
4147         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4148 }
4149
4150 tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
4151 {
4152         static const tcu::Format::BitDesc s_desc[] =
4153         {
4154                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,                     "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
4155                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,     "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4156                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,           "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
4157         };
4158         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4159 }
4160
4161 tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
4162 {
4163         static const tcu::Format::BitDesc s_desc[] =
4164         {
4165                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
4166                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4167                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4168         };
4169         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4170 }
4171
4172 const char* getVideoEncodeH265RateControlStructureEXTName (VkVideoEncodeH265RateControlStructureEXT value)
4173 {
4174         switch (value)
4175         {
4176                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:   return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4177                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT:              return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4178                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT:    return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4179                 default:                                                                                                                return DE_NULL;
4180         }
4181 }
4182
4183 tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
4184 {
4185         static const tcu::Format::BitDesc s_desc[] =
4186         {
4187                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
4188                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
4189                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
4190         };
4191         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4192 }
4193
4194 tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
4195 {
4196         static const tcu::Format::BitDesc s_desc[] =
4197         {
4198                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
4199                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
4200                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
4201                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
4202         };
4203         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4204 }
4205
4206 const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
4207 {
4208         switch (value)
4209         {
4210                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
4211                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
4212                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
4213                 default:                                                                                                                                return DE_NULL;
4214         }
4215 }
4216
4217 const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
4218 {
4219         switch (value)
4220         {
4221                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
4222                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
4223                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
4224                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
4225                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
4226                 default:                                                                                        return DE_NULL;
4227         }
4228 }
4229
4230 const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
4231 {
4232         switch (value)
4233         {
4234                 case STD_VIDEO_H264_PROFILE_IDC_BASELINE:                               return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
4235                 case STD_VIDEO_H264_PROFILE_IDC_MAIN:                                   return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
4236                 case STD_VIDEO_H264_PROFILE_IDC_HIGH:                                   return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
4237                 case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:    return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
4238                 case STD_VIDEO_H264_PROFILE_IDC_INVALID:                                return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
4239                 default:                                                                                                return DE_NULL;
4240         }
4241 }
4242
4243 const char* getdVideoH264LevelName (StdVideoH264Level value)
4244 {
4245         switch (value)
4246         {
4247                 case STD_VIDEO_H264_LEVEL_1_0:          return "STD_VIDEO_H264_LEVEL_1_0";
4248                 case STD_VIDEO_H264_LEVEL_1_1:          return "STD_VIDEO_H264_LEVEL_1_1";
4249                 case STD_VIDEO_H264_LEVEL_1_2:          return "STD_VIDEO_H264_LEVEL_1_2";
4250                 case STD_VIDEO_H264_LEVEL_1_3:          return "STD_VIDEO_H264_LEVEL_1_3";
4251                 case STD_VIDEO_H264_LEVEL_2_0:          return "STD_VIDEO_H264_LEVEL_2_0";
4252                 case STD_VIDEO_H264_LEVEL_2_1:          return "STD_VIDEO_H264_LEVEL_2_1";
4253                 case STD_VIDEO_H264_LEVEL_2_2:          return "STD_VIDEO_H264_LEVEL_2_2";
4254                 case STD_VIDEO_H264_LEVEL_3_0:          return "STD_VIDEO_H264_LEVEL_3_0";
4255                 case STD_VIDEO_H264_LEVEL_3_1:          return "STD_VIDEO_H264_LEVEL_3_1";
4256                 case STD_VIDEO_H264_LEVEL_3_2:          return "STD_VIDEO_H264_LEVEL_3_2";
4257                 case STD_VIDEO_H264_LEVEL_4_0:          return "STD_VIDEO_H264_LEVEL_4_0";
4258                 case STD_VIDEO_H264_LEVEL_4_1:          return "STD_VIDEO_H264_LEVEL_4_1";
4259                 case STD_VIDEO_H264_LEVEL_4_2:          return "STD_VIDEO_H264_LEVEL_4_2";
4260                 case STD_VIDEO_H264_LEVEL_5_0:          return "STD_VIDEO_H264_LEVEL_5_0";
4261                 case STD_VIDEO_H264_LEVEL_5_1:          return "STD_VIDEO_H264_LEVEL_5_1";
4262                 case STD_VIDEO_H264_LEVEL_5_2:          return "STD_VIDEO_H264_LEVEL_5_2";
4263                 case STD_VIDEO_H264_LEVEL_6_0:          return "STD_VIDEO_H264_LEVEL_6_0";
4264                 case STD_VIDEO_H264_LEVEL_6_1:          return "STD_VIDEO_H264_LEVEL_6_1";
4265                 case STD_VIDEO_H264_LEVEL_6_2:          return "STD_VIDEO_H264_LEVEL_6_2";
4266                 case STD_VIDEO_H264_LEVEL_INVALID:      return "STD_VIDEO_H264_LEVEL_INVALID";
4267                 default:                                                        return DE_NULL;
4268         }
4269 }
4270
4271 const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
4272 {
4273         switch (value)
4274         {
4275                 case STD_VIDEO_H264_POC_TYPE_0:                 return "STD_VIDEO_H264_POC_TYPE_0";
4276                 case STD_VIDEO_H264_POC_TYPE_1:                 return "STD_VIDEO_H264_POC_TYPE_1";
4277                 case STD_VIDEO_H264_POC_TYPE_2:                 return "STD_VIDEO_H264_POC_TYPE_2";
4278                 case STD_VIDEO_H264_POC_TYPE_INVALID:   return "STD_VIDEO_H264_POC_TYPE_INVALID";
4279                 default:                                                                return DE_NULL;
4280         }
4281 }
4282
4283 const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
4284 {
4285         switch (value)
4286         {
4287                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
4288                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
4289                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
4290                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
4291                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
4292                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
4293                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
4294                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
4295                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
4296                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
4297                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
4298                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
4299                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
4300                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
4301                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
4302                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
4303                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
4304                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
4305                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
4306                 default:                                                                                        return DE_NULL;
4307         }
4308 }
4309
4310 const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
4311 {
4312         switch (value)
4313         {
4314                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
4315                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
4316                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
4317                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
4318                 default:                                                                                        return DE_NULL;
4319         }
4320 }
4321
4322 const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
4323 {
4324         switch (value)
4325         {
4326                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
4327                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:                return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
4328                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:                             return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
4329                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:                                   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
4330                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:                               return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
4331                 default:                                                                                                                                return DE_NULL;
4332         }
4333 }
4334
4335 const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
4336 {
4337         switch (value)
4338         {
4339                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:                                            return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
4340                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:                      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
4341                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:                       return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
4342                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:                         return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
4343                 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";
4344                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:                                     return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
4345                 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";
4346                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:                                        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
4347                 default:                                                                                                                        return DE_NULL;
4348         }
4349 }
4350
4351 const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
4352 {
4353         switch (value)
4354         {
4355                 case STD_VIDEO_H264_CABAC_INIT_IDC_0:           return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
4356                 case STD_VIDEO_H264_CABAC_INIT_IDC_1:           return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
4357                 case STD_VIDEO_H264_CABAC_INIT_IDC_2:           return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
4358                 case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:     return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
4359                 default:                                                                        return DE_NULL;
4360         }
4361 }
4362
4363 const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
4364 {
4365         switch (value)
4366         {
4367                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:     return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
4368                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
4369                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
4370                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
4371                 default:                                                                                                        return DE_NULL;
4372         }
4373 }
4374
4375 const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
4376 {
4377         switch (value)
4378         {
4379                 case STD_VIDEO_H264_SLICE_TYPE_P:               return "STD_VIDEO_H264_SLICE_TYPE_P";
4380                 case STD_VIDEO_H264_SLICE_TYPE_B:               return "STD_VIDEO_H264_SLICE_TYPE_B";
4381                 case STD_VIDEO_H264_SLICE_TYPE_I:               return "STD_VIDEO_H264_SLICE_TYPE_I";
4382                 case STD_VIDEO_H264_SLICE_TYPE_INVALID: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
4383                 default:                                                                return DE_NULL;
4384         }
4385 }
4386
4387 const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
4388 {
4389         switch (value)
4390         {
4391                 case STD_VIDEO_H264_PICTURE_TYPE_P:                     return "STD_VIDEO_H264_PICTURE_TYPE_P";
4392                 case STD_VIDEO_H264_PICTURE_TYPE_B:                     return "STD_VIDEO_H264_PICTURE_TYPE_B";
4393                 case STD_VIDEO_H264_PICTURE_TYPE_I:                     return "STD_VIDEO_H264_PICTURE_TYPE_I";
4394                 case STD_VIDEO_H264_PICTURE_TYPE_IDR:           return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
4395                 case STD_VIDEO_H264_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
4396                 default:                                                                        return DE_NULL;
4397         }
4398 }
4399
4400 const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
4401 {
4402         switch (value)
4403         {
4404                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
4405                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
4406                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
4407                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:                   return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
4408                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
4409                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:    return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
4410                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:                 return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
4411                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:                  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
4412                 default:                                                                                                return DE_NULL;
4413         }
4414 }
4415
4416 const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
4417 {
4418         switch (value)
4419         {
4420                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:               return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
4421                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:    return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
4422                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:   return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
4423                 default:                                                                                                return DE_NULL;
4424         }
4425 }
4426
4427 const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
4428 {
4429         switch (value)
4430         {
4431                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
4432                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
4433                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
4434                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
4435                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
4436                 default:                                                                                        return DE_NULL;
4437         }
4438 }
4439
4440 const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
4441 {
4442         switch (value)
4443         {
4444                 case STD_VIDEO_H265_PROFILE_IDC_MAIN:                                           return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
4445                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:                                        return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
4446                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:                     return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
4447                 case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:        return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
4448                 case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:                         return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
4449                 case STD_VIDEO_H265_PROFILE_IDC_INVALID:                                        return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
4450                 default:                                                                                                        return DE_NULL;
4451         }
4452 }
4453
4454 const char* getdVideoH265LevelName (StdVideoH265Level value)
4455 {
4456         switch (value)
4457         {
4458                 case STD_VIDEO_H265_LEVEL_1_0:          return "STD_VIDEO_H265_LEVEL_1_0";
4459                 case STD_VIDEO_H265_LEVEL_2_0:          return "STD_VIDEO_H265_LEVEL_2_0";
4460                 case STD_VIDEO_H265_LEVEL_2_1:          return "STD_VIDEO_H265_LEVEL_2_1";
4461                 case STD_VIDEO_H265_LEVEL_3_0:          return "STD_VIDEO_H265_LEVEL_3_0";
4462                 case STD_VIDEO_H265_LEVEL_3_1:          return "STD_VIDEO_H265_LEVEL_3_1";
4463                 case STD_VIDEO_H265_LEVEL_4_0:          return "STD_VIDEO_H265_LEVEL_4_0";
4464                 case STD_VIDEO_H265_LEVEL_4_1:          return "STD_VIDEO_H265_LEVEL_4_1";
4465                 case STD_VIDEO_H265_LEVEL_5_0:          return "STD_VIDEO_H265_LEVEL_5_0";
4466                 case STD_VIDEO_H265_LEVEL_5_1:          return "STD_VIDEO_H265_LEVEL_5_1";
4467                 case STD_VIDEO_H265_LEVEL_5_2:          return "STD_VIDEO_H265_LEVEL_5_2";
4468                 case STD_VIDEO_H265_LEVEL_6_0:          return "STD_VIDEO_H265_LEVEL_6_0";
4469                 case STD_VIDEO_H265_LEVEL_6_1:          return "STD_VIDEO_H265_LEVEL_6_1";
4470                 case STD_VIDEO_H265_LEVEL_6_2:          return "STD_VIDEO_H265_LEVEL_6_2";
4471                 case STD_VIDEO_H265_LEVEL_INVALID:      return "STD_VIDEO_H265_LEVEL_INVALID";
4472                 default:                                                        return DE_NULL;
4473         }
4474 }
4475
4476 const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
4477 {
4478         switch (value)
4479         {
4480                 case STD_VIDEO_H265_SLICE_TYPE_B:               return "STD_VIDEO_H265_SLICE_TYPE_B";
4481                 case STD_VIDEO_H265_SLICE_TYPE_P:               return "STD_VIDEO_H265_SLICE_TYPE_P";
4482                 case STD_VIDEO_H265_SLICE_TYPE_I:               return "STD_VIDEO_H265_SLICE_TYPE_I";
4483                 case STD_VIDEO_H265_SLICE_TYPE_INVALID: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
4484                 default:                                                                return DE_NULL;
4485         }
4486 }
4487
4488 const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
4489 {
4490         switch (value)
4491         {
4492                 case STD_VIDEO_H265_PICTURE_TYPE_P:                     return "STD_VIDEO_H265_PICTURE_TYPE_P";
4493                 case STD_VIDEO_H265_PICTURE_TYPE_B:                     return "STD_VIDEO_H265_PICTURE_TYPE_B";
4494                 case STD_VIDEO_H265_PICTURE_TYPE_I:                     return "STD_VIDEO_H265_PICTURE_TYPE_I";
4495                 case STD_VIDEO_H265_PICTURE_TYPE_IDR:           return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
4496                 case STD_VIDEO_H265_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
4497                 default:                                                                        return DE_NULL;
4498         }
4499 }
4500
4501 tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4502 {
4503         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4504 }
4505
4506 tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4507 {
4508         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4509 }
4510
4511 tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4512 {
4513         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4514 }
4515
4516 tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4517 {
4518         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4519 }
4520
4521 tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4522 {
4523         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4524 }
4525
4526 tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4527 {
4528         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4529 }
4530
4531 tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4532 {
4533         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4534 }
4535
4536 tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4537 {
4538         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4539 }
4540
4541 tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4542 {
4543         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4544 }
4545
4546 tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4547 {
4548         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4549 }
4550
4551 tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4552 {
4553         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4554 }
4555
4556 tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
4557 {
4558         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4559 }
4560
4561 tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4562 {
4563         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4564 }
4565
4566 tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4567 {
4568         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4569 }
4570
4571 tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
4572 {
4573         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4574 }
4575
4576 tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4577 {
4578         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4579 }
4580
4581 tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
4582 {
4583         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4584 }
4585
4586 tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
4587 {
4588         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4589 }
4590
4591 tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
4592 {
4593         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4594 }
4595
4596 tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
4597 {
4598         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4599 }
4600
4601 tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
4602 {
4603         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4604 }
4605
4606 tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4607 {
4608         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4609 }
4610
4611 tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4612 {
4613         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4614 }
4615
4616 tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4617 {
4618         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4619 }
4620
4621 tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4622 {
4623         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4624 }
4625
4626 tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4627 {
4628         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4629 }
4630
4631 tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4632 {
4633         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4634 }
4635
4636 tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4637 {
4638         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4639 }
4640
4641 tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4642 {
4643         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4644 }
4645
4646 tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
4647 {
4648         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4649 }
4650
4651 tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4652 {
4653         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4654 }
4655
4656 tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4657 {
4658         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4659 }
4660
4661 tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4662 {
4663         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4664 }
4665
4666 tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4667 {
4668         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4669 }
4670
4671 tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4672 {
4673         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4674 }
4675
4676 tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4677 {
4678         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4679 }
4680
4681 tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
4682 {
4683         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4684 }
4685
4686 tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4687 {
4688         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4689 }
4690
4691 tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
4692 {
4693         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4694 }
4695
4696 tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
4697 {
4698         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4699 }
4700
4701 tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
4702 {
4703         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4704 }
4705
4706 tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
4707 {
4708         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4709 }
4710
4711 tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
4712 {
4713         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4714 }
4715
4716 tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
4717 {
4718         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4719 }
4720
4721 tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
4722 {
4723         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4724 }
4725
4726 tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
4727 {
4728         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4729 }
4730
4731 tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
4732 {
4733         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4734 }
4735
4736 tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
4737 {
4738         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4739 }
4740
4741 tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
4742 {
4743         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4744 }
4745
4746 tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
4747 {
4748         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4749 }
4750
4751 tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
4752 {
4753         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4754 }
4755
4756 tcu::Format::Bitfield<32> getVideoSessionParametersCreateFlagsKHRStr (VkVideoSessionParametersCreateFlagsKHR value)
4757 {
4758         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4759 }
4760
4761 tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
4762 {
4763         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4764 }
4765
4766 tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
4767 {
4768         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4769 }
4770
4771 tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
4772 {
4773         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4774 }
4775
4776 tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
4777 {
4778         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4779 }
4780
4781 tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
4782 {
4783         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4784 }
4785
4786 std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
4787 {
4788         s << "VkBaseOutStructure = {\n";
4789         s << "\tsType = " << value.sType << '\n';
4790         s << "\tpNext = " << value.pNext << '\n';
4791         s << '}';
4792         return s;
4793 }
4794
4795 std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
4796 {
4797         s << "VkBaseInStructure = {\n";
4798         s << "\tsType = " << value.sType << '\n';
4799         s << "\tpNext = " << value.pNext << '\n';
4800         s << '}';
4801         return s;
4802 }
4803
4804 std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
4805 {
4806         s << "VkOffset2D = {\n";
4807         s << "\tx = " << value.x << '\n';
4808         s << "\ty = " << value.y << '\n';
4809         s << '}';
4810         return s;
4811 }
4812
4813 std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
4814 {
4815         s << "VkOffset3D = {\n";
4816         s << "\tx = " << value.x << '\n';
4817         s << "\ty = " << value.y << '\n';
4818         s << "\tz = " << value.z << '\n';
4819         s << '}';
4820         return s;
4821 }
4822
4823 std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
4824 {
4825         s << "VkExtent2D = {\n";
4826         s << "\twidth = " << value.width << '\n';
4827         s << "\theight = " << value.height << '\n';
4828         s << '}';
4829         return s;
4830 }
4831
4832 std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
4833 {
4834         s << "VkExtent3D = {\n";
4835         s << "\twidth = " << value.width << '\n';
4836         s << "\theight = " << value.height << '\n';
4837         s << "\tdepth = " << value.depth << '\n';
4838         s << '}';
4839         return s;
4840 }
4841
4842 std::ostream& operator<< (std::ostream& s, const VkViewport& value)
4843 {
4844         s << "VkViewport = {\n";
4845         s << "\tx = " << value.x << '\n';
4846         s << "\ty = " << value.y << '\n';
4847         s << "\twidth = " << value.width << '\n';
4848         s << "\theight = " << value.height << '\n';
4849         s << "\tminDepth = " << value.minDepth << '\n';
4850         s << "\tmaxDepth = " << value.maxDepth << '\n';
4851         s << '}';
4852         return s;
4853 }
4854
4855 std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
4856 {
4857         s << "VkRect2D = {\n";
4858         s << "\toffset = " << value.offset << '\n';
4859         s << "\textent = " << value.extent << '\n';
4860         s << '}';
4861         return s;
4862 }
4863
4864 std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
4865 {
4866         s << "VkClearRect = {\n";
4867         s << "\trect = " << value.rect << '\n';
4868         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
4869         s << "\tlayerCount = " << value.layerCount << '\n';
4870         s << '}';
4871         return s;
4872 }
4873
4874 std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
4875 {
4876         s << "VkComponentMapping = {\n";
4877         s << "\tr = " << value.r << '\n';
4878         s << "\tg = " << value.g << '\n';
4879         s << "\tb = " << value.b << '\n';
4880         s << "\ta = " << value.a << '\n';
4881         s << '}';
4882         return s;
4883 }
4884
4885 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
4886 {
4887         s << "VkPhysicalDeviceProperties = {\n";
4888         s << "\tapiVersion = " << value.apiVersion << '\n';
4889         s << "\tdriverVersion = " << value.driverVersion << '\n';
4890         s << "\tvendorID = " << value.vendorID << '\n';
4891         s << "\tdeviceID = " << value.deviceID << '\n';
4892         s << "\tdeviceType = " << value.deviceType << '\n';
4893         s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
4894         s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
4895         s << "\tlimits = " << value.limits << '\n';
4896         s << "\tsparseProperties = " << value.sparseProperties << '\n';
4897         s << '}';
4898         return s;
4899 }
4900
4901 std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
4902 {
4903         s << "VkExtensionProperties = {\n";
4904         s << "\textensionName = " << (const char*)value.extensionName << '\n';
4905         s << "\tspecVersion = " << value.specVersion << '\n';
4906         s << '}';
4907         return s;
4908 }
4909
4910 std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
4911 {
4912         s << "VkLayerProperties = {\n";
4913         s << "\tlayerName = " << (const char*)value.layerName << '\n';
4914         s << "\tspecVersion = " << value.specVersion << '\n';
4915         s << "\timplementationVersion = " << value.implementationVersion << '\n';
4916         s << "\tdescription = " << (const char*)value.description << '\n';
4917         s << '}';
4918         return s;
4919 }
4920
4921 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
4922 {
4923         s << "VkApplicationInfo = {\n";
4924         s << "\tsType = " << value.sType << '\n';
4925         s << "\tpNext = " << value.pNext << '\n';
4926         s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
4927         s << "\tapplicationVersion = " << value.applicationVersion << '\n';
4928         s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
4929         s << "\tengineVersion = " << value.engineVersion << '\n';
4930         s << "\tapiVersion = " << value.apiVersion << '\n';
4931         s << '}';
4932         return s;
4933 }
4934
4935 std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
4936 {
4937         s << "VkAllocationCallbacks = {\n";
4938         s << "\tpUserData = " << value.pUserData << '\n';
4939         s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
4940         s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
4941         s << "\tpfnFree = " << value.pfnFree << '\n';
4942         s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
4943         s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
4944         s << '}';
4945         return s;
4946 }
4947
4948 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
4949 {
4950         s << "VkDeviceQueueCreateInfo = {\n";
4951         s << "\tsType = " << value.sType << '\n';
4952         s << "\tpNext = " << value.pNext << '\n';
4953         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
4954         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
4955         s << "\tqueueCount = " << value.queueCount << '\n';
4956         s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
4957         s << '}';
4958         return s;
4959 }
4960
4961 std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
4962 {
4963         s << "VkDeviceCreateInfo = {\n";
4964         s << "\tsType = " << value.sType << '\n';
4965         s << "\tpNext = " << value.pNext << '\n';
4966         s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
4967         s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
4968         s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
4969         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4970         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4971         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4972         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4973         s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
4974         s << '}';
4975         return s;
4976 }
4977
4978 std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
4979 {
4980         s << "VkInstanceCreateInfo = {\n";
4981         s << "\tsType = " << value.sType << '\n';
4982         s << "\tpNext = " << value.pNext << '\n';
4983         s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
4984         s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
4985         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4986         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4987         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4988         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4989         s << '}';
4990         return s;
4991 }
4992
4993 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
4994 {
4995         s << "VkQueueFamilyProperties = {\n";
4996         s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
4997         s << "\tqueueCount = " << value.queueCount << '\n';
4998         s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
4999         s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5000         s << '}';
5001         return s;
5002 }
5003
5004 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5005 {
5006         s << "VkPhysicalDeviceMemoryProperties = {\n";
5007         s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5008         s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5009         s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5010         s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5011         s << '}';
5012         return s;
5013 }
5014
5015 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5016 {
5017         s << "VkMemoryAllocateInfo = {\n";
5018         s << "\tsType = " << value.sType << '\n';
5019         s << "\tpNext = " << value.pNext << '\n';
5020         s << "\tallocationSize = " << value.allocationSize << '\n';
5021         s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5022         s << '}';
5023         return s;
5024 }
5025
5026 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5027 {
5028         s << "VkMemoryRequirements = {\n";
5029         s << "\tsize = " << value.size << '\n';
5030         s << "\talignment = " << value.alignment << '\n';
5031         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5032         s << '}';
5033         return s;
5034 }
5035
5036 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5037 {
5038         s << "VkSparseImageFormatProperties = {\n";
5039         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5040         s << "\timageGranularity = " << value.imageGranularity << '\n';
5041         s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5042         s << '}';
5043         return s;
5044 }
5045
5046 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5047 {
5048         s << "VkSparseImageMemoryRequirements = {\n";
5049         s << "\tformatProperties = " << value.formatProperties << '\n';
5050         s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5051         s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5052         s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5053         s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5054         s << '}';
5055         return s;
5056 }
5057
5058 std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
5059 {
5060         s << "VkMemoryType = {\n";
5061         s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
5062         s << "\theapIndex = " << value.heapIndex << '\n';
5063         s << '}';
5064         return s;
5065 }
5066
5067 std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
5068 {
5069         s << "VkMemoryHeap = {\n";
5070         s << "\tsize = " << value.size << '\n';
5071         s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
5072         s << '}';
5073         return s;
5074 }
5075
5076 std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
5077 {
5078         s << "VkMappedMemoryRange = {\n";
5079         s << "\tsType = " << value.sType << '\n';
5080         s << "\tpNext = " << value.pNext << '\n';
5081         s << "\tmemory = " << value.memory << '\n';
5082         s << "\toffset = " << value.offset << '\n';
5083         s << "\tsize = " << value.size << '\n';
5084         s << '}';
5085         return s;
5086 }
5087
5088 std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
5089 {
5090         s << "VkFormatProperties = {\n";
5091         s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
5092         s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
5093         s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
5094         s << '}';
5095         return s;
5096 }
5097
5098 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
5099 {
5100         s << "VkImageFormatProperties = {\n";
5101         s << "\tmaxExtent = " << value.maxExtent << '\n';
5102         s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
5103         s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
5104         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
5105         s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
5106         s << '}';
5107         return s;
5108 }
5109
5110 std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5111 {
5112         s << "VkDescriptorBufferInfo = {\n";
5113         s << "\tbuffer = " << value.buffer << '\n';
5114         s << "\toffset = " << value.offset << '\n';
5115         s << "\trange = " << value.range << '\n';
5116         s << '}';
5117         return s;
5118 }
5119
5120 std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5121 {
5122         s << "VkDescriptorImageInfo = {\n";
5123         s << "\tsampler = " << value.sampler << '\n';
5124         s << "\timageView = " << value.imageView << '\n';
5125         s << "\timageLayout = " << value.imageLayout << '\n';
5126         s << '}';
5127         return s;
5128 }
5129
5130 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5131 {
5132         s << "VkWriteDescriptorSet = {\n";
5133         s << "\tsType = " << value.sType << '\n';
5134         s << "\tpNext = " << value.pNext << '\n';
5135         s << "\tdstSet = " << value.dstSet << '\n';
5136         s << "\tdstBinding = " << value.dstBinding << '\n';
5137         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5138         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5139         s << "\tdescriptorType = " << value.descriptorType << '\n';
5140         s << "\tpImageInfo = " << value.pImageInfo << '\n';
5141         s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5142         s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5143         s << '}';
5144         return s;
5145 }
5146
5147 std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5148 {
5149         s << "VkCopyDescriptorSet = {\n";
5150         s << "\tsType = " << value.sType << '\n';
5151         s << "\tpNext = " << value.pNext << '\n';
5152         s << "\tsrcSet = " << value.srcSet << '\n';
5153         s << "\tsrcBinding = " << value.srcBinding << '\n';
5154         s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5155         s << "\tdstSet = " << value.dstSet << '\n';
5156         s << "\tdstBinding = " << value.dstBinding << '\n';
5157         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5158         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5159         s << '}';
5160         return s;
5161 }
5162
5163 std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5164 {
5165         s << "VkBufferCreateInfo = {\n";
5166         s << "\tsType = " << value.sType << '\n';
5167         s << "\tpNext = " << value.pNext << '\n';
5168         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5169         s << "\tsize = " << value.size << '\n';
5170         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5171         s << "\tsharingMode = " << value.sharingMode << '\n';
5172         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5173         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5174         s << '}';
5175         return s;
5176 }
5177
5178 std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5179 {
5180         s << "VkBufferViewCreateInfo = {\n";
5181         s << "\tsType = " << value.sType << '\n';
5182         s << "\tpNext = " << value.pNext << '\n';
5183         s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5184         s << "\tbuffer = " << value.buffer << '\n';
5185         s << "\tformat = " << value.format << '\n';
5186         s << "\toffset = " << value.offset << '\n';
5187         s << "\trange = " << value.range << '\n';
5188         s << '}';
5189         return s;
5190 }
5191
5192 std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5193 {
5194         s << "VkImageSubresource = {\n";
5195         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5196         s << "\tmipLevel = " << value.mipLevel << '\n';
5197         s << "\tarrayLayer = " << value.arrayLayer << '\n';
5198         s << '}';
5199         return s;
5200 }
5201
5202 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
5203 {
5204         s << "VkImageSubresourceLayers = {\n";
5205         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5206         s << "\tmipLevel = " << value.mipLevel << '\n';
5207         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5208         s << "\tlayerCount = " << value.layerCount << '\n';
5209         s << '}';
5210         return s;
5211 }
5212
5213 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
5214 {
5215         s << "VkImageSubresourceRange = {\n";
5216         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5217         s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
5218         s << "\tlevelCount = " << value.levelCount << '\n';
5219         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5220         s << "\tlayerCount = " << value.layerCount << '\n';
5221         s << '}';
5222         return s;
5223 }
5224
5225 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
5226 {
5227         s << "VkMemoryBarrier = {\n";
5228         s << "\tsType = " << value.sType << '\n';
5229         s << "\tpNext = " << value.pNext << '\n';
5230         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5231         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5232         s << '}';
5233         return s;
5234 }
5235
5236 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
5237 {
5238         s << "VkBufferMemoryBarrier = {\n";
5239         s << "\tsType = " << value.sType << '\n';
5240         s << "\tpNext = " << value.pNext << '\n';
5241         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5242         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5243         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5244         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5245         s << "\tbuffer = " << value.buffer << '\n';
5246         s << "\toffset = " << value.offset << '\n';
5247         s << "\tsize = " << value.size << '\n';
5248         s << '}';
5249         return s;
5250 }
5251
5252 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
5253 {
5254         s << "VkImageMemoryBarrier = {\n";
5255         s << "\tsType = " << value.sType << '\n';
5256         s << "\tpNext = " << value.pNext << '\n';
5257         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5258         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5259         s << "\toldLayout = " << value.oldLayout << '\n';
5260         s << "\tnewLayout = " << value.newLayout << '\n';
5261         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5262         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5263         s << "\timage = " << value.image << '\n';
5264         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5265         s << '}';
5266         return s;
5267 }
5268
5269 std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5270 {
5271         s << "VkImageCreateInfo = {\n";
5272         s << "\tsType = " << value.sType << '\n';
5273         s << "\tpNext = " << value.pNext << '\n';
5274         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5275         s << "\timageType = " << value.imageType << '\n';
5276         s << "\tformat = " << value.format << '\n';
5277         s << "\textent = " << value.extent << '\n';
5278         s << "\tmipLevels = " << value.mipLevels << '\n';
5279         s << "\tarrayLayers = " << value.arrayLayers << '\n';
5280         s << "\tsamples = " << value.samples << '\n';
5281         s << "\ttiling = " << value.tiling << '\n';
5282         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5283         s << "\tsharingMode = " << value.sharingMode << '\n';
5284         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5285         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5286         s << "\tinitialLayout = " << value.initialLayout << '\n';
5287         s << '}';
5288         return s;
5289 }
5290
5291 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5292 {
5293         s << "VkSubresourceLayout = {\n";
5294         s << "\toffset = " << value.offset << '\n';
5295         s << "\tsize = " << value.size << '\n';
5296         s << "\trowPitch = " << value.rowPitch << '\n';
5297         s << "\tarrayPitch = " << value.arrayPitch << '\n';
5298         s << "\tdepthPitch = " << value.depthPitch << '\n';
5299         s << '}';
5300         return s;
5301 }
5302
5303 std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5304 {
5305         s << "VkImageViewCreateInfo = {\n";
5306         s << "\tsType = " << value.sType << '\n';
5307         s << "\tpNext = " << value.pNext << '\n';
5308         s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5309         s << "\timage = " << value.image << '\n';
5310         s << "\tviewType = " << value.viewType << '\n';
5311         s << "\tformat = " << value.format << '\n';
5312         s << "\tcomponents = " << value.components << '\n';
5313         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5314         s << '}';
5315         return s;
5316 }
5317
5318 std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
5319 {
5320         s << "VkBufferCopy = {\n";
5321         s << "\tsrcOffset = " << value.srcOffset << '\n';
5322         s << "\tdstOffset = " << value.dstOffset << '\n';
5323         s << "\tsize = " << value.size << '\n';
5324         s << '}';
5325         return s;
5326 }
5327
5328 std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5329 {
5330         s << "VkSparseMemoryBind = {\n";
5331         s << "\tresourceOffset = " << value.resourceOffset << '\n';
5332         s << "\tsize = " << value.size << '\n';
5333         s << "\tmemory = " << value.memory << '\n';
5334         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5335         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5336         s << '}';
5337         return s;
5338 }
5339
5340 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5341 {
5342         s << "VkSparseImageMemoryBind = {\n";
5343         s << "\tsubresource = " << value.subresource << '\n';
5344         s << "\toffset = " << value.offset << '\n';
5345         s << "\textent = " << value.extent << '\n';
5346         s << "\tmemory = " << value.memory << '\n';
5347         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5348         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5349         s << '}';
5350         return s;
5351 }
5352
5353 std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5354 {
5355         s << "VkSparseBufferMemoryBindInfo = {\n";
5356         s << "\tbuffer = " << value.buffer << '\n';
5357         s << "\tbindCount = " << value.bindCount << '\n';
5358         s << "\tpBinds = " << value.pBinds << '\n';
5359         s << '}';
5360         return s;
5361 }
5362
5363 std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5364 {
5365         s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5366         s << "\timage = " << value.image << '\n';
5367         s << "\tbindCount = " << value.bindCount << '\n';
5368         s << "\tpBinds = " << value.pBinds << '\n';
5369         s << '}';
5370         return s;
5371 }
5372
5373 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5374 {
5375         s << "VkSparseImageMemoryBindInfo = {\n";
5376         s << "\timage = " << value.image << '\n';
5377         s << "\tbindCount = " << value.bindCount << '\n';
5378         s << "\tpBinds = " << value.pBinds << '\n';
5379         s << '}';
5380         return s;
5381 }
5382
5383 std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5384 {
5385         s << "VkBindSparseInfo = {\n";
5386         s << "\tsType = " << value.sType << '\n';
5387         s << "\tpNext = " << value.pNext << '\n';
5388         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5389         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5390         s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5391         s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5392         s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5393         s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5394         s << "\timageBindCount = " << value.imageBindCount << '\n';
5395         s << "\tpImageBinds = " << value.pImageBinds << '\n';
5396         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5397         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5398         s << '}';
5399         return s;
5400 }
5401
5402 std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
5403 {
5404         s << "VkImageCopy = {\n";
5405         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5406         s << "\tsrcOffset = " << value.srcOffset << '\n';
5407         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5408         s << "\tdstOffset = " << value.dstOffset << '\n';
5409         s << "\textent = " << value.extent << '\n';
5410         s << '}';
5411         return s;
5412 }
5413
5414 std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
5415 {
5416         s << "VkImageBlit = {\n";
5417         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5418         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
5419         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5420         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
5421         s << '}';
5422         return s;
5423 }
5424
5425 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
5426 {
5427         s << "VkBufferImageCopy = {\n";
5428         s << "\tbufferOffset = " << value.bufferOffset << '\n';
5429         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5430         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5431         s << "\timageSubresource = " << value.imageSubresource << '\n';
5432         s << "\timageOffset = " << value.imageOffset << '\n';
5433         s << "\timageExtent = " << value.imageExtent << '\n';
5434         s << '}';
5435         return s;
5436 }
5437
5438 std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
5439 {
5440         s << "VkImageResolve = {\n";
5441         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5442         s << "\tsrcOffset = " << value.srcOffset << '\n';
5443         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5444         s << "\tdstOffset = " << value.dstOffset << '\n';
5445         s << "\textent = " << value.extent << '\n';
5446         s << '}';
5447         return s;
5448 }
5449
5450 std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5451 {
5452         s << "VkShaderModuleCreateInfo = {\n";
5453         s << "\tsType = " << value.sType << '\n';
5454         s << "\tpNext = " << value.pNext << '\n';
5455         s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5456         s << "\tcodeSize = " << value.codeSize << '\n';
5457         s << "\tpCode = " << value.pCode << '\n';
5458         s << '}';
5459         return s;
5460 }
5461
5462 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5463 {
5464         s << "VkDescriptorSetLayoutBinding = {\n";
5465         s << "\tbinding = " << value.binding << '\n';
5466         s << "\tdescriptorType = " << value.descriptorType << '\n';
5467         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5468         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5469         s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5470         s << '}';
5471         return s;
5472 }
5473
5474 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5475 {
5476         s << "VkDescriptorSetLayoutCreateInfo = {\n";
5477         s << "\tsType = " << value.sType << '\n';
5478         s << "\tpNext = " << value.pNext << '\n';
5479         s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5480         s << "\tbindingCount = " << value.bindingCount << '\n';
5481         s << "\tpBindings = " << value.pBindings << '\n';
5482         s << '}';
5483         return s;
5484 }
5485
5486 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5487 {
5488         s << "VkDescriptorPoolSize = {\n";
5489         s << "\ttype = " << value.type << '\n';
5490         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5491         s << '}';
5492         return s;
5493 }
5494
5495 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5496 {
5497         s << "VkDescriptorPoolCreateInfo = {\n";
5498         s << "\tsType = " << value.sType << '\n';
5499         s << "\tpNext = " << value.pNext << '\n';
5500         s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5501         s << "\tmaxSets = " << value.maxSets << '\n';
5502         s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5503         s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5504         s << '}';
5505         return s;
5506 }
5507
5508 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5509 {
5510         s << "VkDescriptorSetAllocateInfo = {\n";
5511         s << "\tsType = " << value.sType << '\n';
5512         s << "\tpNext = " << value.pNext << '\n';
5513         s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5514         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5515         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5516         s << '}';
5517         return s;
5518 }
5519
5520 std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5521 {
5522         s << "VkSpecializationMapEntry = {\n";
5523         s << "\tconstantID = " << value.constantID << '\n';
5524         s << "\toffset = " << value.offset << '\n';
5525         s << "\tsize = " << value.size << '\n';
5526         s << '}';
5527         return s;
5528 }
5529
5530 std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5531 {
5532         s << "VkSpecializationInfo = {\n";
5533         s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5534         s << "\tpMapEntries = " << value.pMapEntries << '\n';
5535         s << "\tdataSize = " << value.dataSize << '\n';
5536         s << "\tpData = " << value.pData << '\n';
5537         s << '}';
5538         return s;
5539 }
5540
5541 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5542 {
5543         s << "VkPipelineShaderStageCreateInfo = {\n";
5544         s << "\tsType = " << value.sType << '\n';
5545         s << "\tpNext = " << value.pNext << '\n';
5546         s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5547         s << "\tstage = " << value.stage << '\n';
5548         s << "\tmodule = " << value.module << '\n';
5549         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5550         s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5551         s << '}';
5552         return s;
5553 }
5554
5555 std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5556 {
5557         s << "VkComputePipelineCreateInfo = {\n";
5558         s << "\tsType = " << value.sType << '\n';
5559         s << "\tpNext = " << value.pNext << '\n';
5560         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5561         s << "\tstage = " << value.stage << '\n';
5562         s << "\tlayout = " << value.layout << '\n';
5563         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5564         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5565         s << '}';
5566         return s;
5567 }
5568
5569 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5570 {
5571         s << "VkVertexInputBindingDescription = {\n";
5572         s << "\tbinding = " << value.binding << '\n';
5573         s << "\tstride = " << value.stride << '\n';
5574         s << "\tinputRate = " << value.inputRate << '\n';
5575         s << '}';
5576         return s;
5577 }
5578
5579 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5580 {
5581         s << "VkVertexInputAttributeDescription = {\n";
5582         s << "\tlocation = " << value.location << '\n';
5583         s << "\tbinding = " << value.binding << '\n';
5584         s << "\tformat = " << value.format << '\n';
5585         s << "\toffset = " << value.offset << '\n';
5586         s << '}';
5587         return s;
5588 }
5589
5590 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5591 {
5592         s << "VkPipelineVertexInputStateCreateInfo = {\n";
5593         s << "\tsType = " << value.sType << '\n';
5594         s << "\tpNext = " << value.pNext << '\n';
5595         s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5596         s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5597         s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5598         s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5599         s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5600         s << '}';
5601         return s;
5602 }
5603
5604 std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5605 {
5606         s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5607         s << "\tsType = " << value.sType << '\n';
5608         s << "\tpNext = " << value.pNext << '\n';
5609         s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5610         s << "\ttopology = " << value.topology << '\n';
5611         s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5612         s << '}';
5613         return s;
5614 }
5615
5616 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5617 {
5618         s << "VkPipelineTessellationStateCreateInfo = {\n";
5619         s << "\tsType = " << value.sType << '\n';
5620         s << "\tpNext = " << value.pNext << '\n';
5621         s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5622         s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5623         s << '}';
5624         return s;
5625 }
5626
5627 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5628 {
5629         s << "VkPipelineViewportStateCreateInfo = {\n";
5630         s << "\tsType = " << value.sType << '\n';
5631         s << "\tpNext = " << value.pNext << '\n';
5632         s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5633         s << "\tviewportCount = " << value.viewportCount << '\n';
5634         s << "\tpViewports = " << value.pViewports << '\n';
5635         s << "\tscissorCount = " << value.scissorCount << '\n';
5636         s << "\tpScissors = " << value.pScissors << '\n';
5637         s << '}';
5638         return s;
5639 }
5640
5641 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5642 {
5643         s << "VkPipelineRasterizationStateCreateInfo = {\n";
5644         s << "\tsType = " << value.sType << '\n';
5645         s << "\tpNext = " << value.pNext << '\n';
5646         s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5647         s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5648         s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5649         s << "\tpolygonMode = " << value.polygonMode << '\n';
5650         s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5651         s << "\tfrontFace = " << value.frontFace << '\n';
5652         s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5653         s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5654         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5655         s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5656         s << "\tlineWidth = " << value.lineWidth << '\n';
5657         s << '}';
5658         return s;
5659 }
5660
5661 std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5662 {
5663         s << "VkPipelineMultisampleStateCreateInfo = {\n";
5664         s << "\tsType = " << value.sType << '\n';
5665         s << "\tpNext = " << value.pNext << '\n';
5666         s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5667         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5668         s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5669         s << "\tminSampleShading = " << value.minSampleShading << '\n';
5670         s << "\tpSampleMask = " << value.pSampleMask << '\n';
5671         s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5672         s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5673         s << '}';
5674         return s;
5675 }
5676
5677 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5678 {
5679         s << "VkPipelineColorBlendAttachmentState = {\n";
5680         s << "\tblendEnable = " << value.blendEnable << '\n';
5681         s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5682         s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5683         s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5684         s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5685         s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5686         s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5687         s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5688         s << '}';
5689         return s;
5690 }
5691
5692 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
5693 {
5694         s << "VkPipelineColorBlendStateCreateInfo = {\n";
5695         s << "\tsType = " << value.sType << '\n';
5696         s << "\tpNext = " << value.pNext << '\n';
5697         s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
5698         s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
5699         s << "\tlogicOp = " << value.logicOp << '\n';
5700         s << "\tattachmentCount = " << value.attachmentCount << '\n';
5701         s << "\tpAttachments = " << value.pAttachments << '\n';
5702         s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
5703         s << '}';
5704         return s;
5705 }
5706
5707 std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
5708 {
5709         s << "VkPipelineDynamicStateCreateInfo = {\n";
5710         s << "\tsType = " << value.sType << '\n';
5711         s << "\tpNext = " << value.pNext << '\n';
5712         s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
5713         s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
5714         s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
5715         s << '}';
5716         return s;
5717 }
5718
5719 std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
5720 {
5721         s << "VkStencilOpState = {\n";
5722         s << "\tfailOp = " << value.failOp << '\n';
5723         s << "\tpassOp = " << value.passOp << '\n';
5724         s << "\tdepthFailOp = " << value.depthFailOp << '\n';
5725         s << "\tcompareOp = " << value.compareOp << '\n';
5726         s << "\tcompareMask = " << value.compareMask << '\n';
5727         s << "\twriteMask = " << value.writeMask << '\n';
5728         s << "\treference = " << value.reference << '\n';
5729         s << '}';
5730         return s;
5731 }
5732
5733 std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
5734 {
5735         s << "VkPipelineDepthStencilStateCreateInfo = {\n";
5736         s << "\tsType = " << value.sType << '\n';
5737         s << "\tpNext = " << value.pNext << '\n';
5738         s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
5739         s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
5740         s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
5741         s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
5742         s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
5743         s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
5744         s << "\tfront = " << value.front << '\n';
5745         s << "\tback = " << value.back << '\n';
5746         s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
5747         s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
5748         s << '}';
5749         return s;
5750 }
5751
5752 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
5753 {
5754         s << "VkGraphicsPipelineCreateInfo = {\n";
5755         s << "\tsType = " << value.sType << '\n';
5756         s << "\tpNext = " << value.pNext << '\n';
5757         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5758         s << "\tstageCount = " << value.stageCount << '\n';
5759         s << "\tpStages = " << value.pStages << '\n';
5760         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
5761         s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
5762         s << "\tpTessellationState = " << value.pTessellationState << '\n';
5763         s << "\tpViewportState = " << value.pViewportState << '\n';
5764         s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
5765         s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
5766         s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
5767         s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
5768         s << "\tpDynamicState = " << value.pDynamicState << '\n';
5769         s << "\tlayout = " << value.layout << '\n';
5770         s << "\trenderPass = " << value.renderPass << '\n';
5771         s << "\tsubpass = " << value.subpass << '\n';
5772         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5773         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5774         s << '}';
5775         return s;
5776 }
5777
5778 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
5779 {
5780         s << "VkPipelineCacheCreateInfo = {\n";
5781         s << "\tsType = " << value.sType << '\n';
5782         s << "\tpNext = " << value.pNext << '\n';
5783         s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
5784         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
5785         s << "\tpInitialData = " << value.pInitialData << '\n';
5786         s << '}';
5787         return s;
5788 }
5789
5790 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
5791 {
5792         s << "VkPipelineCacheHeaderVersionOne = {\n";
5793         s << "\theaderSize = " << value.headerSize << '\n';
5794         s << "\theaderVersion = " << value.headerVersion << '\n';
5795         s << "\tvendorID = " << value.vendorID << '\n';
5796         s << "\tdeviceID = " << value.deviceID << '\n';
5797         s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
5798         s << '}';
5799         return s;
5800 }
5801
5802 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
5803 {
5804         s << "VkPushConstantRange = {\n";
5805         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5806         s << "\toffset = " << value.offset << '\n';
5807         s << "\tsize = " << value.size << '\n';
5808         s << '}';
5809         return s;
5810 }
5811
5812 std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
5813 {
5814         s << "VkPipelineLayoutCreateInfo = {\n";
5815         s << "\tsType = " << value.sType << '\n';
5816         s << "\tpNext = " << value.pNext << '\n';
5817         s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
5818         s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
5819         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5820         s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
5821         s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
5822         s << '}';
5823         return s;
5824 }
5825
5826 std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
5827 {
5828         s << "VkSamplerCreateInfo = {\n";
5829         s << "\tsType = " << value.sType << '\n';
5830         s << "\tpNext = " << value.pNext << '\n';
5831         s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
5832         s << "\tmagFilter = " << value.magFilter << '\n';
5833         s << "\tminFilter = " << value.minFilter << '\n';
5834         s << "\tmipmapMode = " << value.mipmapMode << '\n';
5835         s << "\taddressModeU = " << value.addressModeU << '\n';
5836         s << "\taddressModeV = " << value.addressModeV << '\n';
5837         s << "\taddressModeW = " << value.addressModeW << '\n';
5838         s << "\tmipLodBias = " << value.mipLodBias << '\n';
5839         s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
5840         s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
5841         s << "\tcompareEnable = " << value.compareEnable << '\n';
5842         s << "\tcompareOp = " << value.compareOp << '\n';
5843         s << "\tminLod = " << value.minLod << '\n';
5844         s << "\tmaxLod = " << value.maxLod << '\n';
5845         s << "\tborderColor = " << value.borderColor << '\n';
5846         s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
5847         s << '}';
5848         return s;
5849 }
5850
5851 std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
5852 {
5853         s << "VkCommandPoolCreateInfo = {\n";
5854         s << "\tsType = " << value.sType << '\n';
5855         s << "\tpNext = " << value.pNext << '\n';
5856         s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
5857         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5858         s << '}';
5859         return s;
5860 }
5861
5862 std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
5863 {
5864         s << "VkCommandBufferAllocateInfo = {\n";
5865         s << "\tsType = " << value.sType << '\n';
5866         s << "\tpNext = " << value.pNext << '\n';
5867         s << "\tcommandPool = " << value.commandPool << '\n';
5868         s << "\tlevel = " << value.level << '\n';
5869         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
5870         s << '}';
5871         return s;
5872 }
5873
5874 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
5875 {
5876         s << "VkCommandBufferInheritanceInfo = {\n";
5877         s << "\tsType = " << value.sType << '\n';
5878         s << "\tpNext = " << value.pNext << '\n';
5879         s << "\trenderPass = " << value.renderPass << '\n';
5880         s << "\tsubpass = " << value.subpass << '\n';
5881         s << "\tframebuffer = " << value.framebuffer << '\n';
5882         s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
5883         s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
5884         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5885         s << '}';
5886         return s;
5887 }
5888
5889 std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
5890 {
5891         s << "VkCommandBufferBeginInfo = {\n";
5892         s << "\tsType = " << value.sType << '\n';
5893         s << "\tpNext = " << value.pNext << '\n';
5894         s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
5895         s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
5896         s << '}';
5897         return s;
5898 }
5899
5900 std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
5901 {
5902         s << "VkRenderPassBeginInfo = {\n";
5903         s << "\tsType = " << value.sType << '\n';
5904         s << "\tpNext = " << value.pNext << '\n';
5905         s << "\trenderPass = " << value.renderPass << '\n';
5906         s << "\tframebuffer = " << value.framebuffer << '\n';
5907         s << "\trenderArea = " << value.renderArea << '\n';
5908         s << "\tclearValueCount = " << value.clearValueCount << '\n';
5909         s << "\tpClearValues = " << value.pClearValues << '\n';
5910         s << '}';
5911         return s;
5912 }
5913
5914 std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
5915 {
5916         s << "VkClearColorValue = {\n";
5917         s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
5918         s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
5919         s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
5920         s << '}';
5921         return s;
5922 }
5923
5924 std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
5925 {
5926         s << "VkClearDepthStencilValue = {\n";
5927         s << "\tdepth = " << value.depth << '\n';
5928         s << "\tstencil = " << value.stencil << '\n';
5929         s << '}';
5930         return s;
5931 }
5932
5933 std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
5934 {
5935         s << "VkClearValue = {\n";
5936         s << "\tcolor = " << value.color << '\n';
5937         s << "\tdepthStencil = " << value.depthStencil << '\n';
5938         s << '}';
5939         return s;
5940 }
5941
5942 std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
5943 {
5944         s << "VkClearAttachment = {\n";
5945         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5946         s << "\tcolorAttachment = " << value.colorAttachment << '\n';
5947         s << "\tclearValue = " << value.clearValue << '\n';
5948         s << '}';
5949         return s;
5950 }
5951
5952 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
5953 {
5954         s << "VkAttachmentDescription = {\n";
5955         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
5956         s << "\tformat = " << value.format << '\n';
5957         s << "\tsamples = " << value.samples << '\n';
5958         s << "\tloadOp = " << value.loadOp << '\n';
5959         s << "\tstoreOp = " << value.storeOp << '\n';
5960         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
5961         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
5962         s << "\tinitialLayout = " << value.initialLayout << '\n';
5963         s << "\tfinalLayout = " << value.finalLayout << '\n';
5964         s << '}';
5965         return s;
5966 }
5967
5968 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
5969 {
5970         s << "VkAttachmentReference = {\n";
5971         s << "\tattachment = " << value.attachment << '\n';
5972         s << "\tlayout = " << value.layout << '\n';
5973         s << '}';
5974         return s;
5975 }
5976
5977 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
5978 {
5979         s << "VkSubpassDescription = {\n";
5980         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
5981         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
5982         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
5983         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
5984         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
5985         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
5986         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
5987         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
5988         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
5989         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
5990         s << '}';
5991         return s;
5992 }
5993
5994 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
5995 {
5996         s << "VkSubpassDependency = {\n";
5997         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
5998         s << "\tdstSubpass = " << value.dstSubpass << '\n';
5999         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6000         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6001         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6002         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6003         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6004         s << '}';
6005         return s;
6006 }
6007
6008 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
6009 {
6010         s << "VkRenderPassCreateInfo = {\n";
6011         s << "\tsType = " << value.sType << '\n';
6012         s << "\tpNext = " << value.pNext << '\n';
6013         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6014         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6015         s << "\tpAttachments = " << value.pAttachments << '\n';
6016         s << "\tsubpassCount = " << value.subpassCount << '\n';
6017         s << "\tpSubpasses = " << value.pSubpasses << '\n';
6018         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6019         s << "\tpDependencies = " << value.pDependencies << '\n';
6020         s << '}';
6021         return s;
6022 }
6023
6024 std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
6025 {
6026         s << "VkEventCreateInfo = {\n";
6027         s << "\tsType = " << value.sType << '\n';
6028         s << "\tpNext = " << value.pNext << '\n';
6029         s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
6030         s << '}';
6031         return s;
6032 }
6033
6034 std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
6035 {
6036         s << "VkFenceCreateInfo = {\n";
6037         s << "\tsType = " << value.sType << '\n';
6038         s << "\tpNext = " << value.pNext << '\n';
6039         s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
6040         s << '}';
6041         return s;
6042 }
6043
6044 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
6045 {
6046         s << "VkPhysicalDeviceFeatures = {\n";
6047         s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
6048         s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
6049         s << "\timageCubeArray = " << value.imageCubeArray << '\n';
6050         s << "\tindependentBlend = " << value.independentBlend << '\n';
6051         s << "\tgeometryShader = " << value.geometryShader << '\n';
6052         s << "\ttessellationShader = " << value.tessellationShader << '\n';
6053         s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
6054         s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
6055         s << "\tlogicOp = " << value.logicOp << '\n';
6056         s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
6057         s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
6058         s << "\tdepthClamp = " << value.depthClamp << '\n';
6059         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
6060         s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
6061         s << "\tdepthBounds = " << value.depthBounds << '\n';
6062         s << "\twideLines = " << value.wideLines << '\n';
6063         s << "\tlargePoints = " << value.largePoints << '\n';
6064         s << "\talphaToOne = " << value.alphaToOne << '\n';
6065         s << "\tmultiViewport = " << value.multiViewport << '\n';
6066         s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
6067         s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
6068         s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
6069         s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
6070         s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
6071         s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
6072         s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
6073         s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
6074         s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
6075         s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
6076         s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
6077         s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
6078         s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
6079         s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
6080         s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
6081         s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
6082         s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
6083         s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
6084         s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
6085         s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
6086         s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
6087         s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
6088         s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
6089         s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
6090         s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
6091         s << "\tsparseBinding = " << value.sparseBinding << '\n';
6092         s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
6093         s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
6094         s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
6095         s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
6096         s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
6097         s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
6098         s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
6099         s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
6100         s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
6101         s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
6102         s << '}';
6103         return s;
6104 }
6105
6106 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
6107 {
6108         s << "VkPhysicalDeviceSparseProperties = {\n";
6109         s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
6110         s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
6111         s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
6112         s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
6113         s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
6114         s << '}';
6115         return s;
6116 }
6117
6118 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
6119 {
6120         s << "VkPhysicalDeviceLimits = {\n";
6121         s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
6122         s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
6123         s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
6124         s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
6125         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6126         s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
6127         s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
6128         s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
6129         s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
6130         s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
6131         s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
6132         s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
6133         s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
6134         s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
6135         s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
6136         s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
6137         s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
6138         s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
6139         s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
6140         s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
6141         s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
6142         s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
6143         s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
6144         s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
6145         s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
6146         s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
6147         s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
6148         s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
6149         s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
6150         s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
6151         s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
6152         s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
6153         s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
6154         s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
6155         s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
6156         s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
6157         s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
6158         s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
6159         s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
6160         s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
6161         s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
6162         s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
6163         s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
6164         s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
6165         s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
6166         s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
6167         s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
6168         s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
6169         s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
6170         s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
6171         s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
6172         s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
6173         s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
6174         s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
6175         s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
6176         s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
6177         s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
6178         s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
6179         s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
6180         s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
6181         s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
6182         s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
6183         s << "\tmaxViewports = " << value.maxViewports << '\n';
6184         s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
6185         s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
6186         s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
6187         s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
6188         s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
6189         s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
6190         s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
6191         s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
6192         s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
6193         s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
6194         s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
6195         s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
6196         s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
6197         s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
6198         s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
6199         s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
6200         s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
6201         s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
6202         s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
6203         s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
6204         s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
6205         s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
6206         s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
6207         s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
6208         s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
6209         s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
6210         s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
6211         s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
6212         s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
6213         s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
6214         s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
6215         s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
6216         s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
6217         s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
6218         s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
6219         s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
6220         s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
6221         s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
6222         s << "\tstrictLines = " << value.strictLines << '\n';
6223         s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
6224         s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
6225         s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
6226         s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
6227         s << '}';
6228         return s;
6229 }
6230
6231 std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
6232 {
6233         s << "VkSemaphoreCreateInfo = {\n";
6234         s << "\tsType = " << value.sType << '\n';
6235         s << "\tpNext = " << value.pNext << '\n';
6236         s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
6237         s << '}';
6238         return s;
6239 }
6240
6241 std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
6242 {
6243         s << "VkQueryPoolCreateInfo = {\n";
6244         s << "\tsType = " << value.sType << '\n';
6245         s << "\tpNext = " << value.pNext << '\n';
6246         s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
6247         s << "\tqueryType = " << value.queryType << '\n';
6248         s << "\tqueryCount = " << value.queryCount << '\n';
6249         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6250         s << '}';
6251         return s;
6252 }
6253
6254 std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
6255 {
6256         s << "VkFramebufferCreateInfo = {\n";
6257         s << "\tsType = " << value.sType << '\n';
6258         s << "\tpNext = " << value.pNext << '\n';
6259         s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
6260         s << "\trenderPass = " << value.renderPass << '\n';
6261         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6262         s << "\tpAttachments = " << value.pAttachments << '\n';
6263         s << "\twidth = " << value.width << '\n';
6264         s << "\theight = " << value.height << '\n';
6265         s << "\tlayers = " << value.layers << '\n';
6266         s << '}';
6267         return s;
6268 }
6269
6270 std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
6271 {
6272         s << "VkDrawIndirectCommand = {\n";
6273         s << "\tvertexCount = " << value.vertexCount << '\n';
6274         s << "\tinstanceCount = " << value.instanceCount << '\n';
6275         s << "\tfirstVertex = " << value.firstVertex << '\n';
6276         s << "\tfirstInstance = " << value.firstInstance << '\n';
6277         s << '}';
6278         return s;
6279 }
6280
6281 std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
6282 {
6283         s << "VkDrawIndexedIndirectCommand = {\n";
6284         s << "\tindexCount = " << value.indexCount << '\n';
6285         s << "\tinstanceCount = " << value.instanceCount << '\n';
6286         s << "\tfirstIndex = " << value.firstIndex << '\n';
6287         s << "\tvertexOffset = " << value.vertexOffset << '\n';
6288         s << "\tfirstInstance = " << value.firstInstance << '\n';
6289         s << '}';
6290         return s;
6291 }
6292
6293 std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
6294 {
6295         s << "VkDispatchIndirectCommand = {\n";
6296         s << "\tx = " << value.x << '\n';
6297         s << "\ty = " << value.y << '\n';
6298         s << "\tz = " << value.z << '\n';
6299         s << '}';
6300         return s;
6301 }
6302
6303 std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
6304 {
6305         s << "VkMultiDrawInfoEXT = {\n";
6306         s << "\tfirstVertex = " << value.firstVertex << '\n';
6307         s << "\tvertexCount = " << value.vertexCount << '\n';
6308         s << '}';
6309         return s;
6310 }
6311
6312 std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
6313 {
6314         s << "VkMultiDrawIndexedInfoEXT = {\n";
6315         s << "\tfirstIndex = " << value.firstIndex << '\n';
6316         s << "\tindexCount = " << value.indexCount << '\n';
6317         s << "\tvertexOffset = " << value.vertexOffset << '\n';
6318         s << '}';
6319         return s;
6320 }
6321
6322 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
6323 {
6324         s << "VkSubmitInfo = {\n";
6325         s << "\tsType = " << value.sType << '\n';
6326         s << "\tpNext = " << value.pNext << '\n';
6327         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6328         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6329         s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
6330         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6331         s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
6332         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6333         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
6334         s << '}';
6335         return s;
6336 }
6337
6338 std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
6339 {
6340         s << "VkDisplayPropertiesKHR = {\n";
6341         s << "\tdisplay = " << value.display << '\n';
6342         s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
6343         s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
6344         s << "\tphysicalResolution = " << value.physicalResolution << '\n';
6345         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6346         s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
6347         s << "\tpersistentContent = " << value.persistentContent << '\n';
6348         s << '}';
6349         return s;
6350 }
6351
6352 std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
6353 {
6354         s << "VkDisplayPlanePropertiesKHR = {\n";
6355         s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
6356         s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
6357         s << '}';
6358         return s;
6359 }
6360
6361 std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
6362 {
6363         s << "VkDisplayModeParametersKHR = {\n";
6364         s << "\tvisibleRegion = " << value.visibleRegion << '\n';
6365         s << "\trefreshRate = " << value.refreshRate << '\n';
6366         s << '}';
6367         return s;
6368 }
6369
6370 std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
6371 {
6372         s << "VkDisplayModePropertiesKHR = {\n";
6373         s << "\tdisplayMode = " << value.displayMode << '\n';
6374         s << "\tparameters = " << value.parameters << '\n';
6375         s << '}';
6376         return s;
6377 }
6378
6379 std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
6380 {
6381         s << "VkDisplayModeCreateInfoKHR = {\n";
6382         s << "\tsType = " << value.sType << '\n';
6383         s << "\tpNext = " << value.pNext << '\n';
6384         s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
6385         s << "\tparameters = " << value.parameters << '\n';
6386         s << '}';
6387         return s;
6388 }
6389
6390 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
6391 {
6392         s << "VkDisplayPlaneCapabilitiesKHR = {\n";
6393         s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
6394         s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
6395         s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
6396         s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
6397         s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
6398         s << "\tminDstPosition = " << value.minDstPosition << '\n';
6399         s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
6400         s << "\tminDstExtent = " << value.minDstExtent << '\n';
6401         s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
6402         s << '}';
6403         return s;
6404 }
6405
6406 std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
6407 {
6408         s << "VkDisplaySurfaceCreateInfoKHR = {\n";
6409         s << "\tsType = " << value.sType << '\n';
6410         s << "\tpNext = " << value.pNext << '\n';
6411         s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
6412         s << "\tdisplayMode = " << value.displayMode << '\n';
6413         s << "\tplaneIndex = " << value.planeIndex << '\n';
6414         s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
6415         s << "\ttransform = " << value.transform << '\n';
6416         s << "\tglobalAlpha = " << value.globalAlpha << '\n';
6417         s << "\talphaMode = " << value.alphaMode << '\n';
6418         s << "\timageExtent = " << value.imageExtent << '\n';
6419         s << '}';
6420         return s;
6421 }
6422
6423 std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
6424 {
6425         s << "VkDisplayPresentInfoKHR = {\n";
6426         s << "\tsType = " << value.sType << '\n';
6427         s << "\tpNext = " << value.pNext << '\n';
6428         s << "\tsrcRect = " << value.srcRect << '\n';
6429         s << "\tdstRect = " << value.dstRect << '\n';
6430         s << "\tpersistent = " << value.persistent << '\n';
6431         s << '}';
6432         return s;
6433 }
6434
6435 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
6436 {
6437         s << "VkSurfaceCapabilitiesKHR = {\n";
6438         s << "\tminImageCount = " << value.minImageCount << '\n';
6439         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
6440         s << "\tcurrentExtent = " << value.currentExtent << '\n';
6441         s << "\tminImageExtent = " << value.minImageExtent << '\n';
6442         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
6443         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6444         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6445         s << "\tcurrentTransform = " << value.currentTransform << '\n';
6446         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
6447         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
6448         s << '}';
6449         return s;
6450 }
6451
6452 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
6453 {
6454         s << "VkAndroidSurfaceCreateInfoKHR = {\n";
6455         s << "\tsType = " << value.sType << '\n';
6456         s << "\tpNext = " << value.pNext << '\n';
6457         s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6458         s << "\twindow = " << value.window << '\n';
6459         s << '}';
6460         return s;
6461 }
6462
6463 std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
6464 {
6465         s << "VkViSurfaceCreateInfoNN = {\n";
6466         s << "\tsType = " << value.sType << '\n';
6467         s << "\tpNext = " << value.pNext << '\n';
6468         s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
6469         s << "\twindow = " << value.window << '\n';
6470         s << '}';
6471         return s;
6472 }
6473
6474 std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
6475 {
6476         s << "VkWaylandSurfaceCreateInfoKHR = {\n";
6477         s << "\tsType = " << value.sType << '\n';
6478         s << "\tpNext = " << value.pNext << '\n';
6479         s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6480         s << "\tdisplay = " << value.display << '\n';
6481         s << "\tsurface = " << value.surface << '\n';
6482         s << '}';
6483         return s;
6484 }
6485
6486 std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
6487 {
6488         s << "VkWin32SurfaceCreateInfoKHR = {\n";
6489         s << "\tsType = " << value.sType << '\n';
6490         s << "\tpNext = " << value.pNext << '\n';
6491         s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
6492         s << "\thinstance = " << value.hinstance << '\n';
6493         s << "\thwnd = " << value.hwnd << '\n';
6494         s << '}';
6495         return s;
6496 }
6497
6498 std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
6499 {
6500         s << "VkXlibSurfaceCreateInfoKHR = {\n";
6501         s << "\tsType = " << value.sType << '\n';
6502         s << "\tpNext = " << value.pNext << '\n';
6503         s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6504         s << "\tdpy = " << value.dpy << '\n';
6505         s << "\twindow = " << value.window << '\n';
6506         s << '}';
6507         return s;
6508 }
6509
6510 std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
6511 {
6512         s << "VkXcbSurfaceCreateInfoKHR = {\n";
6513         s << "\tsType = " << value.sType << '\n';
6514         s << "\tpNext = " << value.pNext << '\n';
6515         s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6516         s << "\tconnection = " << value.connection << '\n';
6517         s << "\twindow = " << value.window << '\n';
6518         s << '}';
6519         return s;
6520 }
6521
6522 std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
6523 {
6524         s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
6525         s << "\tsType = " << value.sType << '\n';
6526         s << "\tpNext = " << value.pNext << '\n';
6527         s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
6528         s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
6529         s << '}';
6530         return s;
6531 }
6532
6533 std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
6534 {
6535         s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
6536         s << "\tsType = " << value.sType << '\n';
6537         s << "\tpNext = " << value.pNext << '\n';
6538         s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
6539         s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
6540         s << '}';
6541         return s;
6542 }
6543
6544 std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
6545 {
6546         s << "VkScreenSurfaceCreateInfoQNX = {\n";
6547         s << "\tsType = " << value.sType << '\n';
6548         s << "\tpNext = " << value.pNext << '\n';
6549         s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
6550         s << "\tcontext = " << value.context << '\n';
6551         s << "\twindow = " << value.window << '\n';
6552         s << '}';
6553         return s;
6554 }
6555
6556 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
6557 {
6558         s << "VkSurfaceFormatKHR = {\n";
6559         s << "\tformat = " << value.format << '\n';
6560         s << "\tcolorSpace = " << value.colorSpace << '\n';
6561         s << '}';
6562         return s;
6563 }
6564
6565 std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
6566 {
6567         s << "VkSwapchainCreateInfoKHR = {\n";
6568         s << "\tsType = " << value.sType << '\n';
6569         s << "\tpNext = " << value.pNext << '\n';
6570         s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
6571         s << "\tsurface = " << value.surface << '\n';
6572         s << "\tminImageCount = " << value.minImageCount << '\n';
6573         s << "\timageFormat = " << value.imageFormat << '\n';
6574         s << "\timageColorSpace = " << value.imageColorSpace << '\n';
6575         s << "\timageExtent = " << value.imageExtent << '\n';
6576         s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
6577         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
6578         s << "\timageSharingMode = " << value.imageSharingMode << '\n';
6579         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6580         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6581         s << "\tpreTransform = " << value.preTransform << '\n';
6582         s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
6583         s << "\tpresentMode = " << value.presentMode << '\n';
6584         s << "\tclipped = " << value.clipped << '\n';
6585         s << "\toldSwapchain = " << value.oldSwapchain << '\n';
6586         s << '}';
6587         return s;
6588 }
6589
6590 std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
6591 {
6592         s << "VkPresentInfoKHR = {\n";
6593         s << "\tsType = " << value.sType << '\n';
6594         s << "\tpNext = " << value.pNext << '\n';
6595         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6596         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6597         s << "\tswapchainCount = " << value.swapchainCount << '\n';
6598         s << "\tpSwapchains = " << value.pSwapchains << '\n';
6599         s << "\tpImageIndices = " << value.pImageIndices << '\n';
6600         s << "\tpResults = " << value.pResults << '\n';
6601         s << '}';
6602         return s;
6603 }
6604
6605 std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
6606 {
6607         s << "VkDebugReportCallbackCreateInfoEXT = {\n";
6608         s << "\tsType = " << value.sType << '\n';
6609         s << "\tpNext = " << value.pNext << '\n';
6610         s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
6611         s << "\tpfnCallback = " << value.pfnCallback << '\n';
6612         s << "\tpUserData = " << value.pUserData << '\n';
6613         s << '}';
6614         return s;
6615 }
6616
6617 std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
6618 {
6619         s << "VkValidationFlagsEXT = {\n";
6620         s << "\tsType = " << value.sType << '\n';
6621         s << "\tpNext = " << value.pNext << '\n';
6622         s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
6623         s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
6624         s << '}';
6625         return s;
6626 }
6627
6628 std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
6629 {
6630         s << "VkValidationFeaturesEXT = {\n";
6631         s << "\tsType = " << value.sType << '\n';
6632         s << "\tpNext = " << value.pNext << '\n';
6633         s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
6634         s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
6635         s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
6636         s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
6637         s << '}';
6638         return s;
6639 }
6640
6641 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
6642 {
6643         s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
6644         s << "\tsType = " << value.sType << '\n';
6645         s << "\tpNext = " << value.pNext << '\n';
6646         s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
6647         s << '}';
6648         return s;
6649 }
6650
6651 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
6652 {
6653         s << "VkDebugMarkerObjectNameInfoEXT = {\n";
6654         s << "\tsType = " << value.sType << '\n';
6655         s << "\tpNext = " << value.pNext << '\n';
6656         s << "\tobjectType = " << value.objectType << '\n';
6657         s << "\tobject = " << value.object << '\n';
6658         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
6659         s << '}';
6660         return s;
6661 }
6662
6663 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
6664 {
6665         s << "VkDebugMarkerObjectTagInfoEXT = {\n";
6666         s << "\tsType = " << value.sType << '\n';
6667         s << "\tpNext = " << value.pNext << '\n';
6668         s << "\tobjectType = " << value.objectType << '\n';
6669         s << "\tobject = " << value.object << '\n';
6670         s << "\ttagName = " << value.tagName << '\n';
6671         s << "\ttagSize = " << value.tagSize << '\n';
6672         s << "\tpTag = " << value.pTag << '\n';
6673         s << '}';
6674         return s;
6675 }
6676
6677 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
6678 {
6679         s << "VkDebugMarkerMarkerInfoEXT = {\n";
6680         s << "\tsType = " << value.sType << '\n';
6681         s << "\tpNext = " << value.pNext << '\n';
6682         s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
6683         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
6684         s << '}';
6685         return s;
6686 }
6687
6688 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
6689 {
6690         s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
6691         s << "\tsType = " << value.sType << '\n';
6692         s << "\tpNext = " << value.pNext << '\n';
6693         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
6694         s << '}';
6695         return s;
6696 }
6697
6698 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
6699 {
6700         s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
6701         s << "\tsType = " << value.sType << '\n';
6702         s << "\tpNext = " << value.pNext << '\n';
6703         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
6704         s << '}';
6705         return s;
6706 }
6707
6708 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
6709 {
6710         s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
6711         s << "\tsType = " << value.sType << '\n';
6712         s << "\tpNext = " << value.pNext << '\n';
6713         s << "\timage = " << value.image << '\n';
6714         s << "\tbuffer = " << value.buffer << '\n';
6715         s << '}';
6716         return s;
6717 }
6718
6719 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
6720 {
6721         s << "VkExternalImageFormatPropertiesNV = {\n";
6722         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
6723         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
6724         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
6725         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
6726         s << '}';
6727         return s;
6728 }
6729
6730 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
6731 {
6732         s << "VkExternalMemoryImageCreateInfoNV = {\n";
6733         s << "\tsType = " << value.sType << '\n';
6734         s << "\tpNext = " << value.pNext << '\n';
6735         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
6736         s << '}';
6737         return s;
6738 }
6739
6740 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
6741 {
6742         s << "VkExportMemoryAllocateInfoNV = {\n";
6743         s << "\tsType = " << value.sType << '\n';
6744         s << "\tpNext = " << value.pNext << '\n';
6745         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
6746         s << '}';
6747         return s;
6748 }
6749
6750 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
6751 {
6752         s << "VkImportMemoryWin32HandleInfoNV = {\n";
6753         s << "\tsType = " << value.sType << '\n';
6754         s << "\tpNext = " << value.pNext << '\n';
6755         s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
6756         s << "\thandle = " << value.handle << '\n';
6757         s << '}';
6758         return s;
6759 }
6760
6761 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
6762 {
6763         s << "VkExportMemoryWin32HandleInfoNV = {\n";
6764         s << "\tsType = " << value.sType << '\n';
6765         s << "\tpNext = " << value.pNext << '\n';
6766         s << "\tpAttributes = " << value.pAttributes << '\n';
6767         s << "\tdwAccess = " << value.dwAccess << '\n';
6768         s << '}';
6769         return s;
6770 }
6771
6772 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
6773 {
6774         s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
6775         s << "\tsType = " << value.sType << '\n';
6776         s << "\tpNext = " << value.pNext << '\n';
6777         s << "\tacquireCount = " << value.acquireCount << '\n';
6778         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
6779         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
6780         s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
6781         s << "\treleaseCount = " << value.releaseCount << '\n';
6782         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
6783         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
6784         s << '}';
6785         return s;
6786 }
6787
6788 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
6789 {
6790         s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
6791         s << "\tsType = " << value.sType << '\n';
6792         s << "\tpNext = " << value.pNext << '\n';
6793         s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
6794         s << '}';
6795         return s;
6796 }
6797
6798 std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
6799 {
6800         s << "VkDevicePrivateDataCreateInfo = {\n";
6801         s << "\tsType = " << value.sType << '\n';
6802         s << "\tpNext = " << value.pNext << '\n';
6803         s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
6804         s << '}';
6805         return s;
6806 }
6807
6808 std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
6809 {
6810         s << "VkPrivateDataSlotCreateInfo = {\n";
6811         s << "\tsType = " << value.sType << '\n';
6812         s << "\tpNext = " << value.pNext << '\n';
6813         s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
6814         s << '}';
6815         return s;
6816 }
6817
6818 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
6819 {
6820         s << "VkPhysicalDevicePrivateDataFeatures = {\n";
6821         s << "\tsType = " << value.sType << '\n';
6822         s << "\tpNext = " << value.pNext << '\n';
6823         s << "\tprivateData = " << value.privateData << '\n';
6824         s << '}';
6825         return s;
6826 }
6827
6828 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
6829 {
6830         s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
6831         s << "\tsType = " << value.sType << '\n';
6832         s << "\tpNext = " << value.pNext << '\n';
6833         s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
6834         s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
6835         s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
6836         s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
6837         s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
6838         s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
6839         s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
6840         s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
6841         s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
6842         s << '}';
6843         return s;
6844 }
6845
6846 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
6847 {
6848         s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
6849         s << "\tsType = " << value.sType << '\n';
6850         s << "\tpNext = " << value.pNext << '\n';
6851         s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
6852         s << '}';
6853         return s;
6854 }
6855
6856 std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
6857 {
6858         s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
6859         s << "\tsType = " << value.sType << '\n';
6860         s << "\tpNext = " << value.pNext << '\n';
6861         s << "\tstageCount = " << value.stageCount << '\n';
6862         s << "\tpStages = " << value.pStages << '\n';
6863         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
6864         s << "\tpTessellationState = " << value.pTessellationState << '\n';
6865         s << '}';
6866         return s;
6867 }
6868
6869 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
6870 {
6871         s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
6872         s << "\tsType = " << value.sType << '\n';
6873         s << "\tpNext = " << value.pNext << '\n';
6874         s << "\tgroupCount = " << value.groupCount << '\n';
6875         s << "\tpGroups = " << value.pGroups << '\n';
6876         s << "\tpipelineCount = " << value.pipelineCount << '\n';
6877         s << "\tpPipelines = " << value.pPipelines << '\n';
6878         s << '}';
6879         return s;
6880 }
6881
6882 std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
6883 {
6884         s << "VkBindShaderGroupIndirectCommandNV = {\n";
6885         s << "\tgroupIndex = " << value.groupIndex << '\n';
6886         s << '}';
6887         return s;
6888 }
6889
6890 std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
6891 {
6892         s << "VkBindIndexBufferIndirectCommandNV = {\n";
6893         s << "\tbufferAddress = " << value.bufferAddress << '\n';
6894         s << "\tsize = " << value.size << '\n';
6895         s << "\tindexType = " << value.indexType << '\n';
6896         s << '}';
6897         return s;
6898 }
6899
6900 std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
6901 {
6902         s << "VkBindVertexBufferIndirectCommandNV = {\n";
6903         s << "\tbufferAddress = " << value.bufferAddress << '\n';
6904         s << "\tsize = " << value.size << '\n';
6905         s << "\tstride = " << value.stride << '\n';
6906         s << '}';
6907         return s;
6908 }
6909
6910 std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
6911 {
6912         s << "VkSetStateFlagsIndirectCommandNV = {\n";
6913         s << "\tdata = " << value.data << '\n';
6914         s << '}';
6915         return s;
6916 }
6917
6918 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
6919 {
6920         s << "VkIndirectCommandsStreamNV = {\n";
6921         s << "\tbuffer = " << value.buffer << '\n';
6922         s << "\toffset = " << value.offset << '\n';
6923         s << '}';
6924         return s;
6925 }
6926
6927 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
6928 {
6929         s << "VkIndirectCommandsLayoutTokenNV = {\n";
6930         s << "\tsType = " << value.sType << '\n';
6931         s << "\tpNext = " << value.pNext << '\n';
6932         s << "\ttokenType = " << value.tokenType << '\n';
6933         s << "\tstream = " << value.stream << '\n';
6934         s << "\toffset = " << value.offset << '\n';
6935         s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
6936         s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
6937         s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
6938         s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
6939         s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
6940         s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
6941         s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
6942         s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
6943         s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
6944         s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
6945         s << '}';
6946         return s;
6947 }
6948
6949 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
6950 {
6951         s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
6952         s << "\tsType = " << value.sType << '\n';
6953         s << "\tpNext = " << value.pNext << '\n';
6954         s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
6955         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6956         s << "\ttokenCount = " << value.tokenCount << '\n';
6957         s << "\tpTokens = " << value.pTokens << '\n';
6958         s << "\tstreamCount = " << value.streamCount << '\n';
6959         s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
6960         s << '}';
6961         return s;
6962 }
6963
6964 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
6965 {
6966         s << "VkGeneratedCommandsInfoNV = {\n";
6967         s << "\tsType = " << value.sType << '\n';
6968         s << "\tpNext = " << value.pNext << '\n';
6969         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6970         s << "\tpipeline = " << value.pipeline << '\n';
6971         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
6972         s << "\tstreamCount = " << value.streamCount << '\n';
6973         s << "\tpStreams = " << value.pStreams << '\n';
6974         s << "\tsequencesCount = " << value.sequencesCount << '\n';
6975         s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
6976         s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
6977         s << "\tpreprocessSize = " << value.preprocessSize << '\n';
6978         s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
6979         s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
6980         s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
6981         s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
6982         s << '}';
6983         return s;
6984 }
6985
6986 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
6987 {
6988         s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
6989         s << "\tsType = " << value.sType << '\n';
6990         s << "\tpNext = " << value.pNext << '\n';
6991         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6992         s << "\tpipeline = " << value.pipeline << '\n';
6993         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
6994         s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
6995         s << '}';
6996         return s;
6997 }
6998
6999 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
7000 {
7001         s << "VkPhysicalDeviceFeatures2 = {\n";
7002         s << "\tsType = " << value.sType << '\n';
7003         s << "\tpNext = " << value.pNext << '\n';
7004         s << "\tfeatures = " << value.features << '\n';
7005         s << '}';
7006         return s;
7007 }
7008
7009 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
7010 {
7011         s << "VkPhysicalDeviceProperties2 = {\n";
7012         s << "\tsType = " << value.sType << '\n';
7013         s << "\tpNext = " << value.pNext << '\n';
7014         s << "\tproperties = " << value.properties << '\n';
7015         s << '}';
7016         return s;
7017 }
7018
7019 std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
7020 {
7021         s << "VkFormatProperties2 = {\n";
7022         s << "\tsType = " << value.sType << '\n';
7023         s << "\tpNext = " << value.pNext << '\n';
7024         s << "\tformatProperties = " << value.formatProperties << '\n';
7025         s << '}';
7026         return s;
7027 }
7028
7029 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
7030 {
7031         s << "VkImageFormatProperties2 = {\n";
7032         s << "\tsType = " << value.sType << '\n';
7033         s << "\tpNext = " << value.pNext << '\n';
7034         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7035         s << '}';
7036         return s;
7037 }
7038
7039 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
7040 {
7041         s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
7042         s << "\tsType = " << value.sType << '\n';
7043         s << "\tpNext = " << value.pNext << '\n';
7044         s << "\tformat = " << value.format << '\n';
7045         s << "\ttype = " << value.type << '\n';
7046         s << "\ttiling = " << value.tiling << '\n';
7047         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7048         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7049         s << '}';
7050         return s;
7051 }
7052
7053 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
7054 {
7055         s << "VkQueueFamilyProperties2 = {\n";
7056         s << "\tsType = " << value.sType << '\n';
7057         s << "\tpNext = " << value.pNext << '\n';
7058         s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
7059         s << '}';
7060         return s;
7061 }
7062
7063 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
7064 {
7065         s << "VkPhysicalDeviceMemoryProperties2 = {\n";
7066         s << "\tsType = " << value.sType << '\n';
7067         s << "\tpNext = " << value.pNext << '\n';
7068         s << "\tmemoryProperties = " << value.memoryProperties << '\n';
7069         s << '}';
7070         return s;
7071 }
7072
7073 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
7074 {
7075         s << "VkSparseImageFormatProperties2 = {\n";
7076         s << "\tsType = " << value.sType << '\n';
7077         s << "\tpNext = " << value.pNext << '\n';
7078         s << "\tproperties = " << value.properties << '\n';
7079         s << '}';
7080         return s;
7081 }
7082
7083 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
7084 {
7085         s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
7086         s << "\tsType = " << value.sType << '\n';
7087         s << "\tpNext = " << value.pNext << '\n';
7088         s << "\tformat = " << value.format << '\n';
7089         s << "\ttype = " << value.type << '\n';
7090         s << "\tsamples = " << value.samples << '\n';
7091         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7092         s << "\ttiling = " << value.tiling << '\n';
7093         s << '}';
7094         return s;
7095 }
7096
7097 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
7098 {
7099         s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
7100         s << "\tsType = " << value.sType << '\n';
7101         s << "\tpNext = " << value.pNext << '\n';
7102         s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
7103         s << '}';
7104         return s;
7105 }
7106
7107 std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
7108 {
7109         s << "VkConformanceVersion = {\n";
7110         s << "\tmajor = " << value.major << '\n';
7111         s << "\tminor = " << value.minor << '\n';
7112         s << "\tsubminor = " << value.subminor << '\n';
7113         s << "\tpatch = " << value.patch << '\n';
7114         s << '}';
7115         return s;
7116 }
7117
7118 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7119 {
7120         s << "VkPhysicalDeviceDriverProperties = {\n";
7121         s << "\tsType = " << value.sType << '\n';
7122         s << "\tpNext = " << value.pNext << '\n';
7123         s << "\tdriverID = " << value.driverID << '\n';
7124         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7125         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7126         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7127         s << '}';
7128         return s;
7129 }
7130
7131 std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
7132 {
7133         s << "VkPresentRegionsKHR = {\n";
7134         s << "\tsType = " << value.sType << '\n';
7135         s << "\tpNext = " << value.pNext << '\n';
7136         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7137         s << "\tpRegions = " << value.pRegions << '\n';
7138         s << '}';
7139         return s;
7140 }
7141
7142 std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
7143 {
7144         s << "VkPresentRegionKHR = {\n";
7145         s << "\trectangleCount = " << value.rectangleCount << '\n';
7146         s << "\tpRectangles = " << value.pRectangles << '\n';
7147         s << '}';
7148         return s;
7149 }
7150
7151 std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
7152 {
7153         s << "VkRectLayerKHR = {\n";
7154         s << "\toffset = " << value.offset << '\n';
7155         s << "\textent = " << value.extent << '\n';
7156         s << "\tlayer = " << value.layer << '\n';
7157         s << '}';
7158         return s;
7159 }
7160
7161 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
7162 {
7163         s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
7164         s << "\tsType = " << value.sType << '\n';
7165         s << "\tpNext = " << value.pNext << '\n';
7166         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
7167         s << "\tvariablePointers = " << value.variablePointers << '\n';
7168         s << '}';
7169         return s;
7170 }
7171
7172 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
7173 {
7174         s << "VkExternalMemoryProperties = {\n";
7175         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
7176         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7177         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7178         s << '}';
7179         return s;
7180 }
7181
7182 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
7183 {
7184         s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
7185         s << "\tsType = " << value.sType << '\n';
7186         s << "\tpNext = " << value.pNext << '\n';
7187         s << "\thandleType = " << value.handleType << '\n';
7188         s << '}';
7189         return s;
7190 }
7191
7192 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
7193 {
7194         s << "VkExternalImageFormatProperties = {\n";
7195         s << "\tsType = " << value.sType << '\n';
7196         s << "\tpNext = " << value.pNext << '\n';
7197         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7198         s << '}';
7199         return s;
7200 }
7201
7202 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
7203 {
7204         s << "VkPhysicalDeviceExternalBufferInfo = {\n";
7205         s << "\tsType = " << value.sType << '\n';
7206         s << "\tpNext = " << value.pNext << '\n';
7207         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
7208         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
7209         s << "\thandleType = " << value.handleType << '\n';
7210         s << '}';
7211         return s;
7212 }
7213
7214 std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
7215 {
7216         s << "VkExternalBufferProperties = {\n";
7217         s << "\tsType = " << value.sType << '\n';
7218         s << "\tpNext = " << value.pNext << '\n';
7219         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7220         s << '}';
7221         return s;
7222 }
7223
7224 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
7225 {
7226         s << "VkPhysicalDeviceIDProperties = {\n";
7227         s << "\tsType = " << value.sType << '\n';
7228         s << "\tpNext = " << value.pNext << '\n';
7229         s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
7230         s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
7231         s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
7232         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7233         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7234         s << '}';
7235         return s;
7236 }
7237
7238 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
7239 {
7240         s << "VkExternalMemoryImageCreateInfo = {\n";
7241         s << "\tsType = " << value.sType << '\n';
7242         s << "\tpNext = " << value.pNext << '\n';
7243         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7244         s << '}';
7245         return s;
7246 }
7247
7248 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
7249 {
7250         s << "VkExternalMemoryBufferCreateInfo = {\n";
7251         s << "\tsType = " << value.sType << '\n';
7252         s << "\tpNext = " << value.pNext << '\n';
7253         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7254         s << '}';
7255         return s;
7256 }
7257
7258 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
7259 {
7260         s << "VkExportMemoryAllocateInfo = {\n";
7261         s << "\tsType = " << value.sType << '\n';
7262         s << "\tpNext = " << value.pNext << '\n';
7263         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7264         s << '}';
7265         return s;
7266 }
7267
7268 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
7269 {
7270         s << "VkImportMemoryWin32HandleInfoKHR = {\n";
7271         s << "\tsType = " << value.sType << '\n';
7272         s << "\tpNext = " << value.pNext << '\n';
7273         s << "\thandleType = " << value.handleType << '\n';
7274         s << "\thandle = " << value.handle << '\n';
7275         s << "\tname = " << getWStr(value.name) << '\n';
7276         s << '}';
7277         return s;
7278 }
7279
7280 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
7281 {
7282         s << "VkExportMemoryWin32HandleInfoKHR = {\n";
7283         s << "\tsType = " << value.sType << '\n';
7284         s << "\tpNext = " << value.pNext << '\n';
7285         s << "\tpAttributes = " << value.pAttributes << '\n';
7286         s << "\tdwAccess = " << value.dwAccess << '\n';
7287         s << "\tname = " << getWStr(value.name) << '\n';
7288         s << '}';
7289         return s;
7290 }
7291
7292 std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
7293 {
7294         s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
7295         s << "\tsType = " << value.sType << '\n';
7296         s << "\tpNext = " << value.pNext << '\n';
7297         s << "\thandleType = " << value.handleType << '\n';
7298         s << "\thandle = " << value.handle << '\n';
7299         s << '}';
7300         return s;
7301 }
7302
7303 std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
7304 {
7305         s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
7306         s << "\tsType = " << value.sType << '\n';
7307         s << "\tpNext = " << value.pNext << '\n';
7308         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7309         s << '}';
7310         return s;
7311 }
7312
7313 std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
7314 {
7315         s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
7316         s << "\tsType = " << value.sType << '\n';
7317         s << "\tpNext = " << value.pNext << '\n';
7318         s << "\tmemory = " << value.memory << '\n';
7319         s << "\thandleType = " << value.handleType << '\n';
7320         s << '}';
7321         return s;
7322 }
7323
7324 std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
7325 {
7326         s << "VkMemoryWin32HandlePropertiesKHR = {\n";
7327         s << "\tsType = " << value.sType << '\n';
7328         s << "\tpNext = " << value.pNext << '\n';
7329         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7330         s << '}';
7331         return s;
7332 }
7333
7334 std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
7335 {
7336         s << "VkMemoryGetWin32HandleInfoKHR = {\n";
7337         s << "\tsType = " << value.sType << '\n';
7338         s << "\tpNext = " << value.pNext << '\n';
7339         s << "\tmemory = " << value.memory << '\n';
7340         s << "\thandleType = " << value.handleType << '\n';
7341         s << '}';
7342         return s;
7343 }
7344
7345 std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
7346 {
7347         s << "VkImportMemoryFdInfoKHR = {\n";
7348         s << "\tsType = " << value.sType << '\n';
7349         s << "\tpNext = " << value.pNext << '\n';
7350         s << "\thandleType = " << value.handleType << '\n';
7351         s << "\tfd = " << value.fd << '\n';
7352         s << '}';
7353         return s;
7354 }
7355
7356 std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
7357 {
7358         s << "VkMemoryFdPropertiesKHR = {\n";
7359         s << "\tsType = " << value.sType << '\n';
7360         s << "\tpNext = " << value.pNext << '\n';
7361         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7362         s << '}';
7363         return s;
7364 }
7365
7366 std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
7367 {
7368         s << "VkMemoryGetFdInfoKHR = {\n";
7369         s << "\tsType = " << value.sType << '\n';
7370         s << "\tpNext = " << value.pNext << '\n';
7371         s << "\tmemory = " << value.memory << '\n';
7372         s << "\thandleType = " << value.handleType << '\n';
7373         s << '}';
7374         return s;
7375 }
7376
7377 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
7378 {
7379         s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
7380         s << "\tsType = " << value.sType << '\n';
7381         s << "\tpNext = " << value.pNext << '\n';
7382         s << "\tacquireCount = " << value.acquireCount << '\n';
7383         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7384         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7385         s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
7386         s << "\treleaseCount = " << value.releaseCount << '\n';
7387         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7388         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7389         s << '}';
7390         return s;
7391 }
7392
7393 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
7394 {
7395         s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
7396         s << "\tsType = " << value.sType << '\n';
7397         s << "\tpNext = " << value.pNext << '\n';
7398         s << "\thandleType = " << value.handleType << '\n';
7399         s << '}';
7400         return s;
7401 }
7402
7403 std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
7404 {
7405         s << "VkExternalSemaphoreProperties = {\n";
7406         s << "\tsType = " << value.sType << '\n';
7407         s << "\tpNext = " << value.pNext << '\n';
7408         s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7409         s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7410         s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
7411         s << '}';
7412         return s;
7413 }
7414
7415 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
7416 {
7417         s << "VkExportSemaphoreCreateInfo = {\n";
7418         s << "\tsType = " << value.sType << '\n';
7419         s << "\tpNext = " << value.pNext << '\n';
7420         s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
7421         s << '}';
7422         return s;
7423 }
7424
7425 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
7426 {
7427         s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
7428         s << "\tsType = " << value.sType << '\n';
7429         s << "\tpNext = " << value.pNext << '\n';
7430         s << "\tsemaphore = " << value.semaphore << '\n';
7431         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7432         s << "\thandleType = " << value.handleType << '\n';
7433         s << "\thandle = " << value.handle << '\n';
7434         s << "\tname = " << getWStr(value.name) << '\n';
7435         s << '}';
7436         return s;
7437 }
7438
7439 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
7440 {
7441         s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
7442         s << "\tsType = " << value.sType << '\n';
7443         s << "\tpNext = " << value.pNext << '\n';
7444         s << "\tpAttributes = " << value.pAttributes << '\n';
7445         s << "\tdwAccess = " << value.dwAccess << '\n';
7446         s << "\tname = " << getWStr(value.name) << '\n';
7447         s << '}';
7448         return s;
7449 }
7450
7451 std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
7452 {
7453         s << "VkD3D12FenceSubmitInfoKHR = {\n";
7454         s << "\tsType = " << value.sType << '\n';
7455         s << "\tpNext = " << value.pNext << '\n';
7456         s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
7457         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7458         s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
7459         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7460         s << '}';
7461         return s;
7462 }
7463
7464 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
7465 {
7466         s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
7467         s << "\tsType = " << value.sType << '\n';
7468         s << "\tpNext = " << value.pNext << '\n';
7469         s << "\tsemaphore = " << value.semaphore << '\n';
7470         s << "\thandleType = " << value.handleType << '\n';
7471         s << '}';
7472         return s;
7473 }
7474
7475 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
7476 {
7477         s << "VkImportSemaphoreFdInfoKHR = {\n";
7478         s << "\tsType = " << value.sType << '\n';
7479         s << "\tpNext = " << value.pNext << '\n';
7480         s << "\tsemaphore = " << value.semaphore << '\n';
7481         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7482         s << "\thandleType = " << value.handleType << '\n';
7483         s << "\tfd = " << value.fd << '\n';
7484         s << '}';
7485         return s;
7486 }
7487
7488 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
7489 {
7490         s << "VkSemaphoreGetFdInfoKHR = {\n";
7491         s << "\tsType = " << value.sType << '\n';
7492         s << "\tpNext = " << value.pNext << '\n';
7493         s << "\tsemaphore = " << value.semaphore << '\n';
7494         s << "\thandleType = " << value.handleType << '\n';
7495         s << '}';
7496         return s;
7497 }
7498
7499 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
7500 {
7501         s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
7502         s << "\tsType = " << value.sType << '\n';
7503         s << "\tpNext = " << value.pNext << '\n';
7504         s << "\tsemaphore = " << value.semaphore << '\n';
7505         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7506         s << "\thandleType = " << value.handleType << '\n';
7507         s << "\tzirconHandle = " << value.zirconHandle << '\n';
7508         s << '}';
7509         return s;
7510 }
7511
7512 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
7513 {
7514         s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
7515         s << "\tsType = " << value.sType << '\n';
7516         s << "\tpNext = " << value.pNext << '\n';
7517         s << "\tsemaphore = " << value.semaphore << '\n';
7518         s << "\thandleType = " << value.handleType << '\n';
7519         s << '}';
7520         return s;
7521 }
7522
7523 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
7524 {
7525         s << "VkPhysicalDeviceExternalFenceInfo = {\n";
7526         s << "\tsType = " << value.sType << '\n';
7527         s << "\tpNext = " << value.pNext << '\n';
7528         s << "\thandleType = " << value.handleType << '\n';
7529         s << '}';
7530         return s;
7531 }
7532
7533 std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
7534 {
7535         s << "VkExternalFenceProperties = {\n";
7536         s << "\tsType = " << value.sType << '\n';
7537         s << "\tpNext = " << value.pNext << '\n';
7538         s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7539         s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7540         s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
7541         s << '}';
7542         return s;
7543 }
7544
7545 std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
7546 {
7547         s << "VkExportFenceCreateInfo = {\n";
7548         s << "\tsType = " << value.sType << '\n';
7549         s << "\tpNext = " << value.pNext << '\n';
7550         s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
7551         s << '}';
7552         return s;
7553 }
7554
7555 std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
7556 {
7557         s << "VkImportFenceWin32HandleInfoKHR = {\n";
7558         s << "\tsType = " << value.sType << '\n';
7559         s << "\tpNext = " << value.pNext << '\n';
7560         s << "\tfence = " << value.fence << '\n';
7561         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7562         s << "\thandleType = " << value.handleType << '\n';
7563         s << "\thandle = " << value.handle << '\n';
7564         s << "\tname = " << getWStr(value.name) << '\n';
7565         s << '}';
7566         return s;
7567 }
7568
7569 std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
7570 {
7571         s << "VkExportFenceWin32HandleInfoKHR = {\n";
7572         s << "\tsType = " << value.sType << '\n';
7573         s << "\tpNext = " << value.pNext << '\n';
7574         s << "\tpAttributes = " << value.pAttributes << '\n';
7575         s << "\tdwAccess = " << value.dwAccess << '\n';
7576         s << "\tname = " << getWStr(value.name) << '\n';
7577         s << '}';
7578         return s;
7579 }
7580
7581 std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
7582 {
7583         s << "VkFenceGetWin32HandleInfoKHR = {\n";
7584         s << "\tsType = " << value.sType << '\n';
7585         s << "\tpNext = " << value.pNext << '\n';
7586         s << "\tfence = " << value.fence << '\n';
7587         s << "\thandleType = " << value.handleType << '\n';
7588         s << '}';
7589         return s;
7590 }
7591
7592 std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
7593 {
7594         s << "VkImportFenceFdInfoKHR = {\n";
7595         s << "\tsType = " << value.sType << '\n';
7596         s << "\tpNext = " << value.pNext << '\n';
7597         s << "\tfence = " << value.fence << '\n';
7598         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7599         s << "\thandleType = " << value.handleType << '\n';
7600         s << "\tfd = " << value.fd << '\n';
7601         s << '}';
7602         return s;
7603 }
7604
7605 std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
7606 {
7607         s << "VkFenceGetFdInfoKHR = {\n";
7608         s << "\tsType = " << value.sType << '\n';
7609         s << "\tpNext = " << value.pNext << '\n';
7610         s << "\tfence = " << value.fence << '\n';
7611         s << "\thandleType = " << value.handleType << '\n';
7612         s << '}';
7613         return s;
7614 }
7615
7616 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
7617 {
7618         s << "VkPhysicalDeviceMultiviewFeatures = {\n";
7619         s << "\tsType = " << value.sType << '\n';
7620         s << "\tpNext = " << value.pNext << '\n';
7621         s << "\tmultiview = " << value.multiview << '\n';
7622         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
7623         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
7624         s << '}';
7625         return s;
7626 }
7627
7628 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
7629 {
7630         s << "VkPhysicalDeviceMultiviewProperties = {\n";
7631         s << "\tsType = " << value.sType << '\n';
7632         s << "\tpNext = " << value.pNext << '\n';
7633         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
7634         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
7635         s << '}';
7636         return s;
7637 }
7638
7639 std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
7640 {
7641         s << "VkRenderPassMultiviewCreateInfo = {\n";
7642         s << "\tsType = " << value.sType << '\n';
7643         s << "\tpNext = " << value.pNext << '\n';
7644         s << "\tsubpassCount = " << value.subpassCount << '\n';
7645         s << "\tpViewMasks = " << value.pViewMasks << '\n';
7646         s << "\tdependencyCount = " << value.dependencyCount << '\n';
7647         s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
7648         s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
7649         s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
7650         s << '}';
7651         return s;
7652 }
7653
7654 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
7655 {
7656         s << "VkSurfaceCapabilities2EXT = {\n";
7657         s << "\tsType = " << value.sType << '\n';
7658         s << "\tpNext = " << value.pNext << '\n';
7659         s << "\tminImageCount = " << value.minImageCount << '\n';
7660         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7661         s << "\tcurrentExtent = " << value.currentExtent << '\n';
7662         s << "\tminImageExtent = " << value.minImageExtent << '\n';
7663         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7664         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7665         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7666         s << "\tcurrentTransform = " << value.currentTransform << '\n';
7667         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7668         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7669         s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
7670         s << '}';
7671         return s;
7672 }
7673
7674 std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
7675 {
7676         s << "VkDisplayPowerInfoEXT = {\n";
7677         s << "\tsType = " << value.sType << '\n';
7678         s << "\tpNext = " << value.pNext << '\n';
7679         s << "\tpowerState = " << value.powerState << '\n';
7680         s << '}';
7681         return s;
7682 }
7683
7684 std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
7685 {
7686         s << "VkDeviceEventInfoEXT = {\n";
7687         s << "\tsType = " << value.sType << '\n';
7688         s << "\tpNext = " << value.pNext << '\n';
7689         s << "\tdeviceEvent = " << value.deviceEvent << '\n';
7690         s << '}';
7691         return s;
7692 }
7693
7694 std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
7695 {
7696         s << "VkDisplayEventInfoEXT = {\n";
7697         s << "\tsType = " << value.sType << '\n';
7698         s << "\tpNext = " << value.pNext << '\n';
7699         s << "\tdisplayEvent = " << value.displayEvent << '\n';
7700         s << '}';
7701         return s;
7702 }
7703
7704 std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
7705 {
7706         s << "VkSwapchainCounterCreateInfoEXT = {\n";
7707         s << "\tsType = " << value.sType << '\n';
7708         s << "\tpNext = " << value.pNext << '\n';
7709         s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
7710         s << '}';
7711         return s;
7712 }
7713
7714 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
7715 {
7716         s << "VkPhysicalDeviceGroupProperties = {\n";
7717         s << "\tsType = " << value.sType << '\n';
7718         s << "\tpNext = " << value.pNext << '\n';
7719         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
7720         s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
7721         s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
7722         s << '}';
7723         return s;
7724 }
7725
7726 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
7727 {
7728         s << "VkMemoryAllocateFlagsInfo = {\n";
7729         s << "\tsType = " << value.sType << '\n';
7730         s << "\tpNext = " << value.pNext << '\n';
7731         s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
7732         s << "\tdeviceMask = " << value.deviceMask << '\n';
7733         s << '}';
7734         return s;
7735 }
7736
7737 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
7738 {
7739         s << "VkBindBufferMemoryInfo = {\n";
7740         s << "\tsType = " << value.sType << '\n';
7741         s << "\tpNext = " << value.pNext << '\n';
7742         s << "\tbuffer = " << value.buffer << '\n';
7743         s << "\tmemory = " << value.memory << '\n';
7744         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
7745         s << '}';
7746         return s;
7747 }
7748
7749 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
7750 {
7751         s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
7752         s << "\tsType = " << value.sType << '\n';
7753         s << "\tpNext = " << value.pNext << '\n';
7754         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
7755         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
7756         s << '}';
7757         return s;
7758 }
7759
7760 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
7761 {
7762         s << "VkBindImageMemoryInfo = {\n";
7763         s << "\tsType = " << value.sType << '\n';
7764         s << "\tpNext = " << value.pNext << '\n';
7765         s << "\timage = " << value.image << '\n';
7766         s << "\tmemory = " << value.memory << '\n';
7767         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
7768         s << '}';
7769         return s;
7770 }
7771
7772 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
7773 {
7774         s << "VkBindImageMemoryDeviceGroupInfo = {\n";
7775         s << "\tsType = " << value.sType << '\n';
7776         s << "\tpNext = " << value.pNext << '\n';
7777         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
7778         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
7779         s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
7780         s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
7781         s << '}';
7782         return s;
7783 }
7784
7785 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
7786 {
7787         s << "VkDeviceGroupRenderPassBeginInfo = {\n";
7788         s << "\tsType = " << value.sType << '\n';
7789         s << "\tpNext = " << value.pNext << '\n';
7790         s << "\tdeviceMask = " << value.deviceMask << '\n';
7791         s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
7792         s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
7793         s << '}';
7794         return s;
7795 }
7796
7797 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
7798 {
7799         s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
7800         s << "\tsType = " << value.sType << '\n';
7801         s << "\tpNext = " << value.pNext << '\n';
7802         s << "\tdeviceMask = " << value.deviceMask << '\n';
7803         s << '}';
7804         return s;
7805 }
7806
7807 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
7808 {
7809         s << "VkDeviceGroupSubmitInfo = {\n";
7810         s << "\tsType = " << value.sType << '\n';
7811         s << "\tpNext = " << value.pNext << '\n';
7812         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7813         s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
7814         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
7815         s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
7816         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
7817         s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
7818         s << '}';
7819         return s;
7820 }
7821
7822 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
7823 {
7824         s << "VkDeviceGroupBindSparseInfo = {\n";
7825         s << "\tsType = " << value.sType << '\n';
7826         s << "\tpNext = " << value.pNext << '\n';
7827         s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
7828         s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
7829         s << '}';
7830         return s;
7831 }
7832
7833 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
7834 {
7835         s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
7836         s << "\tsType = " << value.sType << '\n';
7837         s << "\tpNext = " << value.pNext << '\n';
7838         s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
7839         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7840         s << '}';
7841         return s;
7842 }
7843
7844 std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
7845 {
7846         s << "VkImageSwapchainCreateInfoKHR = {\n";
7847         s << "\tsType = " << value.sType << '\n';
7848         s << "\tpNext = " << value.pNext << '\n';
7849         s << "\tswapchain = " << value.swapchain << '\n';
7850         s << '}';
7851         return s;
7852 }
7853
7854 std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
7855 {
7856         s << "VkBindImageMemorySwapchainInfoKHR = {\n";
7857         s << "\tsType = " << value.sType << '\n';
7858         s << "\tpNext = " << value.pNext << '\n';
7859         s << "\tswapchain = " << value.swapchain << '\n';
7860         s << "\timageIndex = " << value.imageIndex << '\n';
7861         s << '}';
7862         return s;
7863 }
7864
7865 std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
7866 {
7867         s << "VkAcquireNextImageInfoKHR = {\n";
7868         s << "\tsType = " << value.sType << '\n';
7869         s << "\tpNext = " << value.pNext << '\n';
7870         s << "\tswapchain = " << value.swapchain << '\n';
7871         s << "\ttimeout = " << value.timeout << '\n';
7872         s << "\tsemaphore = " << value.semaphore << '\n';
7873         s << "\tfence = " << value.fence << '\n';
7874         s << "\tdeviceMask = " << value.deviceMask << '\n';
7875         s << '}';
7876         return s;
7877 }
7878
7879 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
7880 {
7881         s << "VkDeviceGroupPresentInfoKHR = {\n";
7882         s << "\tsType = " << value.sType << '\n';
7883         s << "\tpNext = " << value.pNext << '\n';
7884         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7885         s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
7886         s << "\tmode = " << value.mode << '\n';
7887         s << '}';
7888         return s;
7889 }
7890
7891 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
7892 {
7893         s << "VkDeviceGroupDeviceCreateInfo = {\n";
7894         s << "\tsType = " << value.sType << '\n';
7895         s << "\tpNext = " << value.pNext << '\n';
7896         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
7897         s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
7898         s << '}';
7899         return s;
7900 }
7901
7902 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
7903 {
7904         s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
7905         s << "\tsType = " << value.sType << '\n';
7906         s << "\tpNext = " << value.pNext << '\n';
7907         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7908         s << '}';
7909         return s;
7910 }
7911
7912 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
7913 {
7914         s << "VkDescriptorUpdateTemplateEntry = {\n";
7915         s << "\tdstBinding = " << value.dstBinding << '\n';
7916         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
7917         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
7918         s << "\tdescriptorType = " << value.descriptorType << '\n';
7919         s << "\toffset = " << value.offset << '\n';
7920         s << "\tstride = " << value.stride << '\n';
7921         s << '}';
7922         return s;
7923 }
7924
7925 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
7926 {
7927         s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
7928         s << "\tsType = " << value.sType << '\n';
7929         s << "\tpNext = " << value.pNext << '\n';
7930         s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
7931         s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
7932         s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
7933         s << "\ttemplateType = " << value.templateType << '\n';
7934         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
7935         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7936         s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
7937         s << "\tset = " << value.set << '\n';
7938         s << '}';
7939         return s;
7940 }
7941
7942 std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
7943 {
7944         s << "VkXYColorEXT = {\n";
7945         s << "\tx = " << value.x << '\n';
7946         s << "\ty = " << value.y << '\n';
7947         s << '}';
7948         return s;
7949 }
7950
7951 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
7952 {
7953         s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
7954         s << "\tsType = " << value.sType << '\n';
7955         s << "\tpNext = " << value.pNext << '\n';
7956         s << "\tpresentId = " << value.presentId << '\n';
7957         s << '}';
7958         return s;
7959 }
7960
7961 std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
7962 {
7963         s << "VkPresentIdKHR = {\n";
7964         s << "\tsType = " << value.sType << '\n';
7965         s << "\tpNext = " << value.pNext << '\n';
7966         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7967         s << "\tpPresentIds = " << value.pPresentIds << '\n';
7968         s << '}';
7969         return s;
7970 }
7971
7972 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
7973 {
7974         s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
7975         s << "\tsType = " << value.sType << '\n';
7976         s << "\tpNext = " << value.pNext << '\n';
7977         s << "\tpresentWait = " << value.presentWait << '\n';
7978         s << '}';
7979         return s;
7980 }
7981
7982 std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
7983 {
7984         s << "VkHdrMetadataEXT = {\n";
7985         s << "\tsType = " << value.sType << '\n';
7986         s << "\tpNext = " << value.pNext << '\n';
7987         s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
7988         s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
7989         s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
7990         s << "\twhitePoint = " << value.whitePoint << '\n';
7991         s << "\tmaxLuminance = " << value.maxLuminance << '\n';
7992         s << "\tminLuminance = " << value.minLuminance << '\n';
7993         s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
7994         s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
7995         s << '}';
7996         return s;
7997 }
7998
7999 std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
8000 {
8001         s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
8002         s << "\tsType = " << value.sType << '\n';
8003         s << "\tpNext = " << value.pNext << '\n';
8004         s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
8005         s << '}';
8006         return s;
8007 }
8008
8009 std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
8010 {
8011         s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
8012         s << "\tsType = " << value.sType << '\n';
8013         s << "\tpNext = " << value.pNext << '\n';
8014         s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
8015         s << '}';
8016         return s;
8017 }
8018
8019 std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
8020 {
8021         s << "VkRefreshCycleDurationGOOGLE = {\n";
8022         s << "\trefreshDuration = " << value.refreshDuration << '\n';
8023         s << '}';
8024         return s;
8025 }
8026
8027 std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
8028 {
8029         s << "VkPastPresentationTimingGOOGLE = {\n";
8030         s << "\tpresentID = " << value.presentID << '\n';
8031         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8032         s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
8033         s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
8034         s << "\tpresentMargin = " << value.presentMargin << '\n';
8035         s << '}';
8036         return s;
8037 }
8038
8039 std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
8040 {
8041         s << "VkPresentTimesInfoGOOGLE = {\n";
8042         s << "\tsType = " << value.sType << '\n';
8043         s << "\tpNext = " << value.pNext << '\n';
8044         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8045         s << "\tpTimes = " << value.pTimes << '\n';
8046         s << '}';
8047         return s;
8048 }
8049
8050 std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
8051 {
8052         s << "VkPresentTimeGOOGLE = {\n";
8053         s << "\tpresentID = " << value.presentID << '\n';
8054         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8055         s << '}';
8056         return s;
8057 }
8058
8059 std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
8060 {
8061         s << "VkIOSSurfaceCreateInfoMVK = {\n";
8062         s << "\tsType = " << value.sType << '\n';
8063         s << "\tpNext = " << value.pNext << '\n';
8064         s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8065         s << "\tpView = " << value.pView << '\n';
8066         s << '}';
8067         return s;
8068 }
8069
8070 std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
8071 {
8072         s << "VkMacOSSurfaceCreateInfoMVK = {\n";
8073         s << "\tsType = " << value.sType << '\n';
8074         s << "\tpNext = " << value.pNext << '\n';
8075         s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8076         s << "\tpView = " << value.pView << '\n';
8077         s << '}';
8078         return s;
8079 }
8080
8081 std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
8082 {
8083         s << "VkMetalSurfaceCreateInfoEXT = {\n";
8084         s << "\tsType = " << value.sType << '\n';
8085         s << "\tpNext = " << value.pNext << '\n';
8086         s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
8087         s << "\tpLayer = " << value.pLayer << '\n';
8088         s << '}';
8089         return s;
8090 }
8091
8092 std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
8093 {
8094         s << "VkViewportWScalingNV = {\n";
8095         s << "\txcoeff = " << value.xcoeff << '\n';
8096         s << "\tycoeff = " << value.ycoeff << '\n';
8097         s << '}';
8098         return s;
8099 }
8100
8101 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
8102 {
8103         s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
8104         s << "\tsType = " << value.sType << '\n';
8105         s << "\tpNext = " << value.pNext << '\n';
8106         s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
8107         s << "\tviewportCount = " << value.viewportCount << '\n';
8108         s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
8109         s << '}';
8110         return s;
8111 }
8112
8113 std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
8114 {
8115         s << "VkViewportSwizzleNV = {\n";
8116         s << "\tx = " << value.x << '\n';
8117         s << "\ty = " << value.y << '\n';
8118         s << "\tz = " << value.z << '\n';
8119         s << "\tw = " << value.w << '\n';
8120         s << '}';
8121         return s;
8122 }
8123
8124 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
8125 {
8126         s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
8127         s << "\tsType = " << value.sType << '\n';
8128         s << "\tpNext = " << value.pNext << '\n';
8129         s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
8130         s << "\tviewportCount = " << value.viewportCount << '\n';
8131         s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
8132         s << '}';
8133         return s;
8134 }
8135
8136 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
8137 {
8138         s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
8139         s << "\tsType = " << value.sType << '\n';
8140         s << "\tpNext = " << value.pNext << '\n';
8141         s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
8142         s << '}';
8143         return s;
8144 }
8145
8146 std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
8147 {
8148         s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
8149         s << "\tsType = " << value.sType << '\n';
8150         s << "\tpNext = " << value.pNext << '\n';
8151         s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
8152         s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
8153         s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
8154         s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
8155         s << '}';
8156         return s;
8157 }
8158
8159 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
8160 {
8161         s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
8162         s << "\tsType = " << value.sType << '\n';
8163         s << "\tpNext = " << value.pNext << '\n';
8164         s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
8165         s << '}';
8166         return s;
8167 }
8168
8169 std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
8170 {
8171         s << "VkInputAttachmentAspectReference = {\n";
8172         s << "\tsubpass = " << value.subpass << '\n';
8173         s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
8174         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
8175         s << '}';
8176         return s;
8177 }
8178
8179 std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
8180 {
8181         s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
8182         s << "\tsType = " << value.sType << '\n';
8183         s << "\tpNext = " << value.pNext << '\n';
8184         s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
8185         s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
8186         s << '}';
8187         return s;
8188 }
8189
8190 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
8191 {
8192         s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
8193         s << "\tsType = " << value.sType << '\n';
8194         s << "\tpNext = " << value.pNext << '\n';
8195         s << "\tsurface = " << value.surface << '\n';
8196         s << '}';
8197         return s;
8198 }
8199
8200 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
8201 {
8202         s << "VkSurfaceCapabilities2KHR = {\n";
8203         s << "\tsType = " << value.sType << '\n';
8204         s << "\tpNext = " << value.pNext << '\n';
8205         s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
8206         s << '}';
8207         return s;
8208 }
8209
8210 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
8211 {
8212         s << "VkSurfaceFormat2KHR = {\n";
8213         s << "\tsType = " << value.sType << '\n';
8214         s << "\tpNext = " << value.pNext << '\n';
8215         s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
8216         s << '}';
8217         return s;
8218 }
8219
8220 std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
8221 {
8222         s << "VkDisplayProperties2KHR = {\n";
8223         s << "\tsType = " << value.sType << '\n';
8224         s << "\tpNext = " << value.pNext << '\n';
8225         s << "\tdisplayProperties = " << value.displayProperties << '\n';
8226         s << '}';
8227         return s;
8228 }
8229
8230 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
8231 {
8232         s << "VkDisplayPlaneProperties2KHR = {\n";
8233         s << "\tsType = " << value.sType << '\n';
8234         s << "\tpNext = " << value.pNext << '\n';
8235         s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
8236         s << '}';
8237         return s;
8238 }
8239
8240 std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
8241 {
8242         s << "VkDisplayModeProperties2KHR = {\n";
8243         s << "\tsType = " << value.sType << '\n';
8244         s << "\tpNext = " << value.pNext << '\n';
8245         s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
8246         s << '}';
8247         return s;
8248 }
8249
8250 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
8251 {
8252         s << "VkDisplayPlaneInfo2KHR = {\n";
8253         s << "\tsType = " << value.sType << '\n';
8254         s << "\tpNext = " << value.pNext << '\n';
8255         s << "\tmode = " << value.mode << '\n';
8256         s << "\tplaneIndex = " << value.planeIndex << '\n';
8257         s << '}';
8258         return s;
8259 }
8260
8261 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
8262 {
8263         s << "VkDisplayPlaneCapabilities2KHR = {\n";
8264         s << "\tsType = " << value.sType << '\n';
8265         s << "\tpNext = " << value.pNext << '\n';
8266         s << "\tcapabilities = " << value.capabilities << '\n';
8267         s << '}';
8268         return s;
8269 }
8270
8271 std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
8272 {
8273         s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
8274         s << "\tsType = " << value.sType << '\n';
8275         s << "\tpNext = " << value.pNext << '\n';
8276         s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
8277         s << '}';
8278         return s;
8279 }
8280
8281 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
8282 {
8283         s << "VkPhysicalDevice16BitStorageFeatures = {\n";
8284         s << "\tsType = " << value.sType << '\n';
8285         s << "\tpNext = " << value.pNext << '\n';
8286         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
8287         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
8288         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
8289         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
8290         s << '}';
8291         return s;
8292 }
8293
8294 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
8295 {
8296         s << "VkPhysicalDeviceSubgroupProperties = {\n";
8297         s << "\tsType = " << value.sType << '\n';
8298         s << "\tpNext = " << value.pNext << '\n';
8299         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
8300         s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
8301         s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
8302         s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
8303         s << '}';
8304         return s;
8305 }
8306
8307 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
8308 {
8309         s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
8310         s << "\tsType = " << value.sType << '\n';
8311         s << "\tpNext = " << value.pNext << '\n';
8312         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
8313         s << '}';
8314         return s;
8315 }
8316
8317 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
8318 {
8319         s << "VkBufferMemoryRequirementsInfo2 = {\n";
8320         s << "\tsType = " << value.sType << '\n';
8321         s << "\tpNext = " << value.pNext << '\n';
8322         s << "\tbuffer = " << value.buffer << '\n';
8323         s << '}';
8324         return s;
8325 }
8326
8327 std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
8328 {
8329         s << "VkDeviceBufferMemoryRequirements = {\n";
8330         s << "\tsType = " << value.sType << '\n';
8331         s << "\tpNext = " << value.pNext << '\n';
8332         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8333         s << '}';
8334         return s;
8335 }
8336
8337 std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
8338 {
8339         s << "VkImageMemoryRequirementsInfo2 = {\n";
8340         s << "\tsType = " << value.sType << '\n';
8341         s << "\tpNext = " << value.pNext << '\n';
8342         s << "\timage = " << value.image << '\n';
8343         s << '}';
8344         return s;
8345 }
8346
8347 std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
8348 {
8349         s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
8350         s << "\tsType = " << value.sType << '\n';
8351         s << "\tpNext = " << value.pNext << '\n';
8352         s << "\timage = " << value.image << '\n';
8353         s << '}';
8354         return s;
8355 }
8356
8357 std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
8358 {
8359         s << "VkDeviceImageMemoryRequirements = {\n";
8360         s << "\tsType = " << value.sType << '\n';
8361         s << "\tpNext = " << value.pNext << '\n';
8362         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8363         s << "\tplaneAspect = " << value.planeAspect << '\n';
8364         s << '}';
8365         return s;
8366 }
8367
8368 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
8369 {
8370         s << "VkMemoryRequirements2 = {\n";
8371         s << "\tsType = " << value.sType << '\n';
8372         s << "\tpNext = " << value.pNext << '\n';
8373         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8374         s << '}';
8375         return s;
8376 }
8377
8378 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
8379 {
8380         s << "VkSparseImageMemoryRequirements2 = {\n";
8381         s << "\tsType = " << value.sType << '\n';
8382         s << "\tpNext = " << value.pNext << '\n';
8383         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8384         s << '}';
8385         return s;
8386 }
8387
8388 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
8389 {
8390         s << "VkPhysicalDevicePointClippingProperties = {\n";
8391         s << "\tsType = " << value.sType << '\n';
8392         s << "\tpNext = " << value.pNext << '\n';
8393         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
8394         s << '}';
8395         return s;
8396 }
8397
8398 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
8399 {
8400         s << "VkMemoryDedicatedRequirements = {\n";
8401         s << "\tsType = " << value.sType << '\n';
8402         s << "\tpNext = " << value.pNext << '\n';
8403         s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
8404         s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
8405         s << '}';
8406         return s;
8407 }
8408
8409 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
8410 {
8411         s << "VkMemoryDedicatedAllocateInfo = {\n";
8412         s << "\tsType = " << value.sType << '\n';
8413         s << "\tpNext = " << value.pNext << '\n';
8414         s << "\timage = " << value.image << '\n';
8415         s << "\tbuffer = " << value.buffer << '\n';
8416         s << '}';
8417         return s;
8418 }
8419
8420 std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
8421 {
8422         s << "VkImageViewUsageCreateInfo = {\n";
8423         s << "\tsType = " << value.sType << '\n';
8424         s << "\tpNext = " << value.pNext << '\n';
8425         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8426         s << '}';
8427         return s;
8428 }
8429
8430 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
8431 {
8432         s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
8433         s << "\tsType = " << value.sType << '\n';
8434         s << "\tpNext = " << value.pNext << '\n';
8435         s << "\tdomainOrigin = " << value.domainOrigin << '\n';
8436         s << '}';
8437         return s;
8438 }
8439
8440 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
8441 {
8442         s << "VkSamplerYcbcrConversionInfo = {\n";
8443         s << "\tsType = " << value.sType << '\n';
8444         s << "\tpNext = " << value.pNext << '\n';
8445         s << "\tconversion = " << value.conversion << '\n';
8446         s << '}';
8447         return s;
8448 }
8449
8450 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
8451 {
8452         s << "VkSamplerYcbcrConversionCreateInfo = {\n";
8453         s << "\tsType = " << value.sType << '\n';
8454         s << "\tpNext = " << value.pNext << '\n';
8455         s << "\tformat = " << value.format << '\n';
8456         s << "\tycbcrModel = " << value.ycbcrModel << '\n';
8457         s << "\tycbcrRange = " << value.ycbcrRange << '\n';
8458         s << "\tcomponents = " << value.components << '\n';
8459         s << "\txChromaOffset = " << value.xChromaOffset << '\n';
8460         s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
8461         s << "\tchromaFilter = " << value.chromaFilter << '\n';
8462         s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
8463         s << '}';
8464         return s;
8465 }
8466
8467 std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
8468 {
8469         s << "VkBindImagePlaneMemoryInfo = {\n";
8470         s << "\tsType = " << value.sType << '\n';
8471         s << "\tpNext = " << value.pNext << '\n';
8472         s << "\tplaneAspect = " << value.planeAspect << '\n';
8473         s << '}';
8474         return s;
8475 }
8476
8477 std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
8478 {
8479         s << "VkImagePlaneMemoryRequirementsInfo = {\n";
8480         s << "\tsType = " << value.sType << '\n';
8481         s << "\tpNext = " << value.pNext << '\n';
8482         s << "\tplaneAspect = " << value.planeAspect << '\n';
8483         s << '}';
8484         return s;
8485 }
8486
8487 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
8488 {
8489         s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
8490         s << "\tsType = " << value.sType << '\n';
8491         s << "\tpNext = " << value.pNext << '\n';
8492         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
8493         s << '}';
8494         return s;
8495 }
8496
8497 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
8498 {
8499         s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
8500         s << "\tsType = " << value.sType << '\n';
8501         s << "\tpNext = " << value.pNext << '\n';
8502         s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
8503         s << '}';
8504         return s;
8505 }
8506
8507 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
8508 {
8509         s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
8510         s << "\tsType = " << value.sType << '\n';
8511         s << "\tpNext = " << value.pNext << '\n';
8512         s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
8513         s << '}';
8514         return s;
8515 }
8516
8517 std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
8518 {
8519         s << "VkConditionalRenderingBeginInfoEXT = {\n";
8520         s << "\tsType = " << value.sType << '\n';
8521         s << "\tpNext = " << value.pNext << '\n';
8522         s << "\tbuffer = " << value.buffer << '\n';
8523         s << "\toffset = " << value.offset << '\n';
8524         s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
8525         s << '}';
8526         return s;
8527 }
8528
8529 std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
8530 {
8531         s << "VkProtectedSubmitInfo = {\n";
8532         s << "\tsType = " << value.sType << '\n';
8533         s << "\tpNext = " << value.pNext << '\n';
8534         s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
8535         s << '}';
8536         return s;
8537 }
8538
8539 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
8540 {
8541         s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
8542         s << "\tsType = " << value.sType << '\n';
8543         s << "\tpNext = " << value.pNext << '\n';
8544         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
8545         s << '}';
8546         return s;
8547 }
8548
8549 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
8550 {
8551         s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
8552         s << "\tsType = " << value.sType << '\n';
8553         s << "\tpNext = " << value.pNext << '\n';
8554         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
8555         s << '}';
8556         return s;
8557 }
8558
8559 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
8560 {
8561         s << "VkDeviceQueueInfo2 = {\n";
8562         s << "\tsType = " << value.sType << '\n';
8563         s << "\tpNext = " << value.pNext << '\n';
8564         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
8565         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
8566         s << "\tqueueIndex = " << value.queueIndex << '\n';
8567         s << '}';
8568         return s;
8569 }
8570
8571 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
8572 {
8573         s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
8574         s << "\tsType = " << value.sType << '\n';
8575         s << "\tpNext = " << value.pNext << '\n';
8576         s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
8577         s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
8578         s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
8579         s << '}';
8580         return s;
8581 }
8582
8583 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
8584 {
8585         s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
8586         s << "\tsType = " << value.sType << '\n';
8587         s << "\tpNext = " << value.pNext << '\n';
8588         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
8589         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
8590         s << '}';
8591         return s;
8592 }
8593
8594 std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
8595 {
8596         s << "VkSampleLocationEXT = {\n";
8597         s << "\tx = " << value.x << '\n';
8598         s << "\ty = " << value.y << '\n';
8599         s << '}';
8600         return s;
8601 }
8602
8603 std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
8604 {
8605         s << "VkSampleLocationsInfoEXT = {\n";
8606         s << "\tsType = " << value.sType << '\n';
8607         s << "\tpNext = " << value.pNext << '\n';
8608         s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
8609         s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
8610         s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
8611         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
8612         s << '}';
8613         return s;
8614 }
8615
8616 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
8617 {
8618         s << "VkAttachmentSampleLocationsEXT = {\n";
8619         s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
8620         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8621         s << '}';
8622         return s;
8623 }
8624
8625 std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
8626 {
8627         s << "VkSubpassSampleLocationsEXT = {\n";
8628         s << "\tsubpassIndex = " << value.subpassIndex << '\n';
8629         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8630         s << '}';
8631         return s;
8632 }
8633
8634 std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
8635 {
8636         s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
8637         s << "\tsType = " << value.sType << '\n';
8638         s << "\tpNext = " << value.pNext << '\n';
8639         s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
8640         s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
8641         s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
8642         s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
8643         s << '}';
8644         return s;
8645 }
8646
8647 std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
8648 {
8649         s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
8650         s << "\tsType = " << value.sType << '\n';
8651         s << "\tpNext = " << value.pNext << '\n';
8652         s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
8653         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8654         s << '}';
8655         return s;
8656 }
8657
8658 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
8659 {
8660         s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
8661         s << "\tsType = " << value.sType << '\n';
8662         s << "\tpNext = " << value.pNext << '\n';
8663         s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
8664         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
8665         s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
8666         s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
8667         s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
8668         s << '}';
8669         return s;
8670 }
8671
8672 std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
8673 {
8674         s << "VkMultisamplePropertiesEXT = {\n";
8675         s << "\tsType = " << value.sType << '\n';
8676         s << "\tpNext = " << value.pNext << '\n';
8677         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
8678         s << '}';
8679         return s;
8680 }
8681
8682 std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
8683 {
8684         s << "VkSamplerReductionModeCreateInfo = {\n";
8685         s << "\tsType = " << value.sType << '\n';
8686         s << "\tpNext = " << value.pNext << '\n';
8687         s << "\treductionMode = " << value.reductionMode << '\n';
8688         s << '}';
8689         return s;
8690 }
8691
8692 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
8693 {
8694         s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
8695         s << "\tsType = " << value.sType << '\n';
8696         s << "\tpNext = " << value.pNext << '\n';
8697         s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
8698         s << '}';
8699         return s;
8700 }
8701
8702 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
8703 {
8704         s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
8705         s << "\tsType = " << value.sType << '\n';
8706         s << "\tpNext = " << value.pNext << '\n';
8707         s << "\tmultiDraw = " << value.multiDraw << '\n';
8708         s << '}';
8709         return s;
8710 }
8711
8712 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
8713 {
8714         s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
8715         s << "\tsType = " << value.sType << '\n';
8716         s << "\tpNext = " << value.pNext << '\n';
8717         s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
8718         s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
8719         s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
8720         s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
8721         s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
8722         s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
8723         s << '}';
8724         return s;
8725 }
8726
8727 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
8728 {
8729         s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
8730         s << "\tsType = " << value.sType << '\n';
8731         s << "\tpNext = " << value.pNext << '\n';
8732         s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
8733         s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
8734         s << "\tblendOverlap = " << value.blendOverlap << '\n';
8735         s << '}';
8736         return s;
8737 }
8738
8739 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
8740 {
8741         s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
8742         s << "\tsType = " << value.sType << '\n';
8743         s << "\tpNext = " << value.pNext << '\n';
8744         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
8745         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
8746         s << '}';
8747         return s;
8748 }
8749
8750 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
8751 {
8752         s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
8753         s << "\tsType = " << value.sType << '\n';
8754         s << "\tpNext = " << value.pNext << '\n';
8755         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
8756         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
8757         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
8758         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
8759         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
8760         s << '}';
8761         return s;
8762 }
8763
8764 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
8765 {
8766         s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
8767         s << "\tsType = " << value.sType << '\n';
8768         s << "\tpNext = " << value.pNext << '\n';
8769         s << "\tdataSize = " << value.dataSize << '\n';
8770         s << "\tpData = " << value.pData << '\n';
8771         s << '}';
8772         return s;
8773 }
8774
8775 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
8776 {
8777         s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
8778         s << "\tsType = " << value.sType << '\n';
8779         s << "\tpNext = " << value.pNext << '\n';
8780         s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
8781         s << '}';
8782         return s;
8783 }
8784
8785 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
8786 {
8787         s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
8788         s << "\tsType = " << value.sType << '\n';
8789         s << "\tpNext = " << value.pNext << '\n';
8790         s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
8791         s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
8792         s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
8793         s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
8794         s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
8795         s << '}';
8796         return s;
8797 }
8798
8799 std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
8800 {
8801         s << "VkImageFormatListCreateInfo = {\n";
8802         s << "\tsType = " << value.sType << '\n';
8803         s << "\tpNext = " << value.pNext << '\n';
8804         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
8805         s << "\tpViewFormats = " << value.pViewFormats << '\n';
8806         s << '}';
8807         return s;
8808 }
8809
8810 std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
8811 {
8812         s << "VkValidationCacheCreateInfoEXT = {\n";
8813         s << "\tsType = " << value.sType << '\n';
8814         s << "\tpNext = " << value.pNext << '\n';
8815         s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
8816         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
8817         s << "\tpInitialData = " << value.pInitialData << '\n';
8818         s << '}';
8819         return s;
8820 }
8821
8822 std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
8823 {
8824         s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
8825         s << "\tsType = " << value.sType << '\n';
8826         s << "\tpNext = " << value.pNext << '\n';
8827         s << "\tvalidationCache = " << value.validationCache << '\n';
8828         s << '}';
8829         return s;
8830 }
8831
8832 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
8833 {
8834         s << "VkPhysicalDeviceMaintenance3Properties = {\n";
8835         s << "\tsType = " << value.sType << '\n';
8836         s << "\tpNext = " << value.pNext << '\n';
8837         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
8838         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
8839         s << '}';
8840         return s;
8841 }
8842
8843 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
8844 {
8845         s << "VkPhysicalDeviceMaintenance4Features = {\n";
8846         s << "\tsType = " << value.sType << '\n';
8847         s << "\tpNext = " << value.pNext << '\n';
8848         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
8849         s << '}';
8850         return s;
8851 }
8852
8853 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
8854 {
8855         s << "VkPhysicalDeviceMaintenance4Properties = {\n";
8856         s << "\tsType = " << value.sType << '\n';
8857         s << "\tpNext = " << value.pNext << '\n';
8858         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
8859         s << '}';
8860         return s;
8861 }
8862
8863 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
8864 {
8865         s << "VkDescriptorSetLayoutSupport = {\n";
8866         s << "\tsType = " << value.sType << '\n';
8867         s << "\tpNext = " << value.pNext << '\n';
8868         s << "\tsupported = " << value.supported << '\n';
8869         s << '}';
8870         return s;
8871 }
8872
8873 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
8874 {
8875         s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
8876         s << "\tsType = " << value.sType << '\n';
8877         s << "\tpNext = " << value.pNext << '\n';
8878         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
8879         s << '}';
8880         return s;
8881 }
8882
8883 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
8884 {
8885         s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
8886         s << "\tsType = " << value.sType << '\n';
8887         s << "\tpNext = " << value.pNext << '\n';
8888         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
8889         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
8890         s << '}';
8891         return s;
8892 }
8893
8894 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
8895 {
8896         s << "VkPhysicalDeviceFloatControlsProperties = {\n";
8897         s << "\tsType = " << value.sType << '\n';
8898         s << "\tpNext = " << value.pNext << '\n';
8899         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
8900         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
8901         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
8902         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
8903         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
8904         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
8905         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
8906         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
8907         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
8908         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
8909         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
8910         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
8911         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
8912         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
8913         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
8914         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
8915         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
8916         s << '}';
8917         return s;
8918 }
8919
8920 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
8921 {
8922         s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
8923         s << "\tsType = " << value.sType << '\n';
8924         s << "\tpNext = " << value.pNext << '\n';
8925         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
8926         s << '}';
8927         return s;
8928 }
8929
8930 std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
8931 {
8932         s << "VkShaderResourceUsageAMD = {\n";
8933         s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
8934         s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
8935         s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
8936         s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
8937         s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
8938         s << '}';
8939         return s;
8940 }
8941
8942 std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
8943 {
8944         s << "VkShaderStatisticsInfoAMD = {\n";
8945         s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
8946         s << "\tresourceUsage = " << value.resourceUsage << '\n';
8947         s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
8948         s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
8949         s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
8950         s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
8951         s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
8952         s << '}';
8953         return s;
8954 }
8955
8956 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
8957 {
8958         s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
8959         s << "\tsType = " << value.sType << '\n';
8960         s << "\tpNext = " << value.pNext << '\n';
8961         s << "\tglobalPriority = " << value.globalPriority << '\n';
8962         s << '}';
8963         return s;
8964 }
8965
8966 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
8967 {
8968         s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
8969         s << "\tsType = " << value.sType << '\n';
8970         s << "\tpNext = " << value.pNext << '\n';
8971         s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
8972         s << '}';
8973         return s;
8974 }
8975
8976 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
8977 {
8978         s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
8979         s << "\tsType = " << value.sType << '\n';
8980         s << "\tpNext = " << value.pNext << '\n';
8981         s << "\tpriorityCount = " << value.priorityCount << '\n';
8982         s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
8983         s << '}';
8984         return s;
8985 }
8986
8987 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
8988 {
8989         s << "VkDebugUtilsObjectNameInfoEXT = {\n";
8990         s << "\tsType = " << value.sType << '\n';
8991         s << "\tpNext = " << value.pNext << '\n';
8992         s << "\tobjectType = " << value.objectType << '\n';
8993         s << "\tobjectHandle = " << value.objectHandle << '\n';
8994         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
8995         s << '}';
8996         return s;
8997 }
8998
8999 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
9000 {
9001         s << "VkDebugUtilsObjectTagInfoEXT = {\n";
9002         s << "\tsType = " << value.sType << '\n';
9003         s << "\tpNext = " << value.pNext << '\n';
9004         s << "\tobjectType = " << value.objectType << '\n';
9005         s << "\tobjectHandle = " << value.objectHandle << '\n';
9006         s << "\ttagName = " << value.tagName << '\n';
9007         s << "\ttagSize = " << value.tagSize << '\n';
9008         s << "\tpTag = " << value.pTag << '\n';
9009         s << '}';
9010         return s;
9011 }
9012
9013 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9014 {
9015         s << "VkDebugUtilsLabelEXT = {\n";
9016         s << "\tsType = " << value.sType << '\n';
9017         s << "\tpNext = " << value.pNext << '\n';
9018         s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9019         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9020         s << '}';
9021         return s;
9022 }
9023
9024 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9025 {
9026         s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9027         s << "\tsType = " << value.sType << '\n';
9028         s << "\tpNext = " << value.pNext << '\n';
9029         s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9030         s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9031         s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9032         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9033         s << "\tpUserData = " << value.pUserData << '\n';
9034         s << '}';
9035         return s;
9036 }
9037
9038 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9039 {
9040         s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9041         s << "\tsType = " << value.sType << '\n';
9042         s << "\tpNext = " << value.pNext << '\n';
9043         s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9044         s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9045         s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9046         s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9047         s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9048         s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9049         s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9050         s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9051         s << "\tobjectCount = " << value.objectCount << '\n';
9052         s << "\tpObjects = " << value.pObjects << '\n';
9053         s << '}';
9054         return s;
9055 }
9056
9057 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
9058 {
9059         s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
9060         s << "\tsType = " << value.sType << '\n';
9061         s << "\tpNext = " << value.pNext << '\n';
9062         s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
9063         s << '}';
9064         return s;
9065 }
9066
9067 std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
9068 {
9069         s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
9070         s << "\tsType = " << value.sType << '\n';
9071         s << "\tpNext = " << value.pNext << '\n';
9072         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9073         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9074         s << "\tpUserData = " << value.pUserData << '\n';
9075         s << '}';
9076         return s;
9077 }
9078
9079 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
9080 {
9081         s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
9082         s << "\tsType = " << value.sType << '\n';
9083         s << "\tpNext = " << value.pNext << '\n';
9084         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9085         s << "\ttype = " << value.type << '\n';
9086         s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
9087         s << "\tsize = " << value.size << '\n';
9088         s << "\tobjectType = " << value.objectType << '\n';
9089         s << "\tobjectHandle = " << value.objectHandle << '\n';
9090         s << "\theapIndex = " << value.heapIndex << '\n';
9091         s << '}';
9092         return s;
9093 }
9094
9095 std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
9096 {
9097         s << "VkImportMemoryHostPointerInfoEXT = {\n";
9098         s << "\tsType = " << value.sType << '\n';
9099         s << "\tpNext = " << value.pNext << '\n';
9100         s << "\thandleType = " << value.handleType << '\n';
9101         s << "\tpHostPointer = " << value.pHostPointer << '\n';
9102         s << '}';
9103         return s;
9104 }
9105
9106 std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
9107 {
9108         s << "VkMemoryHostPointerPropertiesEXT = {\n";
9109         s << "\tsType = " << value.sType << '\n';
9110         s << "\tpNext = " << value.pNext << '\n';
9111         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9112         s << '}';
9113         return s;
9114 }
9115
9116 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
9117 {
9118         s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
9119         s << "\tsType = " << value.sType << '\n';
9120         s << "\tpNext = " << value.pNext << '\n';
9121         s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
9122         s << '}';
9123         return s;
9124 }
9125
9126 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
9127 {
9128         s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
9129         s << "\tsType = " << value.sType << '\n';
9130         s << "\tpNext = " << value.pNext << '\n';
9131         s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
9132         s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
9133         s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
9134         s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
9135         s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
9136         s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
9137         s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
9138         s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
9139         s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
9140         s << '}';
9141         return s;
9142 }
9143
9144 std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
9145 {
9146         s << "VkCalibratedTimestampInfoEXT = {\n";
9147         s << "\tsType = " << value.sType << '\n';
9148         s << "\tpNext = " << value.pNext << '\n';
9149         s << "\ttimeDomain = " << value.timeDomain << '\n';
9150         s << '}';
9151         return s;
9152 }
9153
9154 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
9155 {
9156         s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
9157         s << "\tsType = " << value.sType << '\n';
9158         s << "\tpNext = " << value.pNext << '\n';
9159         s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
9160         s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
9161         s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
9162         s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
9163         s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
9164         s << "\twavefrontSize = " << value.wavefrontSize << '\n';
9165         s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
9166         s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
9167         s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
9168         s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
9169         s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
9170         s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
9171         s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
9172         s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
9173         s << '}';
9174         return s;
9175 }
9176
9177 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
9178 {
9179         s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
9180         s << "\tsType = " << value.sType << '\n';
9181         s << "\tpNext = " << value.pNext << '\n';
9182         s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
9183         s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
9184         s << '}';
9185         return s;
9186 }
9187
9188 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
9189 {
9190         s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
9191         s << "\tsType = " << value.sType << '\n';
9192         s << "\tpNext = " << value.pNext << '\n';
9193         s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
9194         s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
9195         s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
9196         s << '}';
9197         return s;
9198 }
9199
9200 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
9201 {
9202         s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
9203         s << "\tsType = " << value.sType << '\n';
9204         s << "\tpNext = " << value.pNext << '\n';
9205         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
9206         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
9207         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
9208         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
9209         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
9210         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
9211         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
9212         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
9213         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
9214         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
9215         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
9216         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
9217         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
9218         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
9219         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
9220         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
9221         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
9222         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
9223         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
9224         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
9225         s << '}';
9226         return s;
9227 }
9228
9229 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
9230 {
9231         s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
9232         s << "\tsType = " << value.sType << '\n';
9233         s << "\tpNext = " << value.pNext << '\n';
9234         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
9235         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
9236         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
9237         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
9238         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
9239         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
9240         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
9241         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
9242         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
9243         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
9244         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
9245         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
9246         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
9247         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
9248         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
9249         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
9250         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
9251         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
9252         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
9253         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
9254         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
9255         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
9256         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
9257         s << '}';
9258         return s;
9259 }
9260
9261 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
9262 {
9263         s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
9264         s << "\tsType = " << value.sType << '\n';
9265         s << "\tpNext = " << value.pNext << '\n';
9266         s << "\tbindingCount = " << value.bindingCount << '\n';
9267         s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
9268         s << '}';
9269         return s;
9270 }
9271
9272 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
9273 {
9274         s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
9275         s << "\tsType = " << value.sType << '\n';
9276         s << "\tpNext = " << value.pNext << '\n';
9277         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
9278         s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
9279         s << '}';
9280         return s;
9281 }
9282
9283 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
9284 {
9285         s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
9286         s << "\tsType = " << value.sType << '\n';
9287         s << "\tpNext = " << value.pNext << '\n';
9288         s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
9289         s << '}';
9290         return s;
9291 }
9292
9293 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
9294 {
9295         s << "VkAttachmentDescription2 = {\n";
9296         s << "\tsType = " << value.sType << '\n';
9297         s << "\tpNext = " << value.pNext << '\n';
9298         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
9299         s << "\tformat = " << value.format << '\n';
9300         s << "\tsamples = " << value.samples << '\n';
9301         s << "\tloadOp = " << value.loadOp << '\n';
9302         s << "\tstoreOp = " << value.storeOp << '\n';
9303         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
9304         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
9305         s << "\tinitialLayout = " << value.initialLayout << '\n';
9306         s << "\tfinalLayout = " << value.finalLayout << '\n';
9307         s << '}';
9308         return s;
9309 }
9310
9311 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
9312 {
9313         s << "VkAttachmentReference2 = {\n";
9314         s << "\tsType = " << value.sType << '\n';
9315         s << "\tpNext = " << value.pNext << '\n';
9316         s << "\tattachment = " << value.attachment << '\n';
9317         s << "\tlayout = " << value.layout << '\n';
9318         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
9319         s << '}';
9320         return s;
9321 }
9322
9323 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
9324 {
9325         s << "VkSubpassDescription2 = {\n";
9326         s << "\tsType = " << value.sType << '\n';
9327         s << "\tpNext = " << value.pNext << '\n';
9328         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
9329         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
9330         s << "\tviewMask = " << value.viewMask << '\n';
9331         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
9332         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
9333         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
9334         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
9335         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
9336         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
9337         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
9338         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
9339         s << '}';
9340         return s;
9341 }
9342
9343 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
9344 {
9345         s << "VkSubpassDependency2 = {\n";
9346         s << "\tsType = " << value.sType << '\n';
9347         s << "\tpNext = " << value.pNext << '\n';
9348         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
9349         s << "\tdstSubpass = " << value.dstSubpass << '\n';
9350         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
9351         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
9352         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
9353         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
9354         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
9355         s << "\tviewOffset = " << value.viewOffset << '\n';
9356         s << '}';
9357         return s;
9358 }
9359
9360 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
9361 {
9362         s << "VkRenderPassCreateInfo2 = {\n";
9363         s << "\tsType = " << value.sType << '\n';
9364         s << "\tpNext = " << value.pNext << '\n';
9365         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
9366         s << "\tattachmentCount = " << value.attachmentCount << '\n';
9367         s << "\tpAttachments = " << value.pAttachments << '\n';
9368         s << "\tsubpassCount = " << value.subpassCount << '\n';
9369         s << "\tpSubpasses = " << value.pSubpasses << '\n';
9370         s << "\tdependencyCount = " << value.dependencyCount << '\n';
9371         s << "\tpDependencies = " << value.pDependencies << '\n';
9372         s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
9373         s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
9374         s << '}';
9375         return s;
9376 }
9377
9378 std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
9379 {
9380         s << "VkSubpassBeginInfo = {\n";
9381         s << "\tsType = " << value.sType << '\n';
9382         s << "\tpNext = " << value.pNext << '\n';
9383         s << "\tcontents = " << value.contents << '\n';
9384         s << '}';
9385         return s;
9386 }
9387
9388 std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
9389 {
9390         s << "VkSubpassEndInfo = {\n";
9391         s << "\tsType = " << value.sType << '\n';
9392         s << "\tpNext = " << value.pNext << '\n';
9393         s << '}';
9394         return s;
9395 }
9396
9397 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
9398 {
9399         s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
9400         s << "\tsType = " << value.sType << '\n';
9401         s << "\tpNext = " << value.pNext << '\n';
9402         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
9403         s << '}';
9404         return s;
9405 }
9406
9407 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
9408 {
9409         s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
9410         s << "\tsType = " << value.sType << '\n';
9411         s << "\tpNext = " << value.pNext << '\n';
9412         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
9413         s << '}';
9414         return s;
9415 }
9416
9417 std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
9418 {
9419         s << "VkSemaphoreTypeCreateInfo = {\n";
9420         s << "\tsType = " << value.sType << '\n';
9421         s << "\tpNext = " << value.pNext << '\n';
9422         s << "\tsemaphoreType = " << value.semaphoreType << '\n';
9423         s << "\tinitialValue = " << value.initialValue << '\n';
9424         s << '}';
9425         return s;
9426 }
9427
9428 std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
9429 {
9430         s << "VkTimelineSemaphoreSubmitInfo = {\n";
9431         s << "\tsType = " << value.sType << '\n';
9432         s << "\tpNext = " << value.pNext << '\n';
9433         s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
9434         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
9435         s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
9436         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
9437         s << '}';
9438         return s;
9439 }
9440
9441 std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
9442 {
9443         s << "VkSemaphoreWaitInfo = {\n";
9444         s << "\tsType = " << value.sType << '\n';
9445         s << "\tpNext = " << value.pNext << '\n';
9446         s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
9447         s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
9448         s << "\tpSemaphores = " << value.pSemaphores << '\n';
9449         s << "\tpValues = " << value.pValues << '\n';
9450         s << '}';
9451         return s;
9452 }
9453
9454 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
9455 {
9456         s << "VkSemaphoreSignalInfo = {\n";
9457         s << "\tsType = " << value.sType << '\n';
9458         s << "\tpNext = " << value.pNext << '\n';
9459         s << "\tsemaphore = " << value.semaphore << '\n';
9460         s << "\tvalue = " << value.value << '\n';
9461         s << '}';
9462         return s;
9463 }
9464
9465 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
9466 {
9467         s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
9468         s << "\tbinding = " << value.binding << '\n';
9469         s << "\tdivisor = " << value.divisor << '\n';
9470         s << '}';
9471         return s;
9472 }
9473
9474 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
9475 {
9476         s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
9477         s << "\tsType = " << value.sType << '\n';
9478         s << "\tpNext = " << value.pNext << '\n';
9479         s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
9480         s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
9481         s << '}';
9482         return s;
9483 }
9484
9485 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
9486 {
9487         s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
9488         s << "\tsType = " << value.sType << '\n';
9489         s << "\tpNext = " << value.pNext << '\n';
9490         s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
9491         s << '}';
9492         return s;
9493 }
9494
9495 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
9496 {
9497         s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
9498         s << "\tsType = " << value.sType << '\n';
9499         s << "\tpNext = " << value.pNext << '\n';
9500         s << "\tpciDomain = " << value.pciDomain << '\n';
9501         s << "\tpciBus = " << value.pciBus << '\n';
9502         s << "\tpciDevice = " << value.pciDevice << '\n';
9503         s << "\tpciFunction = " << value.pciFunction << '\n';
9504         s << '}';
9505         return s;
9506 }
9507
9508 std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
9509 {
9510         s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
9511         s << "\tsType = " << value.sType << '\n';
9512         s << "\tpNext = " << value.pNext << '\n';
9513         s << "\tbuffer = " << value.buffer << '\n';
9514         s << '}';
9515         return s;
9516 }
9517
9518 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
9519 {
9520         s << "VkAndroidHardwareBufferUsageANDROID = {\n";
9521         s << "\tsType = " << value.sType << '\n';
9522         s << "\tpNext = " << value.pNext << '\n';
9523         s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
9524         s << '}';
9525         return s;
9526 }
9527
9528 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
9529 {
9530         s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
9531         s << "\tsType = " << value.sType << '\n';
9532         s << "\tpNext = " << value.pNext << '\n';
9533         s << "\tallocationSize = " << value.allocationSize << '\n';
9534         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9535         s << '}';
9536         return s;
9537 }
9538
9539 std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
9540 {
9541         s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
9542         s << "\tsType = " << value.sType << '\n';
9543         s << "\tpNext = " << value.pNext << '\n';
9544         s << "\tmemory = " << value.memory << '\n';
9545         s << '}';
9546         return s;
9547 }
9548
9549 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
9550 {
9551         s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
9552         s << "\tsType = " << value.sType << '\n';
9553         s << "\tpNext = " << value.pNext << '\n';
9554         s << "\tformat = " << value.format << '\n';
9555         s << "\texternalFormat = " << value.externalFormat << '\n';
9556         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
9557         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
9558         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
9559         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
9560         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
9561         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
9562         s << '}';
9563         return s;
9564 }
9565
9566 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
9567 {
9568         s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
9569         s << "\tsType = " << value.sType << '\n';
9570         s << "\tpNext = " << value.pNext << '\n';
9571         s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
9572         s << '}';
9573         return s;
9574 }
9575
9576 std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
9577 {
9578         s << "VkExternalFormatANDROID = {\n";
9579         s << "\tsType = " << value.sType << '\n';
9580         s << "\tpNext = " << value.pNext << '\n';
9581         s << "\texternalFormat = " << value.externalFormat << '\n';
9582         s << '}';
9583         return s;
9584 }
9585
9586 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
9587 {
9588         s << "VkPhysicalDevice8BitStorageFeatures = {\n";
9589         s << "\tsType = " << value.sType << '\n';
9590         s << "\tpNext = " << value.pNext << '\n';
9591         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
9592         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
9593         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
9594         s << '}';
9595         return s;
9596 }
9597
9598 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
9599 {
9600         s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
9601         s << "\tsType = " << value.sType << '\n';
9602         s << "\tpNext = " << value.pNext << '\n';
9603         s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
9604         s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
9605         s << '}';
9606         return s;
9607 }
9608
9609 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
9610 {
9611         s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
9612         s << "\tsType = " << value.sType << '\n';
9613         s << "\tpNext = " << value.pNext << '\n';
9614         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
9615         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
9616         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
9617         s << '}';
9618         return s;
9619 }
9620
9621 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
9622 {
9623         s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
9624         s << "\tsType = " << value.sType << '\n';
9625         s << "\tpNext = " << value.pNext << '\n';
9626         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
9627         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
9628         s << '}';
9629         return s;
9630 }
9631
9632 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
9633 {
9634         s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
9635         s << "\tsType = " << value.sType << '\n';
9636         s << "\tpNext = " << value.pNext << '\n';
9637         s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
9638         s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
9639         s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
9640         s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
9641         s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
9642         s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
9643         s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
9644         s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
9645         s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
9646         s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
9647         s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
9648         s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
9649         s << '}';
9650         return s;
9651 }
9652
9653 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
9654 {
9655         s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
9656         s << "\tsType = " << value.sType << '\n';
9657         s << "\tpNext = " << value.pNext << '\n';
9658         s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
9659         s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
9660         s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
9661         s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
9662         s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
9663         s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
9664         s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
9665         s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
9666         s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
9667         s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
9668         s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
9669         s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
9670         s << '}';
9671         return s;
9672 }
9673
9674 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
9675 {
9676         s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
9677         s << "\tsType = " << value.sType << '\n';
9678         s << "\tpNext = " << value.pNext << '\n';
9679         s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
9680         s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
9681         s << '}';
9682         return s;
9683 }
9684
9685 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
9686 {
9687         s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
9688         s << "\tsType = " << value.sType << '\n';
9689         s << "\tpNext = " << value.pNext << '\n';
9690         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
9691         s << '}';
9692         return s;
9693 }
9694
9695 std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
9696 {
9697         s << "VkCheckpointDataNV = {\n";
9698         s << "\tsType = " << value.sType << '\n';
9699         s << "\tpNext = " << value.pNext << '\n';
9700         s << "\tstage = " << value.stage << '\n';
9701         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
9702         s << '}';
9703         return s;
9704 }
9705
9706 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
9707 {
9708         s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
9709         s << "\tsType = " << value.sType << '\n';
9710         s << "\tpNext = " << value.pNext << '\n';
9711         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
9712         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
9713         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
9714         s << "\tindependentResolve = " << value.independentResolve << '\n';
9715         s << '}';
9716         return s;
9717 }
9718
9719 std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
9720 {
9721         s << "VkSubpassDescriptionDepthStencilResolve = {\n";
9722         s << "\tsType = " << value.sType << '\n';
9723         s << "\tpNext = " << value.pNext << '\n';
9724         s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
9725         s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
9726         s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
9727         s << '}';
9728         return s;
9729 }
9730
9731 std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
9732 {
9733         s << "VkImageViewASTCDecodeModeEXT = {\n";
9734         s << "\tsType = " << value.sType << '\n';
9735         s << "\tpNext = " << value.pNext << '\n';
9736         s << "\tdecodeMode = " << value.decodeMode << '\n';
9737         s << '}';
9738         return s;
9739 }
9740
9741 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
9742 {
9743         s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
9744         s << "\tsType = " << value.sType << '\n';
9745         s << "\tpNext = " << value.pNext << '\n';
9746         s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
9747         s << '}';
9748         return s;
9749 }
9750
9751 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
9752 {
9753         s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
9754         s << "\tsType = " << value.sType << '\n';
9755         s << "\tpNext = " << value.pNext << '\n';
9756         s << "\ttransformFeedback = " << value.transformFeedback << '\n';
9757         s << "\tgeometryStreams = " << value.geometryStreams << '\n';
9758         s << '}';
9759         return s;
9760 }
9761
9762 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
9763 {
9764         s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
9765         s << "\tsType = " << value.sType << '\n';
9766         s << "\tpNext = " << value.pNext << '\n';
9767         s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
9768         s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
9769         s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
9770         s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
9771         s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
9772         s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
9773         s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
9774         s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
9775         s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
9776         s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
9777         s << '}';
9778         return s;
9779 }
9780
9781 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
9782 {
9783         s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
9784         s << "\tsType = " << value.sType << '\n';
9785         s << "\tpNext = " << value.pNext << '\n';
9786         s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
9787         s << "\trasterizationStream = " << value.rasterizationStream << '\n';
9788         s << '}';
9789         return s;
9790 }
9791
9792 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
9793 {
9794         s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
9795         s << "\tsType = " << value.sType << '\n';
9796         s << "\tpNext = " << value.pNext << '\n';
9797         s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
9798         s << '}';
9799         return s;
9800 }
9801
9802 std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
9803 {
9804         s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
9805         s << "\tsType = " << value.sType << '\n';
9806         s << "\tpNext = " << value.pNext << '\n';
9807         s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
9808         s << '}';
9809         return s;
9810 }
9811
9812 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
9813 {
9814         s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
9815         s << "\tsType = " << value.sType << '\n';
9816         s << "\tpNext = " << value.pNext << '\n';
9817         s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
9818         s << '}';
9819         return s;
9820 }
9821
9822 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
9823 {
9824         s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
9825         s << "\tsType = " << value.sType << '\n';
9826         s << "\tpNext = " << value.pNext << '\n';
9827         s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
9828         s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
9829         s << '}';
9830         return s;
9831 }
9832
9833 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
9834 {
9835         s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
9836         s << "\tsType = " << value.sType << '\n';
9837         s << "\tpNext = " << value.pNext << '\n';
9838         s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
9839         s << '}';
9840         return s;
9841 }
9842
9843 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
9844 {
9845         s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
9846         s << "\tsType = " << value.sType << '\n';
9847         s << "\tpNext = " << value.pNext << '\n';
9848         s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
9849         s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
9850         s << '}';
9851         return s;
9852 }
9853
9854 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
9855 {
9856         s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
9857         s << "\tsType = " << value.sType << '\n';
9858         s << "\tpNext = " << value.pNext << '\n';
9859         s << "\timageFootprint = " << value.imageFootprint << '\n';
9860         s << '}';
9861         return s;
9862 }
9863
9864 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
9865 {
9866         s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
9867         s << "\tsType = " << value.sType << '\n';
9868         s << "\tpNext = " << value.pNext << '\n';
9869         s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
9870         s << '}';
9871         return s;
9872 }
9873
9874 std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
9875 {
9876         s << "VkShadingRatePaletteNV = {\n";
9877         s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
9878         s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
9879         s << '}';
9880         return s;
9881 }
9882
9883 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
9884 {
9885         s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
9886         s << "\tsType = " << value.sType << '\n';
9887         s << "\tpNext = " << value.pNext << '\n';
9888         s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
9889         s << "\tviewportCount = " << value.viewportCount << '\n';
9890         s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
9891         s << '}';
9892         return s;
9893 }
9894
9895 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
9896 {
9897         s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
9898         s << "\tsType = " << value.sType << '\n';
9899         s << "\tpNext = " << value.pNext << '\n';
9900         s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
9901         s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
9902         s << '}';
9903         return s;
9904 }
9905
9906 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
9907 {
9908         s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
9909         s << "\tsType = " << value.sType << '\n';
9910         s << "\tpNext = " << value.pNext << '\n';
9911         s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
9912         s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
9913         s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
9914         s << '}';
9915         return s;
9916 }
9917
9918 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
9919 {
9920         s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
9921         s << "\tsType = " << value.sType << '\n';
9922         s << "\tpNext = " << value.pNext << '\n';
9923         s << "\tinvocationMask = " << value.invocationMask << '\n';
9924         s << '}';
9925         return s;
9926 }
9927
9928 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
9929 {
9930         s << "VkCoarseSampleLocationNV = {\n";
9931         s << "\tpixelX = " << value.pixelX << '\n';
9932         s << "\tpixelY = " << value.pixelY << '\n';
9933         s << "\tsample = " << value.sample << '\n';
9934         s << '}';
9935         return s;
9936 }
9937
9938 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
9939 {
9940         s << "VkCoarseSampleOrderCustomNV = {\n";
9941         s << "\tshadingRate = " << value.shadingRate << '\n';
9942         s << "\tsampleCount = " << value.sampleCount << '\n';
9943         s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
9944         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9945         s << '}';
9946         return s;
9947 }
9948
9949 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
9950 {
9951         s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
9952         s << "\tsType = " << value.sType << '\n';
9953         s << "\tpNext = " << value.pNext << '\n';
9954         s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
9955         s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
9956         s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
9957         s << '}';
9958         return s;
9959 }
9960
9961 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
9962 {
9963         s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
9964         s << "\tsType = " << value.sType << '\n';
9965         s << "\tpNext = " << value.pNext << '\n';
9966         s << "\ttaskShader = " << value.taskShader << '\n';
9967         s << "\tmeshShader = " << value.meshShader << '\n';
9968         s << '}';
9969         return s;
9970 }
9971
9972 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
9973 {
9974         s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
9975         s << "\tsType = " << value.sType << '\n';
9976         s << "\tpNext = " << value.pNext << '\n';
9977         s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
9978         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
9979         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
9980         s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
9981         s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
9982         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
9983         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
9984         s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
9985         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
9986         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
9987         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
9988         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
9989         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
9990         s << '}';
9991         return s;
9992 }
9993
9994 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
9995 {
9996         s << "VkDrawMeshTasksIndirectCommandNV = {\n";
9997         s << "\ttaskCount = " << value.taskCount << '\n';
9998         s << "\tfirstTask = " << value.firstTask << '\n';
9999         s << '}';
10000         return s;
10001 }
10002
10003 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesEXT& value)
10004 {
10005         s << "VkPhysicalDeviceMeshShaderFeaturesEXT = {\n";
10006         s << "\tsType = " << value.sType << '\n';
10007         s << "\tpNext = " << value.pNext << '\n';
10008         s << "\ttaskShader = " << value.taskShader << '\n';
10009         s << "\tmeshShader = " << value.meshShader << '\n';
10010         s << "\tmultiviewMeshShader = " << value.multiviewMeshShader << '\n';
10011         s << "\tprimitiveFragmentShadingRateMeshShader = " << value.primitiveFragmentShadingRateMeshShader << '\n';
10012         s << "\tmeshShaderQueries = " << value.meshShaderQueries << '\n';
10013         s << '}';
10014         return s;
10015 }
10016
10017 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesEXT& value)
10018 {
10019         s << "VkPhysicalDeviceMeshShaderPropertiesEXT = {\n";
10020         s << "\tsType = " << value.sType << '\n';
10021         s << "\tpNext = " << value.pNext << '\n';
10022         s << "\tmaxTaskWorkGroupTotalCount = " << value.maxTaskWorkGroupTotalCount << '\n';
10023         s << "\tmaxTaskWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupCount), DE_ARRAY_END(value.maxTaskWorkGroupCount)) << '\n';
10024         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10025         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10026         s << "\tmaxTaskPayloadSize = " << value.maxTaskPayloadSize << '\n';
10027         s << "\tmaxTaskSharedMemorySize = " << value.maxTaskSharedMemorySize << '\n';
10028         s << "\tmaxTaskPayloadAndSharedMemorySize = " << value.maxTaskPayloadAndSharedMemorySize << '\n';
10029         s << "\tmaxMeshWorkGroupTotalCount = " << value.maxMeshWorkGroupTotalCount << '\n';
10030         s << "\tmaxMeshWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupCount), DE_ARRAY_END(value.maxMeshWorkGroupCount)) << '\n';
10031         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10032         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10033         s << "\tmaxMeshSharedMemorySize = " << value.maxMeshSharedMemorySize << '\n';
10034         s << "\tmaxMeshPayloadAndSharedMemorySize = " << value.maxMeshPayloadAndSharedMemorySize << '\n';
10035         s << "\tmaxMeshOutputMemorySize = " << value.maxMeshOutputMemorySize << '\n';
10036         s << "\tmaxMeshPayloadAndOutputMemorySize = " << value.maxMeshPayloadAndOutputMemorySize << '\n';
10037         s << "\tmaxMeshOutputComponents = " << value.maxMeshOutputComponents << '\n';
10038         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10039         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10040         s << "\tmaxMeshOutputLayers = " << value.maxMeshOutputLayers << '\n';
10041         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10042         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10043         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10044         s << "\tmaxPreferredTaskWorkGroupInvocations = " << value.maxPreferredTaskWorkGroupInvocations << '\n';
10045         s << "\tmaxPreferredMeshWorkGroupInvocations = " << value.maxPreferredMeshWorkGroupInvocations << '\n';
10046         s << "\tprefersLocalInvocationVertexOutput = " << value.prefersLocalInvocationVertexOutput << '\n';
10047         s << "\tprefersLocalInvocationPrimitiveOutput = " << value.prefersLocalInvocationPrimitiveOutput << '\n';
10048         s << "\tprefersCompactVertexOutput = " << value.prefersCompactVertexOutput << '\n';
10049         s << "\tprefersCompactPrimitiveOutput = " << value.prefersCompactPrimitiveOutput << '\n';
10050         s << '}';
10051         return s;
10052 }
10053
10054 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandEXT& value)
10055 {
10056         s << "VkDrawMeshTasksIndirectCommandEXT = {\n";
10057         s << "\tgroupCountX = " << value.groupCountX << '\n';
10058         s << "\tgroupCountY = " << value.groupCountY << '\n';
10059         s << "\tgroupCountZ = " << value.groupCountZ << '\n';
10060         s << '}';
10061         return s;
10062 }
10063
10064 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
10065 {
10066         s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
10067         s << "\tsType = " << value.sType << '\n';
10068         s << "\tpNext = " << value.pNext << '\n';
10069         s << "\ttype = " << value.type << '\n';
10070         s << "\tgeneralShader = " << value.generalShader << '\n';
10071         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10072         s << "\tanyHitShader = " << value.anyHitShader << '\n';
10073         s << "\tintersectionShader = " << value.intersectionShader << '\n';
10074         s << '}';
10075         return s;
10076 }
10077
10078 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
10079 {
10080         s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
10081         s << "\tsType = " << value.sType << '\n';
10082         s << "\tpNext = " << value.pNext << '\n';
10083         s << "\ttype = " << value.type << '\n';
10084         s << "\tgeneralShader = " << value.generalShader << '\n';
10085         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10086         s << "\tanyHitShader = " << value.anyHitShader << '\n';
10087         s << "\tintersectionShader = " << value.intersectionShader << '\n';
10088         s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
10089         s << '}';
10090         return s;
10091 }
10092
10093 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
10094 {
10095         s << "VkRayTracingPipelineCreateInfoNV = {\n";
10096         s << "\tsType = " << value.sType << '\n';
10097         s << "\tpNext = " << value.pNext << '\n';
10098         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10099         s << "\tstageCount = " << value.stageCount << '\n';
10100         s << "\tpStages = " << value.pStages << '\n';
10101         s << "\tgroupCount = " << value.groupCount << '\n';
10102         s << "\tpGroups = " << value.pGroups << '\n';
10103         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10104         s << "\tlayout = " << value.layout << '\n';
10105         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10106         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10107         s << '}';
10108         return s;
10109 }
10110
10111 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
10112 {
10113         s << "VkRayTracingPipelineCreateInfoKHR = {\n";
10114         s << "\tsType = " << value.sType << '\n';
10115         s << "\tpNext = " << value.pNext << '\n';
10116         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10117         s << "\tstageCount = " << value.stageCount << '\n';
10118         s << "\tpStages = " << value.pStages << '\n';
10119         s << "\tgroupCount = " << value.groupCount << '\n';
10120         s << "\tpGroups = " << value.pGroups << '\n';
10121         s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
10122         s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
10123         s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
10124         s << "\tpDynamicState = " << value.pDynamicState << '\n';
10125         s << "\tlayout = " << value.layout << '\n';
10126         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10127         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10128         s << '}';
10129         return s;
10130 }
10131
10132 std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
10133 {
10134         s << "VkGeometryTrianglesNV = {\n";
10135         s << "\tsType = " << value.sType << '\n';
10136         s << "\tpNext = " << value.pNext << '\n';
10137         s << "\tvertexData = " << value.vertexData << '\n';
10138         s << "\tvertexOffset = " << value.vertexOffset << '\n';
10139         s << "\tvertexCount = " << value.vertexCount << '\n';
10140         s << "\tvertexStride = " << value.vertexStride << '\n';
10141         s << "\tvertexFormat = " << value.vertexFormat << '\n';
10142         s << "\tindexData = " << value.indexData << '\n';
10143         s << "\tindexOffset = " << value.indexOffset << '\n';
10144         s << "\tindexCount = " << value.indexCount << '\n';
10145         s << "\tindexType = " << value.indexType << '\n';
10146         s << "\ttransformData = " << value.transformData << '\n';
10147         s << "\ttransformOffset = " << value.transformOffset << '\n';
10148         s << '}';
10149         return s;
10150 }
10151
10152 std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
10153 {
10154         s << "VkGeometryAABBNV = {\n";
10155         s << "\tsType = " << value.sType << '\n';
10156         s << "\tpNext = " << value.pNext << '\n';
10157         s << "\taabbData = " << value.aabbData << '\n';
10158         s << "\tnumAABBs = " << value.numAABBs << '\n';
10159         s << "\tstride = " << value.stride << '\n';
10160         s << "\toffset = " << value.offset << '\n';
10161         s << '}';
10162         return s;
10163 }
10164
10165 std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
10166 {
10167         s << "VkGeometryDataNV = {\n";
10168         s << "\ttriangles = " << value.triangles << '\n';
10169         s << "\taabbs = " << value.aabbs << '\n';
10170         s << '}';
10171         return s;
10172 }
10173
10174 std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
10175 {
10176         s << "VkGeometryNV = {\n";
10177         s << "\tsType = " << value.sType << '\n';
10178         s << "\tpNext = " << value.pNext << '\n';
10179         s << "\tgeometryType = " << value.geometryType << '\n';
10180         s << "\tgeometry = " << value.geometry << '\n';
10181         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
10182         s << '}';
10183         return s;
10184 }
10185
10186 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
10187 {
10188         s << "VkAccelerationStructureInfoNV = {\n";
10189         s << "\tsType = " << value.sType << '\n';
10190         s << "\tpNext = " << value.pNext << '\n';
10191         s << "\ttype = " << value.type << '\n';
10192         s << "\tflags = " << value.flags << '\n';
10193         s << "\tinstanceCount = " << value.instanceCount << '\n';
10194         s << "\tgeometryCount = " << value.geometryCount << '\n';
10195         s << "\tpGeometries = " << value.pGeometries << '\n';
10196         s << '}';
10197         return s;
10198 }
10199
10200 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
10201 {
10202         s << "VkAccelerationStructureCreateInfoNV = {\n";
10203         s << "\tsType = " << value.sType << '\n';
10204         s << "\tpNext = " << value.pNext << '\n';
10205         s << "\tcompactedSize = " << value.compactedSize << '\n';
10206         s << "\tinfo = " << value.info << '\n';
10207         s << '}';
10208         return s;
10209 }
10210
10211 std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
10212 {
10213         s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
10214         s << "\tsType = " << value.sType << '\n';
10215         s << "\tpNext = " << value.pNext << '\n';
10216         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10217         s << "\tmemory = " << value.memory << '\n';
10218         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
10219         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
10220         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
10221         s << '}';
10222         return s;
10223 }
10224
10225 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
10226 {
10227         s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
10228         s << "\tsType = " << value.sType << '\n';
10229         s << "\tpNext = " << value.pNext << '\n';
10230         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10231         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10232         s << '}';
10233         return s;
10234 }
10235
10236 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
10237 {
10238         s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
10239         s << "\tsType = " << value.sType << '\n';
10240         s << "\tpNext = " << value.pNext << '\n';
10241         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10242         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10243         s << '}';
10244         return s;
10245 }
10246
10247 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
10248 {
10249         s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
10250         s << "\tsType = " << value.sType << '\n';
10251         s << "\tpNext = " << value.pNext << '\n';
10252         s << "\ttype = " << value.type << '\n';
10253         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10254         s << '}';
10255         return s;
10256 }
10257
10258 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
10259 {
10260         s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
10261         s << "\tsType = " << value.sType << '\n';
10262         s << "\tpNext = " << value.pNext << '\n';
10263         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10264         s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
10265         s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
10266         s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
10267         s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
10268         s << '}';
10269         return s;
10270 }
10271
10272 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
10273 {
10274         s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
10275         s << "\tsType = " << value.sType << '\n';
10276         s << "\tpNext = " << value.pNext << '\n';
10277         s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
10278         s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
10279         s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
10280         s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
10281         s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
10282         s << '}';
10283         return s;
10284 }
10285
10286 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
10287 {
10288         s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
10289         s << "\tsType = " << value.sType << '\n';
10290         s << "\tpNext = " << value.pNext << '\n';
10291         s << "\trayQuery = " << value.rayQuery << '\n';
10292         s << '}';
10293         return s;
10294 }
10295
10296 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
10297 {
10298         s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
10299         s << "\tsType = " << value.sType << '\n';
10300         s << "\tpNext = " << value.pNext << '\n';
10301         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10302         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10303         s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
10304         s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
10305         s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
10306         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10307         s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
10308         s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
10309         s << '}';
10310         return s;
10311 }
10312
10313 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
10314 {
10315         s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
10316         s << "\tsType = " << value.sType << '\n';
10317         s << "\tpNext = " << value.pNext << '\n';
10318         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10319         s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
10320         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10321         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10322         s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
10323         s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
10324         s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
10325         s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
10326         s << '}';
10327         return s;
10328 }
10329
10330 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
10331 {
10332         s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
10333         s << "\tsType = " << value.sType << '\n';
10334         s << "\tpNext = " << value.pNext << '\n';
10335         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10336         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10337         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10338         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10339         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10340         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10341         s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
10342         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10343         s << '}';
10344         return s;
10345 }
10346
10347 std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
10348 {
10349         s << "VkStridedDeviceAddressRegionKHR = {\n";
10350         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10351         s << "\tstride = " << value.stride << '\n';
10352         s << "\tsize = " << value.size << '\n';
10353         s << '}';
10354         return s;
10355 }
10356
10357 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
10358 {
10359         s << "VkTraceRaysIndirectCommandKHR = {\n";
10360         s << "\twidth = " << value.width << '\n';
10361         s << "\theight = " << value.height << '\n';
10362         s << "\tdepth = " << value.depth << '\n';
10363         s << '}';
10364         return s;
10365 }
10366
10367 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
10368 {
10369         s << "VkTraceRaysIndirectCommand2KHR = {\n";
10370         s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
10371         s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
10372         s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
10373         s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
10374         s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
10375         s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
10376         s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
10377         s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
10378         s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
10379         s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
10380         s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
10381         s << "\twidth = " << value.width << '\n';
10382         s << "\theight = " << value.height << '\n';
10383         s << "\tdepth = " << value.depth << '\n';
10384         s << '}';
10385         return s;
10386 }
10387
10388 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
10389 {
10390         s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
10391         s << "\tsType = " << value.sType << '\n';
10392         s << "\tpNext = " << value.pNext << '\n';
10393         s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
10394         s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
10395         s << '}';
10396         return s;
10397 }
10398
10399 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
10400 {
10401         s << "VkDrmFormatModifierPropertiesListEXT = {\n";
10402         s << "\tsType = " << value.sType << '\n';
10403         s << "\tpNext = " << value.pNext << '\n';
10404         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10405         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10406         s << '}';
10407         return s;
10408 }
10409
10410 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
10411 {
10412         s << "VkDrmFormatModifierPropertiesEXT = {\n";
10413         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10414         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10415         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
10416         s << '}';
10417         return s;
10418 }
10419
10420 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
10421 {
10422         s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
10423         s << "\tsType = " << value.sType << '\n';
10424         s << "\tpNext = " << value.pNext << '\n';
10425         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10426         s << "\tsharingMode = " << value.sharingMode << '\n';
10427         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
10428         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
10429         s << '}';
10430         return s;
10431 }
10432
10433 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
10434 {
10435         s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
10436         s << "\tsType = " << value.sType << '\n';
10437         s << "\tpNext = " << value.pNext << '\n';
10438         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10439         s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
10440         s << '}';
10441         return s;
10442 }
10443
10444 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
10445 {
10446         s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
10447         s << "\tsType = " << value.sType << '\n';
10448         s << "\tpNext = " << value.pNext << '\n';
10449         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10450         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10451         s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
10452         s << '}';
10453         return s;
10454 }
10455
10456 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
10457 {
10458         s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
10459         s << "\tsType = " << value.sType << '\n';
10460         s << "\tpNext = " << value.pNext << '\n';
10461         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10462         s << '}';
10463         return s;
10464 }
10465
10466 std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
10467 {
10468         s << "VkImageStencilUsageCreateInfo = {\n";
10469         s << "\tsType = " << value.sType << '\n';
10470         s << "\tpNext = " << value.pNext << '\n';
10471         s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
10472         s << '}';
10473         return s;
10474 }
10475
10476 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
10477 {
10478         s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
10479         s << "\tsType = " << value.sType << '\n';
10480         s << "\tpNext = " << value.pNext << '\n';
10481         s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
10482         s << '}';
10483         return s;
10484 }
10485
10486 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
10487 {
10488         s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
10489         s << "\tsType = " << value.sType << '\n';
10490         s << "\tpNext = " << value.pNext << '\n';
10491         s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
10492         s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
10493         s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
10494         s << '}';
10495         return s;
10496 }
10497
10498 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
10499 {
10500         s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
10501         s << "\tsType = " << value.sType << '\n';
10502         s << "\tpNext = " << value.pNext << '\n';
10503         s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
10504         s << '}';
10505         return s;
10506 }
10507
10508 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
10509 {
10510         s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
10511         s << "\tsType = " << value.sType << '\n';
10512         s << "\tpNext = " << value.pNext << '\n';
10513         s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
10514         s << '}';
10515         return s;
10516 }
10517
10518 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
10519 {
10520         s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
10521         s << "\tsType = " << value.sType << '\n';
10522         s << "\tpNext = " << value.pNext << '\n';
10523         s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
10524         s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
10525         s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
10526         s << '}';
10527         return s;
10528 }
10529
10530 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
10531 {
10532         s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
10533         s << "\tsType = " << value.sType << '\n';
10534         s << "\tpNext = " << value.pNext << '\n';
10535         s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
10536         s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
10537         s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
10538         s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
10539         s << '}';
10540         return s;
10541 }
10542
10543 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
10544 {
10545         s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
10546         s << "\tsType = " << value.sType << '\n';
10547         s << "\tpNext = " << value.pNext << '\n';
10548         s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
10549         s << '}';
10550         return s;
10551 }
10552
10553 std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
10554 {
10555         s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
10556         s << "\tsType = " << value.sType << '\n';
10557         s << "\tpNext = " << value.pNext << '\n';
10558         s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
10559         s << '}';
10560         return s;
10561 }
10562
10563 std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
10564 {
10565         s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
10566         s << "\tsType = " << value.sType << '\n';
10567         s << "\tpNext = " << value.pNext << '\n';
10568         s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
10569         s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
10570         s << '}';
10571         return s;
10572 }
10573
10574 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
10575 {
10576         s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
10577         s << "\tsType = " << value.sType << '\n';
10578         s << "\tpNext = " << value.pNext << '\n';
10579         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
10580         s << '}';
10581         return s;
10582 }
10583
10584 std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
10585 {
10586         s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
10587         s << "\tsType = " << value.sType << '\n';
10588         s << "\tpNext = " << value.pNext << '\n';
10589         s << "\tsupportsProtected = " << value.supportsProtected << '\n';
10590         s << '}';
10591         return s;
10592 }
10593
10594 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
10595 {
10596         s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
10597         s << "\tsType = " << value.sType << '\n';
10598         s << "\tpNext = " << value.pNext << '\n';
10599         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
10600         s << '}';
10601         return s;
10602 }
10603
10604 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
10605 {
10606         s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
10607         s << "\tsType = " << value.sType << '\n';
10608         s << "\tpNext = " << value.pNext << '\n';
10609         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10610         s << '}';
10611         return s;
10612 }
10613
10614 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
10615 {
10616         s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
10617         s << "\tsType = " << value.sType << '\n';
10618         s << "\tpNext = " << value.pNext << '\n';
10619         s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
10620         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10621         s << '}';
10622         return s;
10623 }
10624
10625 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
10626 {
10627         s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
10628         s << "\tsType = " << value.sType << '\n';
10629         s << "\tpNext = " << value.pNext << '\n';
10630         s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
10631         s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
10632         s << '}';
10633         return s;
10634 }
10635
10636 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
10637 {
10638         s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
10639         s << "\tsType = " << value.sType << '\n';
10640         s << "\tpNext = " << value.pNext << '\n';
10641         s << "\tmemoryPriority = " << value.memoryPriority << '\n';
10642         s << '}';
10643         return s;
10644 }
10645
10646 std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
10647 {
10648         s << "VkMemoryPriorityAllocateInfoEXT = {\n";
10649         s << "\tsType = " << value.sType << '\n';
10650         s << "\tpNext = " << value.pNext << '\n';
10651         s << "\tpriority = " << value.priority << '\n';
10652         s << '}';
10653         return s;
10654 }
10655
10656 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
10657 {
10658         s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
10659         s << "\tsType = " << value.sType << '\n';
10660         s << "\tpNext = " << value.pNext << '\n';
10661         s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
10662         s << '}';
10663         return s;
10664 }
10665
10666 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
10667 {
10668         s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
10669         s << "\tsType = " << value.sType << '\n';
10670         s << "\tpNext = " << value.pNext << '\n';
10671         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10672         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10673         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10674         s << '}';
10675         return s;
10676 }
10677
10678 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
10679 {
10680         s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
10681         s << "\tsType = " << value.sType << '\n';
10682         s << "\tpNext = " << value.pNext << '\n';
10683         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10684         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10685         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10686         s << '}';
10687         return s;
10688 }
10689
10690 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
10691 {
10692         s << "VkBufferDeviceAddressInfo = {\n";
10693         s << "\tsType = " << value.sType << '\n';
10694         s << "\tpNext = " << value.pNext << '\n';
10695         s << "\tbuffer = " << value.buffer << '\n';
10696         s << '}';
10697         return s;
10698 }
10699
10700 std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
10701 {
10702         s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
10703         s << "\tsType = " << value.sType << '\n';
10704         s << "\tpNext = " << value.pNext << '\n';
10705         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
10706         s << '}';
10707         return s;
10708 }
10709
10710 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
10711 {
10712         s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
10713         s << "\tsType = " << value.sType << '\n';
10714         s << "\tpNext = " << value.pNext << '\n';
10715         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10716         s << '}';
10717         return s;
10718 }
10719
10720 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
10721 {
10722         s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
10723         s << "\tsType = " << value.sType << '\n';
10724         s << "\tpNext = " << value.pNext << '\n';
10725         s << "\timageViewType = " << value.imageViewType << '\n';
10726         s << '}';
10727         return s;
10728 }
10729
10730 std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
10731 {
10732         s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
10733         s << "\tsType = " << value.sType << '\n';
10734         s << "\tpNext = " << value.pNext << '\n';
10735         s << "\tfilterCubic = " << value.filterCubic << '\n';
10736         s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
10737         s << '}';
10738         return s;
10739 }
10740
10741 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
10742 {
10743         s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
10744         s << "\tsType = " << value.sType << '\n';
10745         s << "\tpNext = " << value.pNext << '\n';
10746         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
10747         s << '}';
10748         return s;
10749 }
10750
10751 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
10752 {
10753         s << "VkFramebufferAttachmentsCreateInfo = {\n";
10754         s << "\tsType = " << value.sType << '\n';
10755         s << "\tpNext = " << value.pNext << '\n';
10756         s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
10757         s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
10758         s << '}';
10759         return s;
10760 }
10761
10762 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
10763 {
10764         s << "VkFramebufferAttachmentImageInfo = {\n";
10765         s << "\tsType = " << value.sType << '\n';
10766         s << "\tpNext = " << value.pNext << '\n';
10767         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
10768         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
10769         s << "\twidth = " << value.width << '\n';
10770         s << "\theight = " << value.height << '\n';
10771         s << "\tlayerCount = " << value.layerCount << '\n';
10772         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
10773         s << "\tpViewFormats = " << value.pViewFormats << '\n';
10774         s << '}';
10775         return s;
10776 }
10777
10778 std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
10779 {
10780         s << "VkRenderPassAttachmentBeginInfo = {\n";
10781         s << "\tsType = " << value.sType << '\n';
10782         s << "\tpNext = " << value.pNext << '\n';
10783         s << "\tattachmentCount = " << value.attachmentCount << '\n';
10784         s << "\tpAttachments = " << value.pAttachments << '\n';
10785         s << '}';
10786         return s;
10787 }
10788
10789 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
10790 {
10791         s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
10792         s << "\tsType = " << value.sType << '\n';
10793         s << "\tpNext = " << value.pNext << '\n';
10794         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
10795         s << '}';
10796         return s;
10797 }
10798
10799 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
10800 {
10801         s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
10802         s << "\tsType = " << value.sType << '\n';
10803         s << "\tpNext = " << value.pNext << '\n';
10804         s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
10805         s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
10806         s << '}';
10807         return s;
10808 }
10809
10810 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
10811 {
10812         s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
10813         s << "\tsType = " << value.sType << '\n';
10814         s << "\tpNext = " << value.pNext << '\n';
10815         s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
10816         s << '}';
10817         return s;
10818 }
10819
10820 std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
10821 {
10822         s << "VkCooperativeMatrixPropertiesNV = {\n";
10823         s << "\tsType = " << value.sType << '\n';
10824         s << "\tpNext = " << value.pNext << '\n';
10825         s << "\tMSize = " << value.MSize << '\n';
10826         s << "\tNSize = " << value.NSize << '\n';
10827         s << "\tKSize = " << value.KSize << '\n';
10828         s << "\tAType = " << value.AType << '\n';
10829         s << "\tBType = " << value.BType << '\n';
10830         s << "\tCType = " << value.CType << '\n';
10831         s << "\tDType = " << value.DType << '\n';
10832         s << "\tscope = " << value.scope << '\n';
10833         s << '}';
10834         return s;
10835 }
10836
10837 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
10838 {
10839         s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
10840         s << "\tsType = " << value.sType << '\n';
10841         s << "\tpNext = " << value.pNext << '\n';
10842         s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
10843         s << '}';
10844         return s;
10845 }
10846
10847 std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
10848 {
10849         s << "VkImageViewHandleInfoNVX = {\n";
10850         s << "\tsType = " << value.sType << '\n';
10851         s << "\tpNext = " << value.pNext << '\n';
10852         s << "\timageView = " << value.imageView << '\n';
10853         s << "\tdescriptorType = " << value.descriptorType << '\n';
10854         s << "\tsampler = " << value.sampler << '\n';
10855         s << '}';
10856         return s;
10857 }
10858
10859 std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
10860 {
10861         s << "VkImageViewAddressPropertiesNVX = {\n";
10862         s << "\tsType = " << value.sType << '\n';
10863         s << "\tpNext = " << value.pNext << '\n';
10864         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10865         s << "\tsize = " << value.size << '\n';
10866         s << '}';
10867         return s;
10868 }
10869
10870 std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
10871 {
10872         s << "VkPresentFrameTokenGGP = {\n";
10873         s << "\tsType = " << value.sType << '\n';
10874         s << "\tpNext = " << value.pNext << '\n';
10875         s << "\tframeToken = " << value.frameToken << '\n';
10876         s << '}';
10877         return s;
10878 }
10879
10880 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
10881 {
10882         s << "VkPipelineCreationFeedback = {\n";
10883         s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
10884         s << "\tduration = " << value.duration << '\n';
10885         s << '}';
10886         return s;
10887 }
10888
10889 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
10890 {
10891         s << "VkPipelineCreationFeedbackCreateInfo = {\n";
10892         s << "\tsType = " << value.sType << '\n';
10893         s << "\tpNext = " << value.pNext << '\n';
10894         s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
10895         s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
10896         s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
10897         s << '}';
10898         return s;
10899 }
10900
10901 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
10902 {
10903         s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
10904         s << "\tsType = " << value.sType << '\n';
10905         s << "\tpNext = " << value.pNext << '\n';
10906         s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
10907         s << '}';
10908         return s;
10909 }
10910
10911 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
10912 {
10913         s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
10914         s << "\tsType = " << value.sType << '\n';
10915         s << "\tpNext = " << value.pNext << '\n';
10916         s << "\thmonitor = " << value.hmonitor << '\n';
10917         s << '}';
10918         return s;
10919 }
10920
10921 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
10922 {
10923         s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
10924         s << "\tsType = " << value.sType << '\n';
10925         s << "\tpNext = " << value.pNext << '\n';
10926         s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
10927         s << '}';
10928         return s;
10929 }
10930
10931 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
10932 {
10933         s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
10934         s << "\tsType = " << value.sType << '\n';
10935         s << "\tpNext = " << value.pNext << '\n';
10936         s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
10937         s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
10938         s << '}';
10939         return s;
10940 }
10941
10942 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
10943 {
10944         s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
10945         s << "\tsType = " << value.sType << '\n';
10946         s << "\tpNext = " << value.pNext << '\n';
10947         s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
10948         s << '}';
10949         return s;
10950 }
10951
10952 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
10953 {
10954         s << "VkPerformanceCounterKHR = {\n";
10955         s << "\tsType = " << value.sType << '\n';
10956         s << "\tpNext = " << value.pNext << '\n';
10957         s << "\tunit = " << value.unit << '\n';
10958         s << "\tscope = " << value.scope << '\n';
10959         s << "\tstorage = " << value.storage << '\n';
10960         s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.uuid))) << '\n';
10961         s << '}';
10962         return s;
10963 }
10964
10965 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
10966 {
10967         s << "VkPerformanceCounterDescriptionKHR = {\n";
10968         s << "\tsType = " << value.sType << '\n';
10969         s << "\tpNext = " << value.pNext << '\n';
10970         s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
10971         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
10972         s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
10973         s << "\tdescription = " << (const char*)value.description << '\n';
10974         s << '}';
10975         return s;
10976 }
10977
10978 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
10979 {
10980         s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
10981         s << "\tsType = " << value.sType << '\n';
10982         s << "\tpNext = " << value.pNext << '\n';
10983         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
10984         s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
10985         s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
10986         s << '}';
10987         return s;
10988 }
10989
10990 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
10991 {
10992         s << "VkPerformanceCounterResultKHR = {\n";
10993         s << "\tint32 = " << value.int32 << '\n';
10994         s << "\tint64 = " << value.int64 << '\n';
10995         s << "\tuint32 = " << value.uint32 << '\n';
10996         s << "\tuint64 = " << value.uint64 << '\n';
10997         s << "\tfloat32 = " << value.float32 << '\n';
10998         s << "\tfloat64 = " << value.float64 << '\n';
10999         s << '}';
11000         return s;
11001 }
11002
11003 std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
11004 {
11005         s << "VkAcquireProfilingLockInfoKHR = {\n";
11006         s << "\tsType = " << value.sType << '\n';
11007         s << "\tpNext = " << value.pNext << '\n';
11008         s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
11009         s << "\ttimeout = " << value.timeout << '\n';
11010         s << '}';
11011         return s;
11012 }
11013
11014 std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
11015 {
11016         s << "VkPerformanceQuerySubmitInfoKHR = {\n";
11017         s << "\tsType = " << value.sType << '\n';
11018         s << "\tpNext = " << value.pNext << '\n';
11019         s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
11020         s << '}';
11021         return s;
11022 }
11023
11024 std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
11025 {
11026         s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
11027         s << "\tsType = " << value.sType << '\n';
11028         s << "\tpNext = " << value.pNext << '\n';
11029         s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
11030         s << '}';
11031         return s;
11032 }
11033
11034 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
11035 {
11036         s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
11037         s << "\tsType = " << value.sType << '\n';
11038         s << "\tpNext = " << value.pNext << '\n';
11039         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11040         s << '}';
11041         return s;
11042 }
11043
11044 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
11045 {
11046         s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
11047         s << "\tsType = " << value.sType << '\n';
11048         s << "\tpNext = " << value.pNext << '\n';
11049         s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
11050         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11051         s << '}';
11052         return s;
11053 }
11054
11055 std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
11056 {
11057         s << "VkFramebufferMixedSamplesCombinationNV = {\n";
11058         s << "\tsType = " << value.sType << '\n';
11059         s << "\tpNext = " << value.pNext << '\n';
11060         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11061         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
11062         s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
11063         s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
11064         s << '}';
11065         return s;
11066 }
11067
11068 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
11069 {
11070         s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
11071         s << "\tsType = " << value.sType << '\n';
11072         s << "\tpNext = " << value.pNext << '\n';
11073         s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
11074         s << '}';
11075         return s;
11076 }
11077
11078 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
11079 {
11080         s << "VkPerformanceValueDataINTEL = {\n";
11081         s << "\tvalue32 = " << value.value32 << '\n';
11082         s << "\tvalue64 = " << value.value64 << '\n';
11083         s << "\tvalueFloat = " << value.valueFloat << '\n';
11084         s << "\tvalueBool = " << value.valueBool << '\n';
11085         s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
11086         s << '}';
11087         return s;
11088 }
11089
11090 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
11091 {
11092         s << "VkPerformanceValueINTEL = {\n";
11093         s << "\ttype = " << value.type << '\n';
11094         s << "\tdata = " << value.data << '\n';
11095         s << '}';
11096         return s;
11097 }
11098
11099 std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
11100 {
11101         s << "VkInitializePerformanceApiInfoINTEL = {\n";
11102         s << "\tsType = " << value.sType << '\n';
11103         s << "\tpNext = " << value.pNext << '\n';
11104         s << "\tpUserData = " << value.pUserData << '\n';
11105         s << '}';
11106         return s;
11107 }
11108
11109 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
11110 {
11111         s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
11112         s << "\tsType = " << value.sType << '\n';
11113         s << "\tpNext = " << value.pNext << '\n';
11114         s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
11115         s << '}';
11116         return s;
11117 }
11118
11119 std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
11120 {
11121         s << "VkPerformanceMarkerInfoINTEL = {\n";
11122         s << "\tsType = " << value.sType << '\n';
11123         s << "\tpNext = " << value.pNext << '\n';
11124         s << "\tmarker = " << value.marker << '\n';
11125         s << '}';
11126         return s;
11127 }
11128
11129 std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
11130 {
11131         s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
11132         s << "\tsType = " << value.sType << '\n';
11133         s << "\tpNext = " << value.pNext << '\n';
11134         s << "\tmarker = " << value.marker << '\n';
11135         s << '}';
11136         return s;
11137 }
11138
11139 std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
11140 {
11141         s << "VkPerformanceOverrideInfoINTEL = {\n";
11142         s << "\tsType = " << value.sType << '\n';
11143         s << "\tpNext = " << value.pNext << '\n';
11144         s << "\ttype = " << value.type << '\n';
11145         s << "\tenable = " << value.enable << '\n';
11146         s << "\tparameter = " << value.parameter << '\n';
11147         s << '}';
11148         return s;
11149 }
11150
11151 std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
11152 {
11153         s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
11154         s << "\tsType = " << value.sType << '\n';
11155         s << "\tpNext = " << value.pNext << '\n';
11156         s << "\ttype = " << value.type << '\n';
11157         s << '}';
11158         return s;
11159 }
11160
11161 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
11162 {
11163         s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
11164         s << "\tsType = " << value.sType << '\n';
11165         s << "\tpNext = " << value.pNext << '\n';
11166         s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
11167         s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
11168         s << '}';
11169         return s;
11170 }
11171
11172 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
11173 {
11174         s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
11175         s << "\tsType = " << value.sType << '\n';
11176         s << "\tpNext = " << value.pNext << '\n';
11177         s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
11178         s << '}';
11179         return s;
11180 }
11181
11182 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
11183 {
11184         s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
11185         s << "\tsType = " << value.sType << '\n';
11186         s << "\tpNext = " << value.pNext << '\n';
11187         s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
11188         s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
11189         s << '}';
11190         return s;
11191 }
11192
11193 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
11194 {
11195         s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
11196         s << "\tsType = " << value.sType << '\n';
11197         s << "\tpNext = " << value.pNext << '\n';
11198         s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
11199         s << '}';
11200         return s;
11201 }
11202
11203 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
11204 {
11205         s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
11206         s << "\tsType = " << value.sType << '\n';
11207         s << "\tpNext = " << value.pNext << '\n';
11208         s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
11209         s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
11210         s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
11211         s << '}';
11212         return s;
11213 }
11214
11215 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
11216 {
11217         s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
11218         s << "\tsType = " << value.sType << '\n';
11219         s << "\tpNext = " << value.pNext << '\n';
11220         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
11221         s << '}';
11222         return s;
11223 }
11224
11225 std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
11226 {
11227         s << "VkAttachmentReferenceStencilLayout = {\n";
11228         s << "\tsType = " << value.sType << '\n';
11229         s << "\tpNext = " << value.pNext << '\n';
11230         s << "\tstencilLayout = " << value.stencilLayout << '\n';
11231         s << '}';
11232         return s;
11233 }
11234
11235 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
11236 {
11237         s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
11238         s << "\tsType = " << value.sType << '\n';
11239         s << "\tpNext = " << value.pNext << '\n';
11240         s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
11241         s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
11242         s << '}';
11243         return s;
11244 }
11245
11246 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
11247 {
11248         s << "VkAttachmentDescriptionStencilLayout = {\n";
11249         s << "\tsType = " << value.sType << '\n';
11250         s << "\tpNext = " << value.pNext << '\n';
11251         s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
11252         s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
11253         s << '}';
11254         return s;
11255 }
11256
11257 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
11258 {
11259         s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
11260         s << "\tsType = " << value.sType << '\n';
11261         s << "\tpNext = " << value.pNext << '\n';
11262         s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
11263         s << '}';
11264         return s;
11265 }
11266
11267 std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
11268 {
11269         s << "VkPipelineInfoKHR = {\n";
11270         s << "\tsType = " << value.sType << '\n';
11271         s << "\tpNext = " << value.pNext << '\n';
11272         s << "\tpipeline = " << value.pipeline << '\n';
11273         s << '}';
11274         return s;
11275 }
11276
11277 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
11278 {
11279         s << "VkPipelineExecutablePropertiesKHR = {\n";
11280         s << "\tsType = " << value.sType << '\n';
11281         s << "\tpNext = " << value.pNext << '\n';
11282         s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
11283         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11284         s << "\tdescription = " << (const char*)value.description << '\n';
11285         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
11286         s << '}';
11287         return s;
11288 }
11289
11290 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
11291 {
11292         s << "VkPipelineExecutableInfoKHR = {\n";
11293         s << "\tsType = " << value.sType << '\n';
11294         s << "\tpNext = " << value.pNext << '\n';
11295         s << "\tpipeline = " << value.pipeline << '\n';
11296         s << "\texecutableIndex = " << value.executableIndex << '\n';
11297         s << '}';
11298         return s;
11299 }
11300
11301 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
11302 {
11303         s << "VkPipelineExecutableStatisticValueKHR = {\n";
11304         s << "\tb32 = " << value.b32 << '\n';
11305         s << "\ti64 = " << value.i64 << '\n';
11306         s << "\tu64 = " << value.u64 << '\n';
11307         s << "\tf64 = " << value.f64 << '\n';
11308         s << '}';
11309         return s;
11310 }
11311
11312 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
11313 {
11314         s << "VkPipelineExecutableStatisticKHR = {\n";
11315         s << "\tsType = " << value.sType << '\n';
11316         s << "\tpNext = " << value.pNext << '\n';
11317         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11318         s << "\tdescription = " << (const char*)value.description << '\n';
11319         s << "\tformat = " << value.format << '\n';
11320         s << "\tvalue = " << value.value << '\n';
11321         s << '}';
11322         return s;
11323 }
11324
11325 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
11326 {
11327         s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
11328         s << "\tsType = " << value.sType << '\n';
11329         s << "\tpNext = " << value.pNext << '\n';
11330         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11331         s << "\tdescription = " << (const char*)value.description << '\n';
11332         s << "\tisText = " << value.isText << '\n';
11333         s << "\tdataSize = " << value.dataSize << '\n';
11334         s << "\tpData = " << value.pData << '\n';
11335         s << '}';
11336         return s;
11337 }
11338
11339 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
11340 {
11341         s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
11342         s << "\tsType = " << value.sType << '\n';
11343         s << "\tpNext = " << value.pNext << '\n';
11344         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
11345         s << '}';
11346         return s;
11347 }
11348
11349 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
11350 {
11351         s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
11352         s << "\tsType = " << value.sType << '\n';
11353         s << "\tpNext = " << value.pNext << '\n';
11354         s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
11355         s << '}';
11356         return s;
11357 }
11358
11359 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
11360 {
11361         s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
11362         s << "\tsType = " << value.sType << '\n';
11363         s << "\tpNext = " << value.pNext << '\n';
11364         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
11365         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
11366         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
11367         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
11368         s << '}';
11369         return s;
11370 }
11371
11372 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
11373 {
11374         s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
11375         s << "\tsType = " << value.sType << '\n';
11376         s << "\tpNext = " << value.pNext << '\n';
11377         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
11378         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
11379         s << '}';
11380         return s;
11381 }
11382
11383 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
11384 {
11385         s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
11386         s << "\tsType = " << value.sType << '\n';
11387         s << "\tpNext = " << value.pNext << '\n';
11388         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
11389         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
11390         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
11391         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
11392         s << '}';
11393         return s;
11394 }
11395
11396 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
11397 {
11398         s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
11399         s << "\tsType = " << value.sType << '\n';
11400         s << "\tpNext = " << value.pNext << '\n';
11401         s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
11402         s << '}';
11403         return s;
11404 }
11405
11406 std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
11407 {
11408         s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
11409         s << "\tsType = " << value.sType << '\n';
11410         s << "\tpNext = " << value.pNext << '\n';
11411         s << "\trenderPass = " << value.renderPass << '\n';
11412         s << "\tsubpass = " << value.subpass << '\n';
11413         s << '}';
11414         return s;
11415 }
11416
11417 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
11418 {
11419         s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
11420         s << "\tsType = " << value.sType << '\n';
11421         s << "\tpNext = " << value.pNext << '\n';
11422         s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
11423         s << '}';
11424         return s;
11425 }
11426
11427 std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
11428 {
11429         s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
11430         s << "\tsType = " << value.sType << '\n';
11431         s << "\tpNext = " << value.pNext << '\n';
11432         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
11433         s << '}';
11434         return s;
11435 }
11436
11437 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
11438 {
11439         s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
11440         s << "\tsType = " << value.sType << '\n';
11441         s << "\tpNext = " << value.pNext << '\n';
11442         s << "\tmemory = " << value.memory << '\n';
11443         s << '}';
11444         return s;
11445 }
11446
11447 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
11448 {
11449         s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
11450         s << "\tsType = " << value.sType << '\n';
11451         s << "\tpNext = " << value.pNext << '\n';
11452         s << "\trectangularLines = " << value.rectangularLines << '\n';
11453         s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
11454         s << "\tsmoothLines = " << value.smoothLines << '\n';
11455         s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
11456         s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
11457         s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
11458         s << '}';
11459         return s;
11460 }
11461
11462 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
11463 {
11464         s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
11465         s << "\tsType = " << value.sType << '\n';
11466         s << "\tpNext = " << value.pNext << '\n';
11467         s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
11468         s << '}';
11469         return s;
11470 }
11471
11472 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
11473 {
11474         s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
11475         s << "\tsType = " << value.sType << '\n';
11476         s << "\tpNext = " << value.pNext << '\n';
11477         s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
11478         s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
11479         s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
11480         s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
11481         s << '}';
11482         return s;
11483 }
11484
11485 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
11486 {
11487         s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
11488         s << "\tsType = " << value.sType << '\n';
11489         s << "\tpNext = " << value.pNext << '\n';
11490         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
11491         s << '}';
11492         return s;
11493 }
11494
11495 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
11496 {
11497         s << "VkPhysicalDeviceVulkan11Features = {\n";
11498         s << "\tsType = " << value.sType << '\n';
11499         s << "\tpNext = " << value.pNext << '\n';
11500         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
11501         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
11502         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
11503         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
11504         s << "\tmultiview = " << value.multiview << '\n';
11505         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
11506         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
11507         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
11508         s << "\tvariablePointers = " << value.variablePointers << '\n';
11509         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
11510         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
11511         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
11512         s << '}';
11513         return s;
11514 }
11515
11516 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
11517 {
11518         s << "VkPhysicalDeviceVulkan11Properties = {\n";
11519         s << "\tsType = " << value.sType << '\n';
11520         s << "\tpNext = " << value.pNext << '\n';
11521         s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
11522         s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
11523         s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
11524         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
11525         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
11526         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
11527         s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
11528         s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
11529         s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
11530         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
11531         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
11532         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
11533         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
11534         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
11535         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
11536         s << '}';
11537         return s;
11538 }
11539
11540 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
11541 {
11542         s << "VkPhysicalDeviceVulkan12Features = {\n";
11543         s << "\tsType = " << value.sType << '\n';
11544         s << "\tpNext = " << value.pNext << '\n';
11545         s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
11546         s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
11547         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
11548         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
11549         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
11550         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
11551         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
11552         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
11553         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
11554         s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
11555         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
11556         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
11557         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
11558         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
11559         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
11560         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
11561         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
11562         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
11563         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
11564         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
11565         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
11566         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
11567         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
11568         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
11569         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
11570         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
11571         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
11572         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
11573         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
11574         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
11575         s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
11576         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
11577         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
11578         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
11579         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
11580         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
11581         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
11582         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
11583         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11584         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11585         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11586         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
11587         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
11588         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
11589         s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
11590         s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
11591         s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
11592         s << '}';
11593         return s;
11594 }
11595
11596 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
11597 {
11598         s << "VkPhysicalDeviceVulkan12Properties = {\n";
11599         s << "\tsType = " << value.sType << '\n';
11600         s << "\tpNext = " << value.pNext << '\n';
11601         s << "\tdriverID = " << value.driverID << '\n';
11602         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
11603         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
11604         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
11605         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
11606         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
11607         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
11608         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
11609         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
11610         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
11611         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
11612         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
11613         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
11614         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
11615         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
11616         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
11617         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
11618         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
11619         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
11620         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
11621         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
11622         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
11623         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
11624         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
11625         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
11626         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
11627         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
11628         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
11629         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
11630         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
11631         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
11632         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
11633         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
11634         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
11635         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
11636         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
11637         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
11638         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
11639         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
11640         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
11641         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
11642         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
11643         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
11644         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
11645         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
11646         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
11647         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
11648         s << "\tindependentResolve = " << value.independentResolve << '\n';
11649         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
11650         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
11651         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
11652         s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
11653         s << '}';
11654         return s;
11655 }
11656
11657 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
11658 {
11659         s << "VkPhysicalDeviceVulkan13Features = {\n";
11660         s << "\tsType = " << value.sType << '\n';
11661         s << "\tpNext = " << value.pNext << '\n';
11662         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
11663         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
11664         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
11665         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
11666         s << "\tprivateData = " << value.privateData << '\n';
11667         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
11668         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
11669         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
11670         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
11671         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
11672         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
11673         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
11674         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
11675         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
11676         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
11677         s << '}';
11678         return s;
11679 }
11680
11681 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
11682 {
11683         s << "VkPhysicalDeviceVulkan13Properties = {\n";
11684         s << "\tsType = " << value.sType << '\n';
11685         s << "\tpNext = " << value.pNext << '\n';
11686         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
11687         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
11688         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
11689         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
11690         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
11691         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
11692         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
11693         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
11694         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
11695         s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
11696         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
11697         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
11698         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
11699         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
11700         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
11701         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
11702         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
11703         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
11704         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
11705         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
11706         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
11707         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
11708         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
11709         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
11710         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
11711         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
11712         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
11713         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
11714         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
11715         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
11716         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
11717         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
11718         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
11719         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
11720         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
11721         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
11722         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
11723         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
11724         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
11725         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
11726         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
11727         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
11728         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
11729         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
11730         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
11731         s << '}';
11732         return s;
11733 }
11734
11735 std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
11736 {
11737         s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
11738         s << "\tsType = " << value.sType << '\n';
11739         s << "\tpNext = " << value.pNext << '\n';
11740         s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
11741         s << '}';
11742         return s;
11743 }
11744
11745 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
11746 {
11747         s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
11748         s << "\tsType = " << value.sType << '\n';
11749         s << "\tpNext = " << value.pNext << '\n';
11750         s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
11751         s << '}';
11752         return s;
11753 }
11754
11755 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
11756 {
11757         s << "VkPhysicalDeviceToolProperties = {\n";
11758         s << "\tsType = " << value.sType << '\n';
11759         s << "\tpNext = " << value.pNext << '\n';
11760         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11761         s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
11762         s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
11763         s << "\tdescription = " << (const char*)value.description << '\n';
11764         s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
11765         s << '}';
11766         return s;
11767 }
11768
11769 std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
11770 {
11771         s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
11772         s << "\tsType = " << value.sType << '\n';
11773         s << "\tpNext = " << value.pNext << '\n';
11774         s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
11775         s << "\tformat = " << value.format << '\n';
11776         s << '}';
11777         return s;
11778 }
11779
11780 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
11781 {
11782         s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
11783         s << "\tsType = " << value.sType << '\n';
11784         s << "\tpNext = " << value.pNext << '\n';
11785         s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
11786         s << '}';
11787         return s;
11788 }
11789
11790 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
11791 {
11792         s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
11793         s << "\tsType = " << value.sType << '\n';
11794         s << "\tpNext = " << value.pNext << '\n';
11795         s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
11796         s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
11797         s << '}';
11798         return s;
11799 }
11800
11801 std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
11802 {
11803         s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
11804         s << "\tsType = " << value.sType << '\n';
11805         s << "\tpNext = " << value.pNext << '\n';
11806         s << "\tcomponents = " << value.components << '\n';
11807         s << "\tsrgb = " << value.srgb << '\n';
11808         s << '}';
11809         return s;
11810 }
11811
11812 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
11813 {
11814         s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
11815         s << "\tsType = " << value.sType << '\n';
11816         s << "\tpNext = " << value.pNext << '\n';
11817         s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
11818         s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
11819         s << '}';
11820         return s;
11821 }
11822
11823 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
11824 {
11825         s << "VkDeviceOrHostAddressKHR = {\n";
11826         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11827         s << "\thostAddress = " << value.hostAddress << '\n';
11828         s << '}';
11829         return s;
11830 }
11831
11832 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
11833 {
11834         s << "VkDeviceOrHostAddressConstKHR = {\n";
11835         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11836         s << "\thostAddress = " << value.hostAddress << '\n';
11837         s << '}';
11838         return s;
11839 }
11840
11841 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
11842 {
11843         s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
11844         s << "\tsType = " << value.sType << '\n';
11845         s << "\tpNext = " << value.pNext << '\n';
11846         s << "\tvertexFormat = " << value.vertexFormat << '\n';
11847         s << "\tvertexData = " << value.vertexData << '\n';
11848         s << "\tvertexStride = " << value.vertexStride << '\n';
11849         s << "\tmaxVertex = " << value.maxVertex << '\n';
11850         s << "\tindexType = " << value.indexType << '\n';
11851         s << "\tindexData = " << value.indexData << '\n';
11852         s << "\ttransformData = " << value.transformData << '\n';
11853         s << '}';
11854         return s;
11855 }
11856
11857 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
11858 {
11859         s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
11860         s << "\tsType = " << value.sType << '\n';
11861         s << "\tpNext = " << value.pNext << '\n';
11862         s << "\tdata = " << value.data << '\n';
11863         s << "\tstride = " << value.stride << '\n';
11864         s << '}';
11865         return s;
11866 }
11867
11868 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
11869 {
11870         s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
11871         s << "\tsType = " << value.sType << '\n';
11872         s << "\tpNext = " << value.pNext << '\n';
11873         s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
11874         s << "\tdata = " << value.data << '\n';
11875         s << '}';
11876         return s;
11877 }
11878
11879 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
11880 {
11881         s << "VkAccelerationStructureGeometryDataKHR = {\n";
11882         s << "\ttriangles = " << value.triangles << '\n';
11883         s << "\taabbs = " << value.aabbs << '\n';
11884         s << "\tinstances = " << value.instances << '\n';
11885         s << '}';
11886         return s;
11887 }
11888
11889 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
11890 {
11891         s << "VkAccelerationStructureGeometryKHR = {\n";
11892         s << "\tsType = " << value.sType << '\n';
11893         s << "\tpNext = " << value.pNext << '\n';
11894         s << "\tgeometryType = " << value.geometryType << '\n';
11895         s << "\tgeometry = " << value.geometry << '\n';
11896         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
11897         s << '}';
11898         return s;
11899 }
11900
11901 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
11902 {
11903         s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
11904         s << "\tsType = " << value.sType << '\n';
11905         s << "\tpNext = " << value.pNext << '\n';
11906         s << "\ttype = " << value.type << '\n';
11907         s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
11908         s << "\tmode = " << value.mode << '\n';
11909         s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
11910         s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
11911         s << "\tgeometryCount = " << value.geometryCount << '\n';
11912         s << "\tpGeometries = " << value.pGeometries << '\n';
11913         s << "\tppGeometries = " << value.ppGeometries << '\n';
11914         s << "\tscratchData = " << value.scratchData << '\n';
11915         s << '}';
11916         return s;
11917 }
11918
11919 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
11920 {
11921         s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
11922         s << "\tprimitiveCount = " << value.primitiveCount << '\n';
11923         s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
11924         s << "\tfirstVertex = " << value.firstVertex << '\n';
11925         s << "\ttransformOffset = " << value.transformOffset << '\n';
11926         s << '}';
11927         return s;
11928 }
11929
11930 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
11931 {
11932         s << "VkAccelerationStructureCreateInfoKHR = {\n";
11933         s << "\tsType = " << value.sType << '\n';
11934         s << "\tpNext = " << value.pNext << '\n';
11935         s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
11936         s << "\tbuffer = " << value.buffer << '\n';
11937         s << "\toffset = " << value.offset << '\n';
11938         s << "\tsize = " << value.size << '\n';
11939         s << "\ttype = " << value.type << '\n';
11940         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11941         s << '}';
11942         return s;
11943 }
11944
11945 std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
11946 {
11947         s << "VkAabbPositionsKHR = {\n";
11948         s << "\tminX = " << value.minX << '\n';
11949         s << "\tminY = " << value.minY << '\n';
11950         s << "\tminZ = " << value.minZ << '\n';
11951         s << "\tmaxX = " << value.maxX << '\n';
11952         s << "\tmaxY = " << value.maxY << '\n';
11953         s << "\tmaxZ = " << value.maxZ << '\n';
11954         s << '}';
11955         return s;
11956 }
11957
11958 std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
11959 {
11960         s << "VkTransformMatrixKHR = {\n";
11961         s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
11962         s << '}';
11963         return s;
11964 }
11965
11966 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
11967 {
11968         s << "VkAccelerationStructureInstanceKHR = {\n";
11969         s << "\ttransform = " << value.transform << '\n';
11970         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
11971         s << "\tmask = " << value.mask << '\n';
11972         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
11973         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
11974         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
11975         s << '}';
11976         return s;
11977 }
11978
11979 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
11980 {
11981         s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
11982         s << "\tsType = " << value.sType << '\n';
11983         s << "\tpNext = " << value.pNext << '\n';
11984         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11985         s << '}';
11986         return s;
11987 }
11988
11989 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
11990 {
11991         s << "VkAccelerationStructureVersionInfoKHR = {\n";
11992         s << "\tsType = " << value.sType << '\n';
11993         s << "\tpNext = " << value.pNext << '\n';
11994         s << "\tpVersionData = " << value.pVersionData << '\n';
11995         s << '}';
11996         return s;
11997 }
11998
11999 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
12000 {
12001         s << "VkCopyAccelerationStructureInfoKHR = {\n";
12002         s << "\tsType = " << value.sType << '\n';
12003         s << "\tpNext = " << value.pNext << '\n';
12004         s << "\tsrc = " << value.src << '\n';
12005         s << "\tdst = " << value.dst << '\n';
12006         s << "\tmode = " << value.mode << '\n';
12007         s << '}';
12008         return s;
12009 }
12010
12011 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
12012 {
12013         s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
12014         s << "\tsType = " << value.sType << '\n';
12015         s << "\tpNext = " << value.pNext << '\n';
12016         s << "\tsrc = " << value.src << '\n';
12017         s << "\tdst = " << value.dst << '\n';
12018         s << "\tmode = " << value.mode << '\n';
12019         s << '}';
12020         return s;
12021 }
12022
12023 std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
12024 {
12025         s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
12026         s << "\tsType = " << value.sType << '\n';
12027         s << "\tpNext = " << value.pNext << '\n';
12028         s << "\tsrc = " << value.src << '\n';
12029         s << "\tdst = " << value.dst << '\n';
12030         s << "\tmode = " << value.mode << '\n';
12031         s << '}';
12032         return s;
12033 }
12034
12035 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
12036 {
12037         s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
12038         s << "\tsType = " << value.sType << '\n';
12039         s << "\tpNext = " << value.pNext << '\n';
12040         s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
12041         s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
12042         s << '}';
12043         return s;
12044 }
12045
12046 std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
12047 {
12048         s << "VkPipelineLibraryCreateInfoKHR = {\n";
12049         s << "\tsType = " << value.sType << '\n';
12050         s << "\tpNext = " << value.pNext << '\n';
12051         s << "\tlibraryCount = " << value.libraryCount << '\n';
12052         s << "\tpLibraries = " << value.pLibraries << '\n';
12053         s << '}';
12054         return s;
12055 }
12056
12057 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
12058 {
12059         s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
12060         s << "\tsType = " << value.sType << '\n';
12061         s << "\tpNext = " << value.pNext << '\n';
12062         s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
12063         s << '}';
12064         return s;
12065 }
12066
12067 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
12068 {
12069         s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
12070         s << "\tsType = " << value.sType << '\n';
12071         s << "\tpNext = " << value.pNext << '\n';
12072         s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
12073         s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
12074         s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
12075         s << '}';
12076         return s;
12077 }
12078
12079 std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
12080 {
12081         s << "VkRenderPassTransformBeginInfoQCOM = {\n";
12082         s << "\tsType = " << value.sType << '\n';
12083         s << "\tpNext = " << value.pNext << '\n';
12084         s << "\ttransform = " << value.transform << '\n';
12085         s << '}';
12086         return s;
12087 }
12088
12089 std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
12090 {
12091         s << "VkCopyCommandTransformInfoQCOM = {\n";
12092         s << "\tsType = " << value.sType << '\n';
12093         s << "\tpNext = " << value.pNext << '\n';
12094         s << "\ttransform = " << value.transform << '\n';
12095         s << '}';
12096         return s;
12097 }
12098
12099 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
12100 {
12101         s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
12102         s << "\tsType = " << value.sType << '\n';
12103         s << "\tpNext = " << value.pNext << '\n';
12104         s << "\ttransform = " << value.transform << '\n';
12105         s << "\trenderArea = " << value.renderArea << '\n';
12106         s << '}';
12107         return s;
12108 }
12109
12110 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
12111 {
12112         s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
12113         s << "\tsType = " << value.sType << '\n';
12114         s << "\tpNext = " << value.pNext << '\n';
12115         s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
12116         s << '}';
12117         return s;
12118 }
12119
12120 std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
12121 {
12122         s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
12123         s << "\tsType = " << value.sType << '\n';
12124         s << "\tpNext = " << value.pNext << '\n';
12125         s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
12126         s << '}';
12127         return s;
12128 }
12129
12130 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
12131 {
12132         s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
12133         s << "\tsType = " << value.sType << '\n';
12134         s << "\tpNext = " << value.pNext << '\n';
12135         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12136         s << '}';
12137         return s;
12138 }
12139
12140 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
12141 {
12142         s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
12143         s << "\tsType = " << value.sType << '\n';
12144         s << "\tpNext = " << value.pNext << '\n';
12145         s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
12146         s << '}';
12147         return s;
12148 }
12149
12150 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
12151 {
12152         s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
12153         s << "\tsType = " << value.sType << '\n';
12154         s << "\tpNext = " << value.pNext << '\n';
12155         s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
12156         s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
12157         s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
12158         s << '}';
12159         return s;
12160 }
12161
12162 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
12163 {
12164         s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
12165         s << "\tsType = " << value.sType << '\n';
12166         s << "\tpNext = " << value.pNext << '\n';
12167         s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
12168         s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
12169         s << '}';
12170         return s;
12171 }
12172
12173 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
12174 {
12175         s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
12176         s << "\tsType = " << value.sType << '\n';
12177         s << "\tpNext = " << value.pNext << '\n';
12178         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12179         s << '}';
12180         return s;
12181 }
12182
12183 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
12184 {
12185         s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
12186         s << "\tsType = " << value.sType << '\n';
12187         s << "\tpNext = " << value.pNext << '\n';
12188         s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
12189         s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
12190         s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
12191         s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
12192         s << '}';
12193         return s;
12194 }
12195
12196 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
12197 {
12198         s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
12199         s << "\tsType = " << value.sType << '\n';
12200         s << "\tpNext = " << value.pNext << '\n';
12201         s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
12202         s << "\tevents = " << value.events << '\n';
12203         s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
12204         s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
12205         s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
12206         s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
12207         s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
12208         s << "\tpointPolygons = " << value.pointPolygons << '\n';
12209         s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
12210         s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
12211         s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
12212         s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
12213         s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
12214         s << "\ttriangleFans = " << value.triangleFans << '\n';
12215         s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
12216         s << '}';
12217         return s;
12218 }
12219
12220 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
12221 {
12222         s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
12223         s << "\tsType = " << value.sType << '\n';
12224         s << "\tpNext = " << value.pNext << '\n';
12225         s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
12226         s << '}';
12227         return s;
12228 }
12229
12230 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
12231 {
12232         s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
12233         s << "\tsType = " << value.sType << '\n';
12234         s << "\tpNext = " << value.pNext << '\n';
12235         s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
12236         s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
12237         s << '}';
12238         return s;
12239 }
12240
12241 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
12242 {
12243         s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
12244         s << "\tsType = " << value.sType << '\n';
12245         s << "\tpNext = " << value.pNext << '\n';
12246         s << "\tsubpassShading = " << value.subpassShading << '\n';
12247         s << '}';
12248         return s;
12249 }
12250
12251 std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
12252 {
12253         s << "VkBufferCopy2 = {\n";
12254         s << "\tsType = " << value.sType << '\n';
12255         s << "\tpNext = " << value.pNext << '\n';
12256         s << "\tsrcOffset = " << value.srcOffset << '\n';
12257         s << "\tdstOffset = " << value.dstOffset << '\n';
12258         s << "\tsize = " << value.size << '\n';
12259         s << '}';
12260         return s;
12261 }
12262
12263 std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
12264 {
12265         s << "VkImageCopy2 = {\n";
12266         s << "\tsType = " << value.sType << '\n';
12267         s << "\tpNext = " << value.pNext << '\n';
12268         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12269         s << "\tsrcOffset = " << value.srcOffset << '\n';
12270         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12271         s << "\tdstOffset = " << value.dstOffset << '\n';
12272         s << "\textent = " << value.extent << '\n';
12273         s << '}';
12274         return s;
12275 }
12276
12277 std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
12278 {
12279         s << "VkImageBlit2 = {\n";
12280         s << "\tsType = " << value.sType << '\n';
12281         s << "\tpNext = " << value.pNext << '\n';
12282         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12283         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
12284         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12285         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
12286         s << '}';
12287         return s;
12288 }
12289
12290 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
12291 {
12292         s << "VkBufferImageCopy2 = {\n";
12293         s << "\tsType = " << value.sType << '\n';
12294         s << "\tpNext = " << value.pNext << '\n';
12295         s << "\tbufferOffset = " << value.bufferOffset << '\n';
12296         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
12297         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
12298         s << "\timageSubresource = " << value.imageSubresource << '\n';
12299         s << "\timageOffset = " << value.imageOffset << '\n';
12300         s << "\timageExtent = " << value.imageExtent << '\n';
12301         s << '}';
12302         return s;
12303 }
12304
12305 std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
12306 {
12307         s << "VkImageResolve2 = {\n";
12308         s << "\tsType = " << value.sType << '\n';
12309         s << "\tpNext = " << value.pNext << '\n';
12310         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12311         s << "\tsrcOffset = " << value.srcOffset << '\n';
12312         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12313         s << "\tdstOffset = " << value.dstOffset << '\n';
12314         s << "\textent = " << value.extent << '\n';
12315         s << '}';
12316         return s;
12317 }
12318
12319 std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
12320 {
12321         s << "VkCopyBufferInfo2 = {\n";
12322         s << "\tsType = " << value.sType << '\n';
12323         s << "\tpNext = " << value.pNext << '\n';
12324         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12325         s << "\tdstBuffer = " << value.dstBuffer << '\n';
12326         s << "\tregionCount = " << value.regionCount << '\n';
12327         s << "\tpRegions = " << value.pRegions << '\n';
12328         s << '}';
12329         return s;
12330 }
12331
12332 std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
12333 {
12334         s << "VkCopyImageInfo2 = {\n";
12335         s << "\tsType = " << value.sType << '\n';
12336         s << "\tpNext = " << value.pNext << '\n';
12337         s << "\tsrcImage = " << value.srcImage << '\n';
12338         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12339         s << "\tdstImage = " << value.dstImage << '\n';
12340         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12341         s << "\tregionCount = " << value.regionCount << '\n';
12342         s << "\tpRegions = " << value.pRegions << '\n';
12343         s << '}';
12344         return s;
12345 }
12346
12347 std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
12348 {
12349         s << "VkBlitImageInfo2 = {\n";
12350         s << "\tsType = " << value.sType << '\n';
12351         s << "\tpNext = " << value.pNext << '\n';
12352         s << "\tsrcImage = " << value.srcImage << '\n';
12353         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12354         s << "\tdstImage = " << value.dstImage << '\n';
12355         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12356         s << "\tregionCount = " << value.regionCount << '\n';
12357         s << "\tpRegions = " << value.pRegions << '\n';
12358         s << "\tfilter = " << value.filter << '\n';
12359         s << '}';
12360         return s;
12361 }
12362
12363 std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
12364 {
12365         s << "VkCopyBufferToImageInfo2 = {\n";
12366         s << "\tsType = " << value.sType << '\n';
12367         s << "\tpNext = " << value.pNext << '\n';
12368         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12369         s << "\tdstImage = " << value.dstImage << '\n';
12370         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12371         s << "\tregionCount = " << value.regionCount << '\n';
12372         s << "\tpRegions = " << value.pRegions << '\n';
12373         s << '}';
12374         return s;
12375 }
12376
12377 std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
12378 {
12379         s << "VkCopyImageToBufferInfo2 = {\n";
12380         s << "\tsType = " << value.sType << '\n';
12381         s << "\tpNext = " << value.pNext << '\n';
12382         s << "\tsrcImage = " << value.srcImage << '\n';
12383         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12384         s << "\tdstBuffer = " << value.dstBuffer << '\n';
12385         s << "\tregionCount = " << value.regionCount << '\n';
12386         s << "\tpRegions = " << value.pRegions << '\n';
12387         s << '}';
12388         return s;
12389 }
12390
12391 std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
12392 {
12393         s << "VkResolveImageInfo2 = {\n";
12394         s << "\tsType = " << value.sType << '\n';
12395         s << "\tpNext = " << value.pNext << '\n';
12396         s << "\tsrcImage = " << value.srcImage << '\n';
12397         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12398         s << "\tdstImage = " << value.dstImage << '\n';
12399         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12400         s << "\tregionCount = " << value.regionCount << '\n';
12401         s << "\tpRegions = " << value.pRegions << '\n';
12402         s << '}';
12403         return s;
12404 }
12405
12406 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
12407 {
12408         s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
12409         s << "\tsType = " << value.sType << '\n';
12410         s << "\tpNext = " << value.pNext << '\n';
12411         s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
12412         s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
12413         s << '}';
12414         return s;
12415 }
12416
12417 std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
12418 {
12419         s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
12420         s << "\tsType = " << value.sType << '\n';
12421         s << "\tpNext = " << value.pNext << '\n';
12422         s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
12423         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
12424         s << '}';
12425         return s;
12426 }
12427
12428 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
12429 {
12430         s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
12431         s << "\tsType = " << value.sType << '\n';
12432         s << "\tpNext = " << value.pNext << '\n';
12433         s << "\tfragmentSize = " << value.fragmentSize << '\n';
12434         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
12435         s << '}';
12436         return s;
12437 }
12438
12439 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
12440 {
12441         s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
12442         s << "\tsType = " << value.sType << '\n';
12443         s << "\tpNext = " << value.pNext << '\n';
12444         s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
12445         s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
12446         s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
12447         s << '}';
12448         return s;
12449 }
12450
12451 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
12452 {
12453         s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
12454         s << "\tsType = " << value.sType << '\n';
12455         s << "\tpNext = " << value.pNext << '\n';
12456         s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
12457         s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
12458         s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
12459         s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
12460         s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
12461         s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
12462         s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
12463         s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
12464         s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
12465         s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
12466         s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
12467         s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
12468         s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
12469         s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
12470         s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
12471         s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
12472         s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
12473         s << '}';
12474         return s;
12475 }
12476
12477 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
12478 {
12479         s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
12480         s << "\tsType = " << value.sType << '\n';
12481         s << "\tpNext = " << value.pNext << '\n';
12482         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
12483         s << "\tfragmentSize = " << value.fragmentSize << '\n';
12484         s << '}';
12485         return s;
12486 }
12487
12488 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
12489 {
12490         s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
12491         s << "\tsType = " << value.sType << '\n';
12492         s << "\tpNext = " << value.pNext << '\n';
12493         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
12494         s << '}';
12495         return s;
12496 }
12497
12498 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
12499 {
12500         s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
12501         s << "\tsType = " << value.sType << '\n';
12502         s << "\tpNext = " << value.pNext << '\n';
12503         s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
12504         s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
12505         s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
12506         s << '}';
12507         return s;
12508 }
12509
12510 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
12511 {
12512         s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
12513         s << "\tsType = " << value.sType << '\n';
12514         s << "\tpNext = " << value.pNext << '\n';
12515         s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
12516         s << '}';
12517         return s;
12518 }
12519
12520 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
12521 {
12522         s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
12523         s << "\tsType = " << value.sType << '\n';
12524         s << "\tpNext = " << value.pNext << '\n';
12525         s << "\tshadingRateType = " << value.shadingRateType << '\n';
12526         s << "\tshadingRate = " << value.shadingRate << '\n';
12527         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
12528         s << '}';
12529         return s;
12530 }
12531
12532 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
12533 {
12534         s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
12535         s << "\tsType = " << value.sType << '\n';
12536         s << "\tpNext = " << value.pNext << '\n';
12537         s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
12538         s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
12539         s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
12540         s << '}';
12541         return s;
12542 }
12543
12544 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
12545 {
12546         s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
12547         s << "\tsType = " << value.sType << '\n';
12548         s << "\tpNext = " << value.pNext << '\n';
12549         s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
12550         s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
12551         s << '}';
12552         return s;
12553 }
12554
12555 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
12556 {
12557         s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
12558         s << "\tsType = " << value.sType << '\n';
12559         s << "\tpNext = " << value.pNext << '\n';
12560         s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
12561         s << '}';
12562         return s;
12563 }
12564
12565 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
12566 {
12567         s << "VkMutableDescriptorTypeListVALVE = {\n";
12568         s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
12569         s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
12570         s << '}';
12571         return s;
12572 }
12573
12574 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
12575 {
12576         s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
12577         s << "\tsType = " << value.sType << '\n';
12578         s << "\tpNext = " << value.pNext << '\n';
12579         s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
12580         s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
12581         s << '}';
12582         return s;
12583 }
12584
12585 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
12586 {
12587         s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
12588         s << "\tsType = " << value.sType << '\n';
12589         s << "\tpNext = " << value.pNext << '\n';
12590         s << "\tdepthClipControl = " << value.depthClipControl << '\n';
12591         s << '}';
12592         return s;
12593 }
12594
12595 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
12596 {
12597         s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
12598         s << "\tsType = " << value.sType << '\n';
12599         s << "\tpNext = " << value.pNext << '\n';
12600         s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
12601         s << '}';
12602         return s;
12603 }
12604
12605 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
12606 {
12607         s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
12608         s << "\tsType = " << value.sType << '\n';
12609         s << "\tpNext = " << value.pNext << '\n';
12610         s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
12611         s << '}';
12612         return s;
12613 }
12614
12615 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
12616 {
12617         s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
12618         s << "\tsType = " << value.sType << '\n';
12619         s << "\tpNext = " << value.pNext << '\n';
12620         s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
12621         s << '}';
12622         return s;
12623 }
12624
12625 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
12626 {
12627         s << "VkVertexInputBindingDescription2EXT = {\n";
12628         s << "\tsType = " << value.sType << '\n';
12629         s << "\tpNext = " << value.pNext << '\n';
12630         s << "\tbinding = " << value.binding << '\n';
12631         s << "\tstride = " << value.stride << '\n';
12632         s << "\tinputRate = " << value.inputRate << '\n';
12633         s << "\tdivisor = " << value.divisor << '\n';
12634         s << '}';
12635         return s;
12636 }
12637
12638 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
12639 {
12640         s << "VkVertexInputAttributeDescription2EXT = {\n";
12641         s << "\tsType = " << value.sType << '\n';
12642         s << "\tpNext = " << value.pNext << '\n';
12643         s << "\tlocation = " << value.location << '\n';
12644         s << "\tbinding = " << value.binding << '\n';
12645         s << "\tformat = " << value.format << '\n';
12646         s << "\toffset = " << value.offset << '\n';
12647         s << '}';
12648         return s;
12649 }
12650
12651 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
12652 {
12653         s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
12654         s << "\tsType = " << value.sType << '\n';
12655         s << "\tpNext = " << value.pNext << '\n';
12656         s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
12657         s << '}';
12658         return s;
12659 }
12660
12661 std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
12662 {
12663         s << "VkPipelineColorWriteCreateInfoEXT = {\n";
12664         s << "\tsType = " << value.sType << '\n';
12665         s << "\tpNext = " << value.pNext << '\n';
12666         s << "\tattachmentCount = " << value.attachmentCount << '\n';
12667         s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
12668         s << '}';
12669         return s;
12670 }
12671
12672 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
12673 {
12674         s << "VkMemoryBarrier2 = {\n";
12675         s << "\tsType = " << value.sType << '\n';
12676         s << "\tpNext = " << value.pNext << '\n';
12677         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
12678         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
12679         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
12680         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
12681         s << '}';
12682         return s;
12683 }
12684
12685 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
12686 {
12687         s << "VkImageMemoryBarrier2 = {\n";
12688         s << "\tsType = " << value.sType << '\n';
12689         s << "\tpNext = " << value.pNext << '\n';
12690         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
12691         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
12692         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
12693         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
12694         s << "\toldLayout = " << value.oldLayout << '\n';
12695         s << "\tnewLayout = " << value.newLayout << '\n';
12696         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
12697         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
12698         s << "\timage = " << value.image << '\n';
12699         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
12700         s << '}';
12701         return s;
12702 }
12703
12704 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
12705 {
12706         s << "VkBufferMemoryBarrier2 = {\n";
12707         s << "\tsType = " << value.sType << '\n';
12708         s << "\tpNext = " << value.pNext << '\n';
12709         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
12710         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
12711         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
12712         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
12713         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
12714         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
12715         s << "\tbuffer = " << value.buffer << '\n';
12716         s << "\toffset = " << value.offset << '\n';
12717         s << "\tsize = " << value.size << '\n';
12718         s << '}';
12719         return s;
12720 }
12721
12722 std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
12723 {
12724         s << "VkDependencyInfo = {\n";
12725         s << "\tsType = " << value.sType << '\n';
12726         s << "\tpNext = " << value.pNext << '\n';
12727         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
12728         s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
12729         s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
12730         s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
12731         s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
12732         s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
12733         s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
12734         s << '}';
12735         return s;
12736 }
12737
12738 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
12739 {
12740         s << "VkSemaphoreSubmitInfo = {\n";
12741         s << "\tsType = " << value.sType << '\n';
12742         s << "\tpNext = " << value.pNext << '\n';
12743         s << "\tsemaphore = " << value.semaphore << '\n';
12744         s << "\tvalue = " << value.value << '\n';
12745         s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
12746         s << "\tdeviceIndex = " << value.deviceIndex << '\n';
12747         s << '}';
12748         return s;
12749 }
12750
12751 std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
12752 {
12753         s << "VkCommandBufferSubmitInfo = {\n";
12754         s << "\tsType = " << value.sType << '\n';
12755         s << "\tpNext = " << value.pNext << '\n';
12756         s << "\tcommandBuffer = " << value.commandBuffer << '\n';
12757         s << "\tdeviceMask = " << value.deviceMask << '\n';
12758         s << '}';
12759         return s;
12760 }
12761
12762 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
12763 {
12764         s << "VkSubmitInfo2 = {\n";
12765         s << "\tsType = " << value.sType << '\n';
12766         s << "\tpNext = " << value.pNext << '\n';
12767         s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
12768         s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
12769         s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
12770         s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
12771         s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
12772         s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
12773         s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
12774         s << '}';
12775         return s;
12776 }
12777
12778 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
12779 {
12780         s << "VkQueueFamilyCheckpointProperties2NV = {\n";
12781         s << "\tsType = " << value.sType << '\n';
12782         s << "\tpNext = " << value.pNext << '\n';
12783         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
12784         s << '}';
12785         return s;
12786 }
12787
12788 std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
12789 {
12790         s << "VkCheckpointData2NV = {\n";
12791         s << "\tsType = " << value.sType << '\n';
12792         s << "\tpNext = " << value.pNext << '\n';
12793         s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
12794         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
12795         s << '}';
12796         return s;
12797 }
12798
12799 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
12800 {
12801         s << "VkPhysicalDeviceSynchronization2Features = {\n";
12802         s << "\tsType = " << value.sType << '\n';
12803         s << "\tpNext = " << value.pNext << '\n';
12804         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
12805         s << '}';
12806         return s;
12807 }
12808
12809 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
12810 {
12811         s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
12812         s << "\tsType = " << value.sType << '\n';
12813         s << "\tpNext = " << value.pNext << '\n';
12814         s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
12815         s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
12816         s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
12817         s << '}';
12818         return s;
12819 }
12820
12821 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyDitheringFeaturesEXT& value)
12822 {
12823         s << "VkPhysicalDeviceLegacyDitheringFeaturesEXT = {\n";
12824         s << "\tsType = " << value.sType << '\n';
12825         s << "\tpNext = " << value.pNext << '\n';
12826         s << "\tlegacyDithering = " << value.legacyDithering << '\n';
12827         s << '}';
12828         return s;
12829 }
12830
12831 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
12832 {
12833         s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
12834         s << "\tsType = " << value.sType << '\n';
12835         s << "\tpNext = " << value.pNext << '\n';
12836         s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
12837         s << '}';
12838         return s;
12839 }
12840
12841 std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
12842 {
12843         s << "VkSubpassResolvePerformanceQueryEXT = {\n";
12844         s << "\tsType = " << value.sType << '\n';
12845         s << "\tpNext = " << value.pNext << '\n';
12846         s << "\toptimal = " << value.optimal << '\n';
12847         s << '}';
12848         return s;
12849 }
12850
12851 std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
12852 {
12853         s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
12854         s << "\tsType = " << value.sType << '\n';
12855         s << "\tpNext = " << value.pNext << '\n';
12856         s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
12857         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
12858         s << '}';
12859         return s;
12860 }
12861
12862 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyVideoPropertiesKHR& value)
12863 {
12864         s << "VkQueueFamilyVideoPropertiesKHR = {\n";
12865         s << "\tsType = " << value.sType << '\n';
12866         s << "\tpNext = " << value.pNext << '\n';
12867         s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
12868         s << '}';
12869         return s;
12870 }
12871
12872 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusPropertiesKHR& value)
12873 {
12874         s << "VkQueueFamilyQueryResultStatusPropertiesKHR = {\n";
12875         s << "\tsType = " << value.sType << '\n';
12876         s << "\tpNext = " << value.pNext << '\n';
12877         s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
12878         s << '}';
12879         return s;
12880 }
12881
12882 std::ostream& operator<< (std::ostream& s, const VkVideoProfileListInfoKHR& value)
12883 {
12884         s << "VkVideoProfileListInfoKHR = {\n";
12885         s << "\tsType = " << value.sType << '\n';
12886         s << "\tpNext = " << value.pNext << '\n';
12887         s << "\tprofileCount = " << value.profileCount << '\n';
12888         s << "\tpProfiles = " << value.pProfiles << '\n';
12889         s << '}';
12890         return s;
12891 }
12892
12893 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
12894 {
12895         s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
12896         s << "\tsType = " << value.sType << '\n';
12897         s << "\tpNext = " << value.pNext << '\n';
12898         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
12899         s << '}';
12900         return s;
12901 }
12902
12903 std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
12904 {
12905         s << "VkVideoFormatPropertiesKHR = {\n";
12906         s << "\tsType = " << value.sType << '\n';
12907         s << "\tpNext = " << value.pNext << '\n';
12908         s << "\tformat = " << value.format << '\n';
12909         s << "\tcomponentMapping = " << value.componentMapping << '\n';
12910         s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
12911         s << "\timageType = " << value.imageType << '\n';
12912         s << "\timageTiling = " << value.imageTiling << '\n';
12913         s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
12914         s << '}';
12915         return s;
12916 }
12917
12918 std::ostream& operator<< (std::ostream& s, const VkVideoProfileInfoKHR& value)
12919 {
12920         s << "VkVideoProfileInfoKHR = {\n";
12921         s << "\tsType = " << value.sType << '\n';
12922         s << "\tpNext = " << value.pNext << '\n';
12923         s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
12924         s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
12925         s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
12926         s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
12927         s << '}';
12928         return s;
12929 }
12930
12931 std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
12932 {
12933         s << "VkVideoCapabilitiesKHR = {\n";
12934         s << "\tsType = " << value.sType << '\n';
12935         s << "\tpNext = " << value.pNext << '\n';
12936         s << "\tcapabilityFlags = " << getVideoCapabilityFlagsKHRStr(value.capabilityFlags) << '\n';
12937         s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
12938         s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
12939         s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
12940         s << "\tminExtent = " << value.minExtent << '\n';
12941         s << "\tmaxExtent = " << value.maxExtent << '\n';
12942         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
12943         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
12944         s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
12945         s << '}';
12946         return s;
12947 }
12948
12949 std::ostream& operator<< (std::ostream& s, const VkVideoSessionMemoryRequirementsKHR& value)
12950 {
12951         s << "VkVideoSessionMemoryRequirementsKHR = {\n";
12952         s << "\tsType = " << value.sType << '\n';
12953         s << "\tpNext = " << value.pNext << '\n';
12954         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12955         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
12956         s << '}';
12957         return s;
12958 }
12959
12960 std::ostream& operator<< (std::ostream& s, const VkBindVideoSessionMemoryInfoKHR& value)
12961 {
12962         s << "VkBindVideoSessionMemoryInfoKHR = {\n";
12963         s << "\tsType = " << value.sType << '\n';
12964         s << "\tpNext = " << value.pNext << '\n';
12965         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12966         s << "\tmemory = " << value.memory << '\n';
12967         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
12968         s << "\tmemorySize = " << value.memorySize << '\n';
12969         s << '}';
12970         return s;
12971 }
12972
12973 std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceInfoKHR& value)
12974 {
12975         s << "VkVideoPictureResourceInfoKHR = {\n";
12976         s << "\tsType = " << value.sType << '\n';
12977         s << "\tpNext = " << value.pNext << '\n';
12978         s << "\tcodedOffset = " << value.codedOffset << '\n';
12979         s << "\tcodedExtent = " << value.codedExtent << '\n';
12980         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
12981         s << "\timageViewBinding = " << value.imageViewBinding << '\n';
12982         s << '}';
12983         return s;
12984 }
12985
12986 std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotInfoKHR& value)
12987 {
12988         s << "VkVideoReferenceSlotInfoKHR = {\n";
12989         s << "\tsType = " << value.sType << '\n';
12990         s << "\tpNext = " << value.pNext << '\n';
12991         s << "\tslotIndex = " << value.slotIndex << '\n';
12992         s << "\tpPictureResource = " << value.pPictureResource << '\n';
12993         s << '}';
12994         return s;
12995 }
12996
12997 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
12998 {
12999         s << "VkVideoDecodeCapabilitiesKHR = {\n";
13000         s << "\tsType = " << value.sType << '\n';
13001         s << "\tpNext = " << value.pNext << '\n';
13002         s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
13003         s << '}';
13004         return s;
13005 }
13006
13007 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeUsageInfoKHR& value)
13008 {
13009         s << "VkVideoDecodeUsageInfoKHR = {\n";
13010         s << "\tsType = " << value.sType << '\n';
13011         s << "\tpNext = " << value.pNext << '\n';
13012         s << "\tvideoUsageHints = " << getVideoDecodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13013         s << '}';
13014         return s;
13015 }
13016
13017 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
13018 {
13019         s << "VkVideoDecodeInfoKHR = {\n";
13020         s << "\tsType = " << value.sType << '\n';
13021         s << "\tpNext = " << value.pNext << '\n';
13022         s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
13023         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13024         s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
13025         s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
13026         s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
13027         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13028         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13029         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13030         s << '}';
13031         return s;
13032 }
13033
13034 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileInfoEXT& value)
13035 {
13036         s << "VkVideoDecodeH264ProfileInfoEXT = {\n";
13037         s << "\tsType = " << value.sType << '\n';
13038         s << "\tpNext = " << value.pNext << '\n';
13039         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13040         s << "\tpictureLayout = " << getVideoDecodeH264PictureLayoutFlagsEXTStr(value.pictureLayout) << '\n';
13041         s << '}';
13042         return s;
13043 }
13044
13045 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
13046 {
13047         s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
13048         s << "\tsType = " << value.sType << '\n';
13049         s << "\tpNext = " << value.pNext << '\n';
13050         s << "\tmaxLevel = " << value.maxLevel << '\n';
13051         s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
13052         s << '}';
13053         return s;
13054 }
13055
13056 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
13057 {
13058         s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
13059         s << "\tsType = " << value.sType << '\n';
13060         s << "\tpNext = " << value.pNext << '\n';
13061         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13062         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13063         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13064         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13065         s << '}';
13066         return s;
13067 }
13068
13069 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
13070 {
13071         s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
13072         s << "\tsType = " << value.sType << '\n';
13073         s << "\tpNext = " << value.pNext << '\n';
13074         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13075         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13076         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13077         s << '}';
13078         return s;
13079 }
13080
13081 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
13082 {
13083         s << "VkVideoDecodeH264PictureInfoEXT = {\n";
13084         s << "\tsType = " << value.sType << '\n';
13085         s << "\tpNext = " << value.pNext << '\n';
13086         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13087         s << "\tslicesCount = " << value.slicesCount << '\n';
13088         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
13089         s << '}';
13090         return s;
13091 }
13092
13093 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
13094 {
13095         s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
13096         s << "\tsType = " << value.sType << '\n';
13097         s << "\tpNext = " << value.pNext << '\n';
13098         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13099         s << '}';
13100         return s;
13101 }
13102
13103 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcInfoEXT& value)
13104 {
13105         s << "VkVideoDecodeH264MvcInfoEXT = {\n";
13106         s << "\tsType = " << value.sType << '\n';
13107         s << "\tpNext = " << value.pNext << '\n';
13108         s << "\tpStdMvc = " << value.pStdMvc << '\n';
13109         s << '}';
13110         return s;
13111 }
13112
13113 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileInfoEXT& value)
13114 {
13115         s << "VkVideoDecodeH265ProfileInfoEXT = {\n";
13116         s << "\tsType = " << value.sType << '\n';
13117         s << "\tpNext = " << value.pNext << '\n';
13118         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13119         s << '}';
13120         return s;
13121 }
13122
13123 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
13124 {
13125         s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
13126         s << "\tsType = " << value.sType << '\n';
13127         s << "\tpNext = " << value.pNext << '\n';
13128         s << "\tmaxLevel = " << value.maxLevel << '\n';
13129         s << '}';
13130         return s;
13131 }
13132
13133 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
13134 {
13135         s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
13136         s << "\tsType = " << value.sType << '\n';
13137         s << "\tpNext = " << value.pNext << '\n';
13138         s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
13139         s << "\tpVpsStd = " << value.pVpsStd << '\n';
13140         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13141         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13142         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13143         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13144         s << '}';
13145         return s;
13146 }
13147
13148 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
13149 {
13150         s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
13151         s << "\tsType = " << value.sType << '\n';
13152         s << "\tpNext = " << value.pNext << '\n';
13153         s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
13154         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13155         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13156         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13157         s << '}';
13158         return s;
13159 }
13160
13161 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
13162 {
13163         s << "VkVideoDecodeH265PictureInfoEXT = {\n";
13164         s << "\tsType = " << value.sType << '\n';
13165         s << "\tpNext = " << value.pNext << '\n';
13166         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13167         s << "\tslicesCount = " << value.slicesCount << '\n';
13168         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
13169         s << '}';
13170         return s;
13171 }
13172
13173 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
13174 {
13175         s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
13176         s << "\tsType = " << value.sType << '\n';
13177         s << "\tpNext = " << value.pNext << '\n';
13178         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13179         s << '}';
13180         return s;
13181 }
13182
13183 std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
13184 {
13185         s << "VkVideoSessionCreateInfoKHR = {\n";
13186         s << "\tsType = " << value.sType << '\n';
13187         s << "\tpNext = " << value.pNext << '\n';
13188         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
13189         s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
13190         s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
13191         s << "\tpictureFormat = " << value.pictureFormat << '\n';
13192         s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13193         s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
13194         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
13195         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
13196         s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
13197         s << '}';
13198         return s;
13199 }
13200
13201 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
13202 {
13203         s << "VkVideoSessionParametersCreateInfoKHR = {\n";
13204         s << "\tsType = " << value.sType << '\n';
13205         s << "\tpNext = " << value.pNext << '\n';
13206         s << "\tflags = " << getVideoSessionParametersCreateFlagsKHRStr(value.flags) << '\n';
13207         s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
13208         s << "\tvideoSession = " << value.videoSession << '\n';
13209         s << '}';
13210         return s;
13211 }
13212
13213 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
13214 {
13215         s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
13216         s << "\tsType = " << value.sType << '\n';
13217         s << "\tpNext = " << value.pNext << '\n';
13218         s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
13219         s << '}';
13220         return s;
13221 }
13222
13223 std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
13224 {
13225         s << "VkVideoBeginCodingInfoKHR = {\n";
13226         s << "\tsType = " << value.sType << '\n';
13227         s << "\tpNext = " << value.pNext << '\n';
13228         s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
13229         s << "\tvideoSession = " << value.videoSession << '\n';
13230         s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
13231         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13232         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13233         s << '}';
13234         return s;
13235 }
13236
13237 std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
13238 {
13239         s << "VkVideoEndCodingInfoKHR = {\n";
13240         s << "\tsType = " << value.sType << '\n';
13241         s << "\tpNext = " << value.pNext << '\n';
13242         s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
13243         s << '}';
13244         return s;
13245 }
13246
13247 std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
13248 {
13249         s << "VkVideoCodingControlInfoKHR = {\n";
13250         s << "\tsType = " << value.sType << '\n';
13251         s << "\tpNext = " << value.pNext << '\n';
13252         s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
13253         s << '}';
13254         return s;
13255 }
13256
13257 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeUsageInfoKHR& value)
13258 {
13259         s << "VkVideoEncodeUsageInfoKHR = {\n";
13260         s << "\tsType = " << value.sType << '\n';
13261         s << "\tpNext = " << value.pNext << '\n';
13262         s << "\tvideoUsageHints = " << getVideoEncodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13263         s << "\tvideoContentHints = " << getVideoEncodeContentFlagsKHRStr(value.videoContentHints) << '\n';
13264         s << "\ttuningMode = " << value.tuningMode << '\n';
13265         s << '}';
13266         return s;
13267 }
13268
13269 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
13270 {
13271         s << "VkVideoEncodeInfoKHR = {\n";
13272         s << "\tsType = " << value.sType << '\n';
13273         s << "\tpNext = " << value.pNext << '\n';
13274         s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
13275         s << "\tqualityLevel = " << value.qualityLevel << '\n';
13276         s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
13277         s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
13278         s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
13279         s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
13280         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13281         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13282         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13283         s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
13284         s << '}';
13285         return s;
13286 }
13287
13288 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
13289 {
13290         s << "VkVideoEncodeRateControlInfoKHR = {\n";
13291         s << "\tsType = " << value.sType << '\n';
13292         s << "\tpNext = " << value.pNext << '\n';
13293         s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
13294         s << "\trateControlMode = " << value.rateControlMode << '\n';
13295         s << "\tlayerCount = " << value.layerCount << '\n';
13296         s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
13297         s << '}';
13298         return s;
13299 }
13300
13301 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
13302 {
13303         s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
13304         s << "\tsType = " << value.sType << '\n';
13305         s << "\tpNext = " << value.pNext << '\n';
13306         s << "\taverageBitrate = " << value.averageBitrate << '\n';
13307         s << "\tmaxBitrate = " << value.maxBitrate << '\n';
13308         s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
13309         s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
13310         s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
13311         s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
13312         s << '}';
13313         return s;
13314 }
13315
13316 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
13317 {
13318         s << "VkVideoEncodeCapabilitiesKHR = {\n";
13319         s << "\tsType = " << value.sType << '\n';
13320         s << "\tpNext = " << value.pNext << '\n';
13321         s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
13322         s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
13323         s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
13324         s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
13325         s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
13326         s << '}';
13327         return s;
13328 }
13329
13330 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
13331 {
13332         s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
13333         s << "\tsType = " << value.sType << '\n';
13334         s << "\tpNext = " << value.pNext << '\n';
13335         s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
13336         s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13337         s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13338         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
13339         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
13340         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
13341         s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
13342         s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
13343         s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
13344         s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
13345         s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
13346         s << '}';
13347         return s;
13348 }
13349
13350 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
13351 {
13352         s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
13353         s << "\tsType = " << value.sType << '\n';
13354         s << "\tpNext = " << value.pNext << '\n';
13355         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13356         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13357         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13358         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13359         s << '}';
13360         return s;
13361 }
13362
13363 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
13364 {
13365         s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
13366         s << "\tsType = " << value.sType << '\n';
13367         s << "\tpNext = " << value.pNext << '\n';
13368         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13369         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13370         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13371         s << '}';
13372         return s;
13373 }
13374
13375 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
13376 {
13377         s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
13378         s << "\tsType = " << value.sType << '\n';
13379         s << "\tpNext = " << value.pNext << '\n';
13380         s << "\tslotIndex = " << value.slotIndex << '\n';
13381         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13382         s << '}';
13383         return s;
13384 }
13385
13386 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
13387 {
13388         s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
13389         s << "\tsType = " << value.sType << '\n';
13390         s << "\tpNext = " << value.pNext << '\n';
13391         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13392         s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
13393         s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
13394         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13395         s << '}';
13396         return s;
13397 }
13398
13399 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsInfoEXT& value)
13400 {
13401         s << "VkVideoEncodeH264ReferenceListsInfoEXT = {\n";
13402         s << "\tsType = " << value.sType << '\n';
13403         s << "\tpNext = " << value.pNext << '\n';
13404         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
13405         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
13406         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
13407         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
13408         s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
13409         s << '}';
13410         return s;
13411 }
13412
13413 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersInfoEXT& value)
13414 {
13415         s << "VkVideoEncodeH264EmitPictureParametersInfoEXT = {\n";
13416         s << "\tsType = " << value.sType << '\n';
13417         s << "\tpNext = " << value.pNext << '\n';
13418         s << "\tspsId = " << value.spsId << '\n';
13419         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13420         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13421         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13422         s << '}';
13423         return s;
13424 }
13425
13426 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileInfoEXT& value)
13427 {
13428         s << "VkVideoEncodeH264ProfileInfoEXT = {\n";
13429         s << "\tsType = " << value.sType << '\n';
13430         s << "\tpNext = " << value.pNext << '\n';
13431         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13432         s << '}';
13433         return s;
13434 }
13435
13436 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceInfoEXT& value)
13437 {
13438         s << "VkVideoEncodeH264NaluSliceInfoEXT = {\n";
13439         s << "\tsType = " << value.sType << '\n';
13440         s << "\tpNext = " << value.pNext << '\n';
13441         s << "\tmbCount = " << value.mbCount << '\n';
13442         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13443         s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
13444         s << '}';
13445         return s;
13446 }
13447
13448 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
13449 {
13450         s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
13451         s << "\tsType = " << value.sType << '\n';
13452         s << "\tpNext = " << value.pNext << '\n';
13453         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13454         s << "\tidrPeriod = " << value.idrPeriod << '\n';
13455         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13456         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
13457         s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
13458         s << '}';
13459         return s;
13460 }
13461
13462 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
13463 {
13464         s << "VkVideoEncodeH264QpEXT = {\n";
13465         s << "\tqpI = " << value.qpI << '\n';
13466         s << "\tqpP = " << value.qpP << '\n';
13467         s << "\tqpB = " << value.qpB << '\n';
13468         s << '}';
13469         return s;
13470 }
13471
13472 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
13473 {
13474         s << "VkVideoEncodeH264FrameSizeEXT = {\n";
13475         s << "\tframeISize = " << value.frameISize << '\n';
13476         s << "\tframePSize = " << value.framePSize << '\n';
13477         s << "\tframeBSize = " << value.frameBSize << '\n';
13478         s << '}';
13479         return s;
13480 }
13481
13482 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
13483 {
13484         s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
13485         s << "\tsType = " << value.sType << '\n';
13486         s << "\tpNext = " << value.pNext << '\n';
13487         s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
13488         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
13489         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
13490         s << "\tuseMinQp = " << value.useMinQp << '\n';
13491         s << "\tminQp = " << value.minQp << '\n';
13492         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
13493         s << "\tmaxQp = " << value.maxQp << '\n';
13494         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
13495         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
13496         s << '}';
13497         return s;
13498 }
13499
13500 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
13501 {
13502         s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
13503         s << "\tsType = " << value.sType << '\n';
13504         s << "\tpNext = " << value.pNext << '\n';
13505         s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
13506         s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13507         s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13508         s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
13509         s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
13510         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
13511         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
13512         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
13513         s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
13514         s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
13515         s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
13516         s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
13517         s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
13518         s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
13519         s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
13520         s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
13521         s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
13522         s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
13523         s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
13524         s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
13525         s << '}';
13526         return s;
13527 }
13528
13529 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
13530 {
13531         s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
13532         s << "\tsType = " << value.sType << '\n';
13533         s << "\tpNext = " << value.pNext << '\n';
13534         s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
13535         s << "\tpVpsStd = " << value.pVpsStd << '\n';
13536         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13537         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13538         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13539         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13540         s << '}';
13541         return s;
13542 }
13543
13544 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
13545 {
13546         s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
13547         s << "\tsType = " << value.sType << '\n';
13548         s << "\tpNext = " << value.pNext << '\n';
13549         s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
13550         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13551         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13552         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13553         s << '}';
13554         return s;
13555 }
13556
13557 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
13558 {
13559         s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
13560         s << "\tsType = " << value.sType << '\n';
13561         s << "\tpNext = " << value.pNext << '\n';
13562         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13563         s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
13564         s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
13565         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13566         s << '}';
13567         return s;
13568 }
13569
13570 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersInfoEXT& value)
13571 {
13572         s << "VkVideoEncodeH265EmitPictureParametersInfoEXT = {\n";
13573         s << "\tsType = " << value.sType << '\n';
13574         s << "\tpNext = " << value.pNext << '\n';
13575         s << "\tvpsId = " << value.vpsId << '\n';
13576         s << "\tspsId = " << value.spsId << '\n';
13577         s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
13578         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13579         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13580         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13581         s << '}';
13582         return s;
13583 }
13584
13585 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentInfoEXT& value)
13586 {
13587         s << "VkVideoEncodeH265NaluSliceSegmentInfoEXT = {\n";
13588         s << "\tsType = " << value.sType << '\n';
13589         s << "\tpNext = " << value.pNext << '\n';
13590         s << "\tctbCount = " << value.ctbCount << '\n';
13591         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13592         s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
13593         s << '}';
13594         return s;
13595 }
13596
13597 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
13598 {
13599         s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
13600         s << "\tsType = " << value.sType << '\n';
13601         s << "\tpNext = " << value.pNext << '\n';
13602         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13603         s << "\tidrPeriod = " << value.idrPeriod << '\n';
13604         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13605         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
13606         s << "\tsubLayerCount = " << value.subLayerCount << '\n';
13607         s << '}';
13608         return s;
13609 }
13610
13611 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
13612 {
13613         s << "VkVideoEncodeH265QpEXT = {\n";
13614         s << "\tqpI = " << value.qpI << '\n';
13615         s << "\tqpP = " << value.qpP << '\n';
13616         s << "\tqpB = " << value.qpB << '\n';
13617         s << '}';
13618         return s;
13619 }
13620
13621 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
13622 {
13623         s << "VkVideoEncodeH265FrameSizeEXT = {\n";
13624         s << "\tframeISize = " << value.frameISize << '\n';
13625         s << "\tframePSize = " << value.framePSize << '\n';
13626         s << "\tframeBSize = " << value.frameBSize << '\n';
13627         s << '}';
13628         return s;
13629 }
13630
13631 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
13632 {
13633         s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
13634         s << "\tsType = " << value.sType << '\n';
13635         s << "\tpNext = " << value.pNext << '\n';
13636         s << "\ttemporalId = " << value.temporalId << '\n';
13637         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
13638         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
13639         s << "\tuseMinQp = " << value.useMinQp << '\n';
13640         s << "\tminQp = " << value.minQp << '\n';
13641         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
13642         s << "\tmaxQp = " << value.maxQp << '\n';
13643         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
13644         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
13645         s << '}';
13646         return s;
13647 }
13648
13649 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileInfoEXT& value)
13650 {
13651         s << "VkVideoEncodeH265ProfileInfoEXT = {\n";
13652         s << "\tsType = " << value.sType << '\n';
13653         s << "\tpNext = " << value.pNext << '\n';
13654         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13655         s << '}';
13656         return s;
13657 }
13658
13659 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
13660 {
13661         s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
13662         s << "\tsType = " << value.sType << '\n';
13663         s << "\tpNext = " << value.pNext << '\n';
13664         s << "\tslotIndex = " << value.slotIndex << '\n';
13665         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13666         s << '}';
13667         return s;
13668 }
13669
13670 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsInfoEXT& value)
13671 {
13672         s << "VkVideoEncodeH265ReferenceListsInfoEXT = {\n";
13673         s << "\tsType = " << value.sType << '\n';
13674         s << "\tpNext = " << value.pNext << '\n';
13675         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
13676         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
13677         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
13678         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
13679         s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
13680         s << '}';
13681         return s;
13682 }
13683
13684 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
13685 {
13686         s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
13687         s << "\tsType = " << value.sType << '\n';
13688         s << "\tpNext = " << value.pNext << '\n';
13689         s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
13690         s << '}';
13691         return s;
13692 }
13693
13694 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
13695 {
13696         s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
13697         s << "\tsType = " << value.sType << '\n';
13698         s << "\tpNext = " << value.pNext << '\n';
13699         s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
13700         s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
13701         s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
13702         s << '}';
13703         return s;
13704 }
13705
13706 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
13707 {
13708         s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
13709         s << "\tsType = " << value.sType << '\n';
13710         s << "\tpNext = " << value.pNext << '\n';
13711         s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
13712         s << '}';
13713         return s;
13714 }
13715
13716 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
13717 {
13718         s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
13719         s << "\tsType = " << value.sType << '\n';
13720         s << "\tpNext = " << value.pNext << '\n';
13721         s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
13722         s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
13723         s << '}';
13724         return s;
13725 }
13726
13727 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
13728 {
13729         s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
13730         s << "\tsType = " << value.sType << '\n';
13731         s << "\tpNext = " << value.pNext << '\n';
13732         s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
13733         s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
13734         s << '}';
13735         return s;
13736 }
13737
13738 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
13739 {
13740         s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
13741         s << "\tsType = " << value.sType << '\n';
13742         s << "\tpNext = " << value.pNext << '\n';
13743         s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
13744         s << '}';
13745         return s;
13746 }
13747
13748 std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
13749 {
13750         s << "VkCuModuleCreateInfoNVX = {\n";
13751         s << "\tsType = " << value.sType << '\n';
13752         s << "\tpNext = " << value.pNext << '\n';
13753         s << "\tdataSize = " << value.dataSize << '\n';
13754         s << "\tpData = " << value.pData << '\n';
13755         s << '}';
13756         return s;
13757 }
13758
13759 std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
13760 {
13761         s << "VkCuFunctionCreateInfoNVX = {\n";
13762         s << "\tsType = " << value.sType << '\n';
13763         s << "\tpNext = " << value.pNext << '\n';
13764         s << "\tmodule = " << value.module << '\n';
13765         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
13766         s << '}';
13767         return s;
13768 }
13769
13770 std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
13771 {
13772         s << "VkCuLaunchInfoNVX = {\n";
13773         s << "\tsType = " << value.sType << '\n';
13774         s << "\tpNext = " << value.pNext << '\n';
13775         s << "\tfunction = " << value.function << '\n';
13776         s << "\tgridDimX = " << value.gridDimX << '\n';
13777         s << "\tgridDimY = " << value.gridDimY << '\n';
13778         s << "\tgridDimZ = " << value.gridDimZ << '\n';
13779         s << "\tblockDimX = " << value.blockDimX << '\n';
13780         s << "\tblockDimY = " << value.blockDimY << '\n';
13781         s << "\tblockDimZ = " << value.blockDimZ << '\n';
13782         s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
13783         s << "\tparamCount = " << value.paramCount << '\n';
13784         s << "\tpParams = " << value.pParams << '\n';
13785         s << "\textraCount = " << value.extraCount << '\n';
13786         s << "\tpExtras = " << value.pExtras << '\n';
13787         s << '}';
13788         return s;
13789 }
13790
13791 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
13792 {
13793         s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
13794         s << "\tsType = " << value.sType << '\n';
13795         s << "\tpNext = " << value.pNext << '\n';
13796         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
13797         s << '}';
13798         return s;
13799 }
13800
13801 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
13802 {
13803         s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
13804         s << "\tsType = " << value.sType << '\n';
13805         s << "\tpNext = " << value.pNext << '\n';
13806         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
13807         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
13808         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
13809         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
13810         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
13811         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
13812         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
13813         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
13814         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
13815         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
13816         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
13817         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
13818         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
13819         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
13820         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
13821         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
13822         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
13823         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
13824         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
13825         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
13826         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
13827         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
13828         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
13829         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
13830         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
13831         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
13832         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
13833         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
13834         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
13835         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
13836         s << '}';
13837         return s;
13838 }
13839
13840 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
13841 {
13842         s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
13843         s << "\tsType = " << value.sType << '\n';
13844         s << "\tpNext = " << value.pNext << '\n';
13845         s << "\thasPrimary = " << value.hasPrimary << '\n';
13846         s << "\thasRender = " << value.hasRender << '\n';
13847         s << "\tprimaryMajor = " << value.primaryMajor << '\n';
13848         s << "\tprimaryMinor = " << value.primaryMinor << '\n';
13849         s << "\trenderMajor = " << value.renderMajor << '\n';
13850         s << "\trenderMinor = " << value.renderMinor << '\n';
13851         s << '}';
13852         return s;
13853 }
13854
13855 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
13856 {
13857         s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
13858         s << "\tsType = " << value.sType << '\n';
13859         s << "\tpNext = " << value.pNext << '\n';
13860         s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
13861         s << '}';
13862         return s;
13863 }
13864
13865 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
13866 {
13867         s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
13868         s << "\tsType = " << value.sType << '\n';
13869         s << "\tpNext = " << value.pNext << '\n';
13870         s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
13871         s << '}';
13872         return s;
13873 }
13874
13875 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
13876 {
13877         s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
13878         s << "\tsType = " << value.sType << '\n';
13879         s << "\tpNext = " << value.pNext << '\n';
13880         s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
13881         s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
13882         s << '}';
13883         return s;
13884 }
13885
13886 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
13887 {
13888         s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
13889         s << "\tsType = " << value.sType << '\n';
13890         s << "\tpNext = " << value.pNext << '\n';
13891         s << "\tvertexData = " << value.vertexData << '\n';
13892         s << '}';
13893         return s;
13894 }
13895
13896 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
13897 {
13898         s << "VkAccelerationStructureMotionInfoNV = {\n";
13899         s << "\tsType = " << value.sType << '\n';
13900         s << "\tpNext = " << value.pNext << '\n';
13901         s << "\tmaxInstances = " << value.maxInstances << '\n';
13902         s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
13903         s << '}';
13904         return s;
13905 }
13906
13907 std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
13908 {
13909         s << "VkSRTDataNV = {\n";
13910         s << "\tsx = " << value.sx << '\n';
13911         s << "\ta = " << value.a << '\n';
13912         s << "\tb = " << value.b << '\n';
13913         s << "\tpvx = " << value.pvx << '\n';
13914         s << "\tsy = " << value.sy << '\n';
13915         s << "\tc = " << value.c << '\n';
13916         s << "\tpvy = " << value.pvy << '\n';
13917         s << "\tsz = " << value.sz << '\n';
13918         s << "\tpvz = " << value.pvz << '\n';
13919         s << "\tqx = " << value.qx << '\n';
13920         s << "\tqy = " << value.qy << '\n';
13921         s << "\tqz = " << value.qz << '\n';
13922         s << "\tqw = " << value.qw << '\n';
13923         s << "\ttx = " << value.tx << '\n';
13924         s << "\tty = " << value.ty << '\n';
13925         s << "\ttz = " << value.tz << '\n';
13926         s << '}';
13927         return s;
13928 }
13929
13930 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
13931 {
13932         s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
13933         s << "\ttransformT0 = " << value.transformT0 << '\n';
13934         s << "\ttransformT1 = " << value.transformT1 << '\n';
13935         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
13936         s << "\tmask = " << value.mask << '\n';
13937         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
13938         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
13939         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
13940         s << '}';
13941         return s;
13942 }
13943
13944 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
13945 {
13946         s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
13947         s << "\ttransformT0 = " << value.transformT0 << '\n';
13948         s << "\ttransformT1 = " << value.transformT1 << '\n';
13949         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
13950         s << "\tmask = " << value.mask << '\n';
13951         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
13952         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
13953         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
13954         s << '}';
13955         return s;
13956 }
13957
13958 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
13959 {
13960         s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
13961         s << "\tstaticInstance = " << value.staticInstance << '\n';
13962         s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
13963         s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
13964         s << '}';
13965         return s;
13966 }
13967
13968 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
13969 {
13970         s << "VkAccelerationStructureMotionInstanceNV = {\n";
13971         s << "\ttype = " << value.type << '\n';
13972         s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
13973         s << "\tdata = " << value.data << '\n';
13974         s << '}';
13975         return s;
13976 }
13977
13978 std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
13979 {
13980         s << "VkMemoryGetRemoteAddressInfoNV = {\n";
13981         s << "\tsType = " << value.sType << '\n';
13982         s << "\tpNext = " << value.pNext << '\n';
13983         s << "\tmemory = " << value.memory << '\n';
13984         s << "\thandleType = " << value.handleType << '\n';
13985         s << '}';
13986         return s;
13987 }
13988
13989 std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
13990 {
13991         s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
13992         s << "\tsType = " << value.sType << '\n';
13993         s << "\tpNext = " << value.pNext << '\n';
13994         s << "\tcollection = " << value.collection << '\n';
13995         s << "\tindex = " << value.index << '\n';
13996         s << '}';
13997         return s;
13998 }
13999
14000 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
14001 {
14002         s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
14003         s << "\tsType = " << value.sType << '\n';
14004         s << "\tpNext = " << value.pNext << '\n';
14005         s << "\tcollection = " << value.collection << '\n';
14006         s << "\tindex = " << value.index << '\n';
14007         s << '}';
14008         return s;
14009 }
14010
14011 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
14012 {
14013         s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
14014         s << "\tsType = " << value.sType << '\n';
14015         s << "\tpNext = " << value.pNext << '\n';
14016         s << "\tcollection = " << value.collection << '\n';
14017         s << "\tindex = " << value.index << '\n';
14018         s << '}';
14019         return s;
14020 }
14021
14022 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
14023 {
14024         s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
14025         s << "\tsType = " << value.sType << '\n';
14026         s << "\tpNext = " << value.pNext << '\n';
14027         s << "\tcollectionToken = " << value.collectionToken << '\n';
14028         s << '}';
14029         return s;
14030 }
14031
14032 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
14033 {
14034         s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
14035         s << "\tsType = " << value.sType << '\n';
14036         s << "\tpNext = " << value.pNext << '\n';
14037         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14038         s << "\tbufferCount = " << value.bufferCount << '\n';
14039         s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
14040         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14041         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
14042         s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
14043         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14044         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14045         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14046         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14047         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14048         s << '}';
14049         return s;
14050 }
14051
14052 std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
14053 {
14054         s << "VkBufferConstraintsInfoFUCHSIA = {\n";
14055         s << "\tsType = " << value.sType << '\n';
14056         s << "\tpNext = " << value.pNext << '\n';
14057         s << "\tcreateInfo = " << value.createInfo << '\n';
14058         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14059         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14060         s << '}';
14061         return s;
14062 }
14063
14064 std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
14065 {
14066         s << "VkSysmemColorSpaceFUCHSIA = {\n";
14067         s << "\tsType = " << value.sType << '\n';
14068         s << "\tpNext = " << value.pNext << '\n';
14069         s << "\tcolorSpace = " << value.colorSpace << '\n';
14070         s << '}';
14071         return s;
14072 }
14073
14074 std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
14075 {
14076         s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
14077         s << "\tsType = " << value.sType << '\n';
14078         s << "\tpNext = " << value.pNext << '\n';
14079         s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
14080         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14081         s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
14082         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14083         s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
14084         s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
14085         s << '}';
14086         return s;
14087 }
14088
14089 std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
14090 {
14091         s << "VkImageConstraintsInfoFUCHSIA = {\n";
14092         s << "\tsType = " << value.sType << '\n';
14093         s << "\tpNext = " << value.pNext << '\n';
14094         s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
14095         s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
14096         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14097         s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
14098         s << '}';
14099         return s;
14100 }
14101
14102 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
14103 {
14104         s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
14105         s << "\tsType = " << value.sType << '\n';
14106         s << "\tpNext = " << value.pNext << '\n';
14107         s << "\tminBufferCount = " << value.minBufferCount << '\n';
14108         s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
14109         s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
14110         s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
14111         s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
14112         s << '}';
14113         return s;
14114 }
14115
14116 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
14117 {
14118         s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
14119         s << "\tsType = " << value.sType << '\n';
14120         s << "\tpNext = " << value.pNext << '\n';
14121         s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
14122         s << '}';
14123         return s;
14124 }
14125
14126 std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
14127 {
14128         s << "VkFormatProperties3 = {\n";
14129         s << "\tsType = " << value.sType << '\n';
14130         s << "\tpNext = " << value.pNext << '\n';
14131         s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
14132         s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
14133         s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
14134         s << '}';
14135         return s;
14136 }
14137
14138 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
14139 {
14140         s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
14141         s << "\tsType = " << value.sType << '\n';
14142         s << "\tpNext = " << value.pNext << '\n';
14143         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
14144         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
14145         s << '}';
14146         return s;
14147 }
14148
14149 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
14150 {
14151         s << "VkDrmFormatModifierProperties2EXT = {\n";
14152         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
14153         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
14154         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
14155         s << '}';
14156         return s;
14157 }
14158
14159 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
14160 {
14161         s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
14162         s << "\tsType = " << value.sType << '\n';
14163         s << "\tpNext = " << value.pNext << '\n';
14164         s << "\tformat = " << value.format << '\n';
14165         s << "\texternalFormat = " << value.externalFormat << '\n';
14166         s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
14167         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14168         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14169         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14170         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14171         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14172         s << '}';
14173         return s;
14174 }
14175
14176 std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
14177 {
14178         s << "VkPipelineRenderingCreateInfo = {\n";
14179         s << "\tsType = " << value.sType << '\n';
14180         s << "\tpNext = " << value.pNext << '\n';
14181         s << "\tviewMask = " << value.viewMask << '\n';
14182         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14183         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
14184         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
14185         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
14186         s << '}';
14187         return s;
14188 }
14189
14190 std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
14191 {
14192         s << "VkRenderingInfo = {\n";
14193         s << "\tsType = " << value.sType << '\n';
14194         s << "\tpNext = " << value.pNext << '\n';
14195         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
14196         s << "\trenderArea = " << value.renderArea << '\n';
14197         s << "\tlayerCount = " << value.layerCount << '\n';
14198         s << "\tviewMask = " << value.viewMask << '\n';
14199         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14200         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
14201         s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
14202         s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
14203         s << '}';
14204         return s;
14205 }
14206
14207 std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
14208 {
14209         s << "VkRenderingAttachmentInfo = {\n";
14210         s << "\tsType = " << value.sType << '\n';
14211         s << "\tpNext = " << value.pNext << '\n';
14212         s << "\timageView = " << value.imageView << '\n';
14213         s << "\timageLayout = " << value.imageLayout << '\n';
14214         s << "\tresolveMode = " << value.resolveMode << '\n';
14215         s << "\tresolveImageView = " << value.resolveImageView << '\n';
14216         s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
14217         s << "\tloadOp = " << value.loadOp << '\n';
14218         s << "\tstoreOp = " << value.storeOp << '\n';
14219         s << "\tclearValue = " << value.clearValue << '\n';
14220         s << '}';
14221         return s;
14222 }
14223
14224 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
14225 {
14226         s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
14227         s << "\tsType = " << value.sType << '\n';
14228         s << "\tpNext = " << value.pNext << '\n';
14229         s << "\timageView = " << value.imageView << '\n';
14230         s << "\timageLayout = " << value.imageLayout << '\n';
14231         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
14232         s << '}';
14233         return s;
14234 }
14235
14236 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
14237 {
14238         s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
14239         s << "\tsType = " << value.sType << '\n';
14240         s << "\tpNext = " << value.pNext << '\n';
14241         s << "\timageView = " << value.imageView << '\n';
14242         s << "\timageLayout = " << value.imageLayout << '\n';
14243         s << '}';
14244         return s;
14245 }
14246
14247 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
14248 {
14249         s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
14250         s << "\tsType = " << value.sType << '\n';
14251         s << "\tpNext = " << value.pNext << '\n';
14252         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
14253         s << '}';
14254         return s;
14255 }
14256
14257 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
14258 {
14259         s << "VkCommandBufferInheritanceRenderingInfo = {\n";
14260         s << "\tsType = " << value.sType << '\n';
14261         s << "\tpNext = " << value.pNext << '\n';
14262         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
14263         s << "\tviewMask = " << value.viewMask << '\n';
14264         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14265         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
14266         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
14267         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
14268         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
14269         s << '}';
14270         return s;
14271 }
14272
14273 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
14274 {
14275         s << "VkAttachmentSampleCountInfoAMD = {\n";
14276         s << "\tsType = " << value.sType << '\n';
14277         s << "\tpNext = " << value.pNext << '\n';
14278         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14279         s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
14280         s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
14281         s << '}';
14282         return s;
14283 }
14284
14285 std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
14286 {
14287         s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
14288         s << "\tsType = " << value.sType << '\n';
14289         s << "\tpNext = " << value.pNext << '\n';
14290         s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
14291         s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
14292         s << '}';
14293         return s;
14294 }
14295
14296 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
14297 {
14298         s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
14299         s << "\tsType = " << value.sType << '\n';
14300         s << "\tpNext = " << value.pNext << '\n';
14301         s << "\tminLod = " << value.minLod << '\n';
14302         s << '}';
14303         return s;
14304 }
14305
14306 std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
14307 {
14308         s << "VkImageViewMinLodCreateInfoEXT = {\n";
14309         s << "\tsType = " << value.sType << '\n';
14310         s << "\tpNext = " << value.pNext << '\n';
14311         s << "\tminLod = " << value.minLod << '\n';
14312         s << '}';
14313         return s;
14314 }
14315
14316 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT& value)
14317 {
14318         s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = {\n";
14319         s << "\tsType = " << value.sType << '\n';
14320         s << "\tpNext = " << value.pNext << '\n';
14321         s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
14322         s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
14323         s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
14324         s << '}';
14325         return s;
14326 }
14327
14328 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
14329 {
14330         s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
14331         s << "\tsType = " << value.sType << '\n';
14332         s << "\tpNext = " << value.pNext << '\n';
14333         s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
14334         s << '}';
14335         return s;
14336 }
14337
14338 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
14339 {
14340         s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
14341         s << "\tsType = " << value.sType << '\n';
14342         s << "\tpNext = " << value.pNext << '\n';
14343         s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
14344         s << '}';
14345         return s;
14346 }
14347
14348 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
14349 {
14350         s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
14351         s << "\tsType = " << value.sType << '\n';
14352         s << "\tpNext = " << value.pNext << '\n';
14353         s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
14354         s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
14355         s << '}';
14356         return s;
14357 }
14358
14359 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
14360 {
14361         s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
14362         s << "\tsType = " << value.sType << '\n';
14363         s << "\tpNext = " << value.pNext << '\n';
14364         s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
14365         s << '}';
14366         return s;
14367 }
14368
14369 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
14370 {
14371         s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
14372         s << "\tsType = " << value.sType << '\n';
14373         s << "\tpNext = " << value.pNext << '\n';
14374         s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
14375         s << '}';
14376         return s;
14377 }
14378
14379 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
14380 {
14381         s << "VkDescriptorSetBindingReferenceVALVE = {\n";
14382         s << "\tsType = " << value.sType << '\n';
14383         s << "\tpNext = " << value.pNext << '\n';
14384         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
14385         s << "\tbinding = " << value.binding << '\n';
14386         s << '}';
14387         return s;
14388 }
14389
14390 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
14391 {
14392         s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
14393         s << "\tsType = " << value.sType << '\n';
14394         s << "\tpNext = " << value.pNext << '\n';
14395         s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
14396         s << "\tdescriptorSize = " << value.descriptorSize << '\n';
14397         s << '}';
14398         return s;
14399 }
14400
14401 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
14402 {
14403         s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
14404         s << "\tsType = " << value.sType << '\n';
14405         s << "\tpNext = " << value.pNext << '\n';
14406         s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
14407         s << '}';
14408         return s;
14409 }
14410
14411 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
14412 {
14413         s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
14414         s << "\tsType = " << value.sType << '\n';
14415         s << "\tpNext = " << value.pNext << '\n';
14416         s << "\tshaderModuleIdentifierAlgorithmUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderModuleIdentifierAlgorithmUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderModuleIdentifierAlgorithmUUID))) << '\n';
14417         s << '}';
14418         return s;
14419 }
14420
14421 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
14422 {
14423         s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
14424         s << "\tsType = " << value.sType << '\n';
14425         s << "\tpNext = " << value.pNext << '\n';
14426         s << "\tidentifierSize = " << value.identifierSize << '\n';
14427         s << "\tpIdentifier = " << value.pIdentifier << '\n';
14428         s << '}';
14429         return s;
14430 }
14431
14432 std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
14433 {
14434         s << "VkShaderModuleIdentifierEXT = {\n";
14435         s << "\tsType = " << value.sType << '\n';
14436         s << "\tpNext = " << value.pNext << '\n';
14437         s << "\tidentifierSize = " << value.identifierSize << '\n';
14438         s << "\tidentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.identifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.identifier))) << '\n';
14439         s << '}';
14440         return s;
14441 }
14442
14443 std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
14444 {
14445         s << "VkImageCompressionControlEXT = {\n";
14446         s << "\tsType = " << value.sType << '\n';
14447         s << "\tpNext = " << value.pNext << '\n';
14448         s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
14449         s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
14450         s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
14451         s << '}';
14452         return s;
14453 }
14454
14455 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
14456 {
14457         s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
14458         s << "\tsType = " << value.sType << '\n';
14459         s << "\tpNext = " << value.pNext << '\n';
14460         s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
14461         s << '}';
14462         return s;
14463 }
14464
14465 std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
14466 {
14467         s << "VkImageCompressionPropertiesEXT = {\n";
14468         s << "\tsType = " << value.sType << '\n';
14469         s << "\tpNext = " << value.pNext << '\n';
14470         s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
14471         s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
14472         s << '}';
14473         return s;
14474 }
14475
14476 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
14477 {
14478         s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
14479         s << "\tsType = " << value.sType << '\n';
14480         s << "\tpNext = " << value.pNext << '\n';
14481         s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
14482         s << '}';
14483         return s;
14484 }
14485
14486 std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
14487 {
14488         s << "VkImageSubresource2EXT = {\n";
14489         s << "\tsType = " << value.sType << '\n';
14490         s << "\tpNext = " << value.pNext << '\n';
14491         s << "\timageSubresource = " << value.imageSubresource << '\n';
14492         s << '}';
14493         return s;
14494 }
14495
14496 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
14497 {
14498         s << "VkSubresourceLayout2EXT = {\n";
14499         s << "\tsType = " << value.sType << '\n';
14500         s << "\tpNext = " << value.pNext << '\n';
14501         s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
14502         s << '}';
14503         return s;
14504 }
14505
14506 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
14507 {
14508         s << "VkRenderPassCreationControlEXT = {\n";
14509         s << "\tsType = " << value.sType << '\n';
14510         s << "\tpNext = " << value.pNext << '\n';
14511         s << "\tdisallowMerging = " << value.disallowMerging << '\n';
14512         s << '}';
14513         return s;
14514 }
14515
14516 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
14517 {
14518         s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
14519         s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
14520         s << '}';
14521         return s;
14522 }
14523
14524 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
14525 {
14526         s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
14527         s << "\tsType = " << value.sType << '\n';
14528         s << "\tpNext = " << value.pNext << '\n';
14529         s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
14530         s << '}';
14531         return s;
14532 }
14533
14534 std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
14535 {
14536         s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
14537         s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
14538         s << "\tdescription = " << (const char*)value.description << '\n';
14539         s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
14540         s << '}';
14541         return s;
14542 }
14543
14544 std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
14545 {
14546         s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
14547         s << "\tsType = " << value.sType << '\n';
14548         s << "\tpNext = " << value.pNext << '\n';
14549         s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
14550         s << '}';
14551         return s;
14552 }
14553
14554 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
14555 {
14556         s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
14557         s << "\tsType = " << value.sType << '\n';
14558         s << "\tpNext = " << value.pNext << '\n';
14559         s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
14560         s << '}';
14561         return s;
14562 }
14563
14564 std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
14565 {
14566         s << "VkPipelinePropertiesIdentifierEXT = {\n";
14567         s << "\tsType = " << value.sType << '\n';
14568         s << "\tpNext = " << value.pNext << '\n';
14569         s << "\tpipelineIdentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineIdentifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineIdentifier))) << '\n';
14570         s << '}';
14571         return s;
14572 }
14573
14574 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
14575 {
14576         s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
14577         s << "\tsType = " << value.sType << '\n';
14578         s << "\tpNext = " << value.pNext << '\n';
14579         s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
14580         s << '}';
14581         return s;
14582 }
14583
14584 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
14585 {
14586         s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
14587         s << "\tsType = " << value.sType << '\n';
14588         s << "\tpNext = " << value.pNext << '\n';
14589         s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
14590         s << '}';
14591         return s;
14592 }
14593
14594 std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
14595 {
14596         s << "VkExportMetalObjectCreateInfoEXT = {\n";
14597         s << "\tsType = " << value.sType << '\n';
14598         s << "\tpNext = " << value.pNext << '\n';
14599         s << "\texportObjectType = " << value.exportObjectType << '\n';
14600         s << '}';
14601         return s;
14602 }
14603
14604 std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
14605 {
14606         s << "VkExportMetalObjectsInfoEXT = {\n";
14607         s << "\tsType = " << value.sType << '\n';
14608         s << "\tpNext = " << value.pNext << '\n';
14609         s << '}';
14610         return s;
14611 }
14612
14613 std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
14614 {
14615         s << "VkExportMetalDeviceInfoEXT = {\n";
14616         s << "\tsType = " << value.sType << '\n';
14617         s << "\tpNext = " << value.pNext << '\n';
14618         s << "\tmtlDevice = " << value.mtlDevice << '\n';
14619         s << '}';
14620         return s;
14621 }
14622
14623 std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
14624 {
14625         s << "VkExportMetalCommandQueueInfoEXT = {\n";
14626         s << "\tsType = " << value.sType << '\n';
14627         s << "\tpNext = " << value.pNext << '\n';
14628         s << "\tqueue = " << value.queue << '\n';
14629         s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
14630         s << '}';
14631         return s;
14632 }
14633
14634 std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
14635 {
14636         s << "VkExportMetalBufferInfoEXT = {\n";
14637         s << "\tsType = " << value.sType << '\n';
14638         s << "\tpNext = " << value.pNext << '\n';
14639         s << "\tmemory = " << value.memory << '\n';
14640         s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
14641         s << '}';
14642         return s;
14643 }
14644
14645 std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
14646 {
14647         s << "VkImportMetalBufferInfoEXT = {\n";
14648         s << "\tsType = " << value.sType << '\n';
14649         s << "\tpNext = " << value.pNext << '\n';
14650         s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
14651         s << '}';
14652         return s;
14653 }
14654
14655 std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
14656 {
14657         s << "VkExportMetalTextureInfoEXT = {\n";
14658         s << "\tsType = " << value.sType << '\n';
14659         s << "\tpNext = " << value.pNext << '\n';
14660         s << "\timage = " << value.image << '\n';
14661         s << "\timageView = " << value.imageView << '\n';
14662         s << "\tbufferView = " << value.bufferView << '\n';
14663         s << "\tplane = " << value.plane << '\n';
14664         s << "\tmtlTexture = " << value.mtlTexture << '\n';
14665         s << '}';
14666         return s;
14667 }
14668
14669 std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
14670 {
14671         s << "VkImportMetalTextureInfoEXT = {\n";
14672         s << "\tsType = " << value.sType << '\n';
14673         s << "\tpNext = " << value.pNext << '\n';
14674         s << "\tplane = " << value.plane << '\n';
14675         s << "\tmtlTexture = " << value.mtlTexture << '\n';
14676         s << '}';
14677         return s;
14678 }
14679
14680 std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
14681 {
14682         s << "VkExportMetalIOSurfaceInfoEXT = {\n";
14683         s << "\tsType = " << value.sType << '\n';
14684         s << "\tpNext = " << value.pNext << '\n';
14685         s << "\timage = " << value.image << '\n';
14686         s << "\tioSurface = " << value.ioSurface << '\n';
14687         s << '}';
14688         return s;
14689 }
14690
14691 std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
14692 {
14693         s << "VkImportMetalIOSurfaceInfoEXT = {\n";
14694         s << "\tsType = " << value.sType << '\n';
14695         s << "\tpNext = " << value.pNext << '\n';
14696         s << "\tioSurface = " << value.ioSurface << '\n';
14697         s << '}';
14698         return s;
14699 }
14700
14701 std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
14702 {
14703         s << "VkExportMetalSharedEventInfoEXT = {\n";
14704         s << "\tsType = " << value.sType << '\n';
14705         s << "\tpNext = " << value.pNext << '\n';
14706         s << "\tsemaphore = " << value.semaphore << '\n';
14707         s << "\tevent = " << value.event << '\n';
14708         s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
14709         s << '}';
14710         return s;
14711 }
14712
14713 std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
14714 {
14715         s << "VkImportMetalSharedEventInfoEXT = {\n";
14716         s << "\tsType = " << value.sType << '\n';
14717         s << "\tpNext = " << value.pNext << '\n';
14718         s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
14719         s << '}';
14720         return s;
14721 }
14722
14723 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
14724 {
14725         s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
14726         s << "\tsType = " << value.sType << '\n';
14727         s << "\tpNext = " << value.pNext << '\n';
14728         s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
14729         s << '}';
14730         return s;
14731 }
14732
14733 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
14734 {
14735         s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
14736         s << "\tsType = " << value.sType << '\n';
14737         s << "\tpNext = " << value.pNext << '\n';
14738         s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
14739         s << '}';
14740         return s;
14741 }
14742
14743 std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
14744 {
14745         s << "VkPipelineRobustnessCreateInfoEXT = {\n";
14746         s << "\tsType = " << value.sType << '\n';
14747         s << "\tpNext = " << value.pNext << '\n';
14748         s << "\tstorageBuffers = " << value.storageBuffers << '\n';
14749         s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
14750         s << "\tvertexInputs = " << value.vertexInputs << '\n';
14751         s << "\timages = " << value.images << '\n';
14752         s << '}';
14753         return s;
14754 }
14755
14756 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
14757 {
14758         s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
14759         s << "\tsType = " << value.sType << '\n';
14760         s << "\tpNext = " << value.pNext << '\n';
14761         s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
14762         s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
14763         s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
14764         s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
14765         s << '}';
14766         return s;
14767 }
14768
14769 std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
14770 {
14771         s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
14772         s << "\tsType = " << value.sType << '\n';
14773         s << "\tpNext = " << value.pNext << '\n';
14774         s << "\tfilterCenter = " << value.filterCenter << '\n';
14775         s << "\tfilterSize = " << value.filterSize << '\n';
14776         s << "\tnumPhases = " << value.numPhases << '\n';
14777         s << '}';
14778         return s;
14779 }
14780
14781 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
14782 {
14783         s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
14784         s << "\tsType = " << value.sType << '\n';
14785         s << "\tpNext = " << value.pNext << '\n';
14786         s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
14787         s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
14788         s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
14789         s << '}';
14790         return s;
14791 }
14792
14793 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
14794 {
14795         s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
14796         s << "\tsType = " << value.sType << '\n';
14797         s << "\tpNext = " << value.pNext << '\n';
14798         s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
14799         s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
14800         s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
14801         s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
14802         s << '}';
14803         return s;
14804 }
14805
14806 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
14807 {
14808         s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
14809         s << "\tsType = " << value.sType << '\n';
14810         s << "\tpNext = " << value.pNext << '\n';
14811         s << "\ttileProperties = " << value.tileProperties << '\n';
14812         s << '}';
14813         return s;
14814 }
14815
14816 std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
14817 {
14818         s << "VkTilePropertiesQCOM = {\n";
14819         s << "\tsType = " << value.sType << '\n';
14820         s << "\tpNext = " << value.pNext << '\n';
14821         s << "\ttileSize = " << value.tileSize << '\n';
14822         s << "\tapronSize = " << value.apronSize << '\n';
14823         s << "\torigin = " << value.origin << '\n';
14824         s << '}';
14825         return s;
14826 }
14827
14828 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAmigoProfilingFeaturesSEC& value)
14829 {
14830         s << "VkPhysicalDeviceAmigoProfilingFeaturesSEC = {\n";
14831         s << "\tsType = " << value.sType << '\n';
14832         s << "\tpNext = " << value.pNext << '\n';
14833         s << "\tamigoProfiling = " << value.amigoProfiling << '\n';
14834         s << '}';
14835         return s;
14836 }
14837
14838 std::ostream& operator<< (std::ostream& s, const VkAmigoProfilingSubmitInfoSEC& value)
14839 {
14840         s << "VkAmigoProfilingSubmitInfoSEC = {\n";
14841         s << "\tsType = " << value.sType << '\n';
14842         s << "\tpNext = " << value.pNext << '\n';
14843         s << "\tfirstDrawTimestamp = " << value.firstDrawTimestamp << '\n';
14844         s << "\tswapBufferTimestamp = " << value.swapBufferTimestamp << '\n';
14845         s << '}';
14846         return s;
14847 }
14848
14849 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT& value)
14850 {
14851         s << "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = {\n";
14852         s << "\tsType = " << value.sType << '\n';
14853         s << "\tpNext = " << value.pNext << '\n';
14854         s << "\tattachmentFeedbackLoopLayout = " << value.attachmentFeedbackLoopLayout << '\n';
14855         s << '}';
14856         return s;
14857 }
14858
14859 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT& value)
14860 {
14861         s << "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = {\n";
14862         s << "\tsType = " << value.sType << '\n';
14863         s << "\tpNext = " << value.pNext << '\n';
14864         s << "\tdepthClampZeroOne = " << value.depthClampZeroOne << '\n';
14865         s << '}';
14866         return s;
14867 }
14868
14869 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
14870 {
14871         s << "StdVideoH264SpsVuiFlags = {\n";
14872         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
14873         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
14874         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
14875         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
14876         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
14877         s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
14878         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
14879         s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
14880         s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
14881         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
14882         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
14883         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
14884         s << '}';
14885         return s;
14886 }
14887
14888 std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
14889 {
14890         s << "StdVideoH264HrdParameters = {\n";
14891         s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
14892         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
14893         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
14894         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';
14895         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';
14896         s << "\tcbr_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cbr_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cbr_flag))) << '\n';
14897         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
14898         s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
14899         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
14900         s << "\ttime_offset_length = " << value.time_offset_length << '\n';
14901         s << '}';
14902         return s;
14903 }
14904
14905 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
14906 {
14907         s << "StdVideoH264SequenceParameterSetVui = {\n";
14908         s << "\tflags = " << value.flags << '\n';
14909         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
14910         s << "\tsar_width = " << value.sar_width << '\n';
14911         s << "\tsar_height = " << value.sar_height << '\n';
14912         s << "\tvideo_format = " << value.video_format << '\n';
14913         s << "\tcolor_primaries = " << value.color_primaries << '\n';
14914         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
14915         s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
14916         s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
14917         s << "\ttime_scale = " << value.time_scale << '\n';
14918         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
14919         s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
14920         s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
14921         s << '}';
14922         return s;
14923 }
14924
14925 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
14926 {
14927         s << "StdVideoH264SpsFlags = {\n";
14928         s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
14929         s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
14930         s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
14931         s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
14932         s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
14933         s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
14934         s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
14935         s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
14936         s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
14937         s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
14938         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
14939         s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
14940         s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
14941         s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
14942         s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
14943         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
14944         s << '}';
14945         return s;
14946 }
14947
14948 std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
14949 {
14950         s << "StdVideoH264ScalingLists = {\n";
14951         s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
14952         s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
14953         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
14954         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
14955         s << '}';
14956         return s;
14957 }
14958
14959 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
14960 {
14961         s << "StdVideoH264SequenceParameterSet = {\n";
14962         s << "\tflags = " << value.flags << '\n';
14963         s << "\tprofile_idc = " << value.profile_idc << '\n';
14964         s << "\tlevel_idc = " << value.level_idc << '\n';
14965         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
14966         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
14967         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
14968         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
14969         s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
14970         s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
14971         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
14972         s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
14973         s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
14974         s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
14975         s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
14976         s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
14977         s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
14978         s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
14979         s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
14980         s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
14981         s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
14982         s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
14983         s << "\tpScalingLists = " << value.pScalingLists << '\n';
14984         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
14985         s << '}';
14986         return s;
14987 }
14988
14989 std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
14990 {
14991         s << "StdVideoH264PpsFlags = {\n";
14992         s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
14993         s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
14994         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
14995         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
14996         s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
14997         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
14998         s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
14999         s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
15000         s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
15001         s << '}';
15002         return s;
15003 }
15004
15005 std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
15006 {
15007         s << "StdVideoH264PictureParameterSet = {\n";
15008         s << "\tflags = " << value.flags << '\n';
15009         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15010         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15011         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
15012         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
15013         s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
15014         s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
15015         s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
15016         s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
15017         s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
15018         s << "\tpScalingLists = " << value.pScalingLists << '\n';
15019         s << '}';
15020         return s;
15021 }
15022
15023 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
15024 {
15025         s << "StdVideoDecodeH264PictureInfoFlags = {\n";
15026         s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
15027         s << "\tis_intra = " << value.is_intra << '\n';
15028         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
15029         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
15030         s << "\tis_reference = " << value.is_reference << '\n';
15031         s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
15032         s << '}';
15033         return s;
15034 }
15035
15036 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
15037 {
15038         s << "StdVideoDecodeH264PictureInfo = {\n";
15039         s << "\tflags = " << value.flags << '\n';
15040         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15041         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15042         s << "\treserved = " << value.reserved << '\n';
15043         s << "\tframe_num = " << value.frame_num << '\n';
15044         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
15045         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
15046         s << '}';
15047         return s;
15048 }
15049
15050 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
15051 {
15052         s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
15053         s << "\ttop_field_flag = " << value.top_field_flag << '\n';
15054         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
15055         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15056         s << "\tis_non_existing = " << value.is_non_existing << '\n';
15057         s << '}';
15058         return s;
15059 }
15060
15061 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
15062 {
15063         s << "StdVideoDecodeH264ReferenceInfo = {\n";
15064         s << "\tflags = " << value.flags << '\n';
15065         s << "\tFrameNum = " << value.FrameNum << '\n';
15066         s << "\treserved = " << value.reserved << '\n';
15067         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
15068         s << '}';
15069         return s;
15070 }
15071
15072 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
15073 {
15074         s << "StdVideoDecodeH264MvcElementFlags = {\n";
15075         s << "\tnon_idr = " << value.non_idr << '\n';
15076         s << "\tanchor_pic = " << value.anchor_pic << '\n';
15077         s << "\tinter_view = " << value.inter_view << '\n';
15078         s << '}';
15079         return s;
15080 }
15081
15082 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
15083 {
15084         s << "StdVideoDecodeH264MvcElement = {\n";
15085         s << "\tflags = " << value.flags << '\n';
15086         s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
15087         s << "\tviewId = " << value.viewId << '\n';
15088         s << "\ttemporalId = " << value.temporalId << '\n';
15089         s << "\tpriorityId = " << value.priorityId << '\n';
15090         s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
15091         s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
15092         s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
15093         s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
15094         s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
15095         s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
15096         s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
15097         s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
15098         s << '}';
15099         return s;
15100 }
15101
15102 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
15103 {
15104         s << "StdVideoDecodeH264Mvc = {\n";
15105         s << "\tviewId0 = " << value.viewId0 << '\n';
15106         s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
15107         s << "\tpMvcElements = " << value.pMvcElements << '\n';
15108         s << '}';
15109         return s;
15110 }
15111
15112 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
15113 {
15114         s << "StdVideoEncodeH264WeightTableFlags = {\n";
15115         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
15116         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
15117         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
15118         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
15119         s << '}';
15120         return s;
15121 }
15122
15123 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
15124 {
15125         s << "StdVideoEncodeH264WeightTable = {\n";
15126         s << "\tflags = " << value.flags << '\n';
15127         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
15128         s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
15129         s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
15130         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
15131         s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
15132         s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
15133         s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
15134         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
15135         s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
15136         s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
15137         s << '}';
15138         return s;
15139 }
15140
15141 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
15142 {
15143         s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
15144         s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
15145         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
15146         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
15147         s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
15148         s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
15149         s << '}';
15150         return s;
15151 }
15152
15153 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
15154 {
15155         s << "StdVideoEncodeH264PictureInfoFlags = {\n";
15156         s << "\tidr_flag = " << value.idr_flag << '\n';
15157         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
15158         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15159         s << '}';
15160         return s;
15161 }
15162
15163 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
15164 {
15165         s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
15166         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15167         s << '}';
15168         return s;
15169 }
15170
15171 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
15172 {
15173         s << "StdVideoEncodeH264RefMgmtFlags = {\n";
15174         s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
15175         s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
15176         s << '}';
15177         return s;
15178 }
15179
15180 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
15181 {
15182         s << "StdVideoEncodeH264RefListModEntry = {\n";
15183         s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
15184         s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
15185         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15186         s << '}';
15187         return s;
15188 }
15189
15190 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
15191 {
15192         s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
15193         s << "\toperation = " << value.operation << '\n';
15194         s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
15195         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15196         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
15197         s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
15198         s << '}';
15199         return s;
15200 }
15201
15202 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
15203 {
15204         s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
15205         s << "\tflags = " << value.flags << '\n';
15206         s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
15207         s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
15208         s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
15209         s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
15210         s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
15211         s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
15212         s << '}';
15213         return s;
15214 }
15215
15216 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
15217 {
15218         s << "StdVideoEncodeH264PictureInfo = {\n";
15219         s << "\tflags = " << value.flags << '\n';
15220         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15221         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15222         s << "\tpictureType = " << value.pictureType << '\n';
15223         s << "\tframe_num = " << value.frame_num << '\n';
15224         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
15225         s << '}';
15226         return s;
15227 }
15228
15229 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
15230 {
15231         s << "StdVideoEncodeH264ReferenceInfo = {\n";
15232         s << "\tflags = " << value.flags << '\n';
15233         s << "\tFrameNum = " << value.FrameNum << '\n';
15234         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
15235         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15236         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
15237         s << '}';
15238         return s;
15239 }
15240
15241 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
15242 {
15243         s << "StdVideoEncodeH264SliceHeader = {\n";
15244         s << "\tflags = " << value.flags << '\n';
15245         s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
15246         s << "\tslice_type = " << value.slice_type << '\n';
15247         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
15248         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
15249         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
15250         s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
15251         s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
15252         s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
15253         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
15254         s << "\tpWeightTable = " << value.pWeightTable << '\n';
15255         s << '}';
15256         return s;
15257 }
15258
15259 std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
15260 {
15261         s << "StdVideoH265DecPicBufMgr = {\n";
15262         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';
15263         s << "\tmax_dec_pic_buffering_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_dec_pic_buffering_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_dec_pic_buffering_minus1))) << '\n';
15264         s << "\tmax_num_reorder_pics = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_num_reorder_pics)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_num_reorder_pics))) << '\n';
15265         s << '}';
15266         return s;
15267 }
15268
15269 std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
15270 {
15271         s << "StdVideoH265SubLayerHrdParameters = {\n";
15272         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';
15273         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';
15274         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';
15275         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';
15276         s << "\tcbr_flag = " << value.cbr_flag << '\n';
15277         s << '}';
15278         return s;
15279 }
15280
15281 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
15282 {
15283         s << "StdVideoH265HrdFlags = {\n";
15284         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
15285         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
15286         s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
15287         s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
15288         s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
15289         s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
15290         s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
15291         s << '}';
15292         return s;
15293 }
15294
15295 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
15296 {
15297         s << "StdVideoH265HrdParameters = {\n";
15298         s << "\tflags = " << value.flags << '\n';
15299         s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
15300         s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
15301         s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
15302         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
15303         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
15304         s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
15305         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
15306         s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
15307         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
15308         s << "\tcpb_cnt_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cpb_cnt_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cpb_cnt_minus1))) << '\n';
15309         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';
15310         s << "\tpSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersNal), DE_ARRAY_END(value.pSubLayerHrdParametersNal)) << '\n';
15311         s << "\tpSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersVcl), DE_ARRAY_END(value.pSubLayerHrdParametersVcl)) << '\n';
15312         s << '}';
15313         return s;
15314 }
15315
15316 std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
15317 {
15318         s << "StdVideoH265VpsFlags = {\n";
15319         s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
15320         s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
15321         s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
15322         s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
15323         s << '}';
15324         return s;
15325 }
15326
15327 std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
15328 {
15329         s << "StdVideoH265VideoParameterSet = {\n";
15330         s << "\tflags = " << value.flags << '\n';
15331         s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
15332         s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
15333         s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
15334         s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
15335         s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
15336         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
15337         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
15338         s << '}';
15339         return s;
15340 }
15341
15342 std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
15343 {
15344         s << "StdVideoH265ScalingLists = {\n";
15345         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
15346         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
15347         s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
15348         s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
15349         s << "\tScalingListDCCoef16x16 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef16x16)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef16x16))) << '\n';
15350         s << "\tScalingListDCCoef32x32 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef32x32)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef32x32))) << '\n';
15351         s << '}';
15352         return s;
15353 }
15354
15355 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
15356 {
15357         s << "StdVideoH265SpsVuiFlags = {\n";
15358         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
15359         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
15360         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
15361         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
15362         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
15363         s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
15364         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
15365         s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
15366         s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
15367         s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
15368         s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
15369         s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
15370         s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
15371         s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
15372         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
15373         s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
15374         s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
15375         s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
15376         s << '}';
15377         return s;
15378 }
15379
15380 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
15381 {
15382         s << "StdVideoH265SequenceParameterSetVui = {\n";
15383         s << "\tflags = " << value.flags << '\n';
15384         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
15385         s << "\tsar_width = " << value.sar_width << '\n';
15386         s << "\tsar_height = " << value.sar_height << '\n';
15387         s << "\tvideo_format = " << value.video_format << '\n';
15388         s << "\tcolour_primaries = " << value.colour_primaries << '\n';
15389         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
15390         s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
15391         s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
15392         s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
15393         s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
15394         s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
15395         s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
15396         s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
15397         s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
15398         s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
15399         s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
15400         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
15401         s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
15402         s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
15403         s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
15404         s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
15405         s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
15406         s << '}';
15407         return s;
15408 }
15409
15410 std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
15411 {
15412         s << "StdVideoH265PredictorPaletteEntries = {\n";
15413         s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
15414         s << '}';
15415         return s;
15416 }
15417
15418 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
15419 {
15420         s << "StdVideoH265SpsFlags = {\n";
15421         s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
15422         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
15423         s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
15424         s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
15425         s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
15426         s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
15427         s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
15428         s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
15429         s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
15430         s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
15431         s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
15432         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
15433         s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
15434         s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
15435         s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
15436         s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
15437         s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
15438         s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
15439         s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
15440         s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
15441         s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
15442         s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
15443         s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
15444         s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
15445         s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
15446         s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
15447         s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
15448         s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
15449         s << '}';
15450         return s;
15451 }
15452
15453 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
15454 {
15455         s << "StdVideoH265SequenceParameterSet = {\n";
15456         s << "\tflags = " << value.flags << '\n';
15457         s << "\tprofile_idc = " << value.profile_idc << '\n';
15458         s << "\tlevel_idc = " << value.level_idc << '\n';
15459         s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
15460         s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
15461         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
15462         s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
15463         s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
15464         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
15465         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
15466         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
15467         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
15468         s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
15469         s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
15470         s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
15471         s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
15472         s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
15473         s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
15474         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
15475         s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
15476         s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
15477         s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
15478         s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
15479         s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
15480         s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
15481         s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
15482         s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
15483         s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
15484         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
15485         s << "\tpScalingLists = " << value.pScalingLists << '\n';
15486         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
15487         s << "\tpalette_max_size = " << value.palette_max_size << '\n';
15488         s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
15489         s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
15490         s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
15491         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
15492         s << '}';
15493         return s;
15494 }
15495
15496 std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
15497 {
15498         s << "StdVideoH265PpsFlags = {\n";
15499         s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
15500         s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
15501         s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
15502         s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
15503         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
15504         s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
15505         s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
15506         s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
15507         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
15508         s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
15509         s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
15510         s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
15511         s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
15512         s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
15513         s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
15514         s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
15515         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
15516         s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
15517         s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
15518         s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
15519         s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
15520         s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
15521         s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
15522         s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
15523         s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
15524         s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
15525         s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
15526         s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
15527         s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
15528         s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
15529         s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
15530         s << '}';
15531         return s;
15532 }
15533
15534 std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
15535 {
15536         s << "StdVideoH265PictureParameterSet = {\n";
15537         s << "\tflags = " << value.flags << '\n';
15538         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
15539         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
15540         s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
15541         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
15542         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
15543         s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
15544         s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
15545         s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
15546         s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
15547         s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
15548         s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
15549         s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
15550         s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
15551         s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
15552         s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
15553         s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
15554         s << "\tpScalingLists = " << value.pScalingLists << '\n';
15555         s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
15556         s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
15557         s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
15558         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';
15559         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';
15560         s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
15561         s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
15562         s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
15563         s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
15564         s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
15565         s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
15566         s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
15567         s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
15568         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
15569         s << '}';
15570         return s;
15571 }
15572
15573 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
15574 {
15575         s << "StdVideoDecodeH265PictureInfoFlags = {\n";
15576         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
15577         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
15578         s << "\tIsReference = " << value.IsReference << '\n';
15579         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
15580         s << '}';
15581         return s;
15582 }
15583
15584 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
15585 {
15586         s << "StdVideoDecodeH265PictureInfo = {\n";
15587         s << "\tflags = " << value.flags << '\n';
15588         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
15589         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
15590         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
15591         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
15592         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
15593         s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
15594         s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
15595         s << "\tRefPicSetStCurrBefore = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrBefore)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrBefore))) << '\n';
15596         s << "\tRefPicSetStCurrAfter = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrAfter)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrAfter))) << '\n';
15597         s << "\tRefPicSetLtCurr = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetLtCurr)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetLtCurr))) << '\n';
15598         s << '}';
15599         return s;
15600 }
15601
15602 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
15603 {
15604         s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
15605         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15606         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
15607         s << "\tis_non_existing = " << value.is_non_existing << '\n';
15608         s << '}';
15609         return s;
15610 }
15611
15612 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
15613 {
15614         s << "StdVideoDecodeH265ReferenceInfo = {\n";
15615         s << "\tflags = " << value.flags << '\n';
15616         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
15617         s << '}';
15618         return s;
15619 }
15620
15621 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
15622 {
15623         s << "StdVideoEncodeH265WeightTableFlags = {\n";
15624         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
15625         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
15626         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
15627         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
15628         s << '}';
15629         return s;
15630 }
15631
15632 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
15633 {
15634         s << "StdVideoEncodeH265WeightTable = {\n";
15635         s << "\tflags = " << value.flags << '\n';
15636         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
15637         s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
15638         s << "\tdelta_luma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l0), DE_ARRAY_END(value.delta_luma_weight_l0)) << '\n';
15639         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
15640         s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
15641         s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
15642         s << "\tdelta_luma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l1), DE_ARRAY_END(value.delta_luma_weight_l1)) << '\n';
15643         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
15644         s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
15645         s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
15646         s << '}';
15647         return s;
15648 }
15649
15650 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
15651 {
15652         s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
15653         s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
15654         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
15655         s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
15656         s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
15657         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
15658         s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
15659         s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
15660         s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
15661         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
15662         s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
15663         s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
15664         s << "\tslice_deblocking_filter_disable_flag = " << value.slice_deblocking_filter_disable_flag << '\n';
15665         s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
15666         s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
15667         s << '}';
15668         return s;
15669 }
15670
15671 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
15672 {
15673         s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
15674         s << "\tflags = " << value.flags << '\n';
15675         s << "\tslice_type = " << value.slice_type << '\n';
15676         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
15677         s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
15678         s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
15679         s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
15680         s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
15681         s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
15682         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
15683         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
15684         s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
15685         s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
15686         s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
15687         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
15688         s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
15689         s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
15690         s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
15691         s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
15692         s << "\tpWeightTable = " << value.pWeightTable << '\n';
15693         s << '}';
15694         return s;
15695 }
15696
15697 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
15698 {
15699         s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
15700         s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
15701         s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
15702         s << '}';
15703         return s;
15704 }
15705
15706 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
15707 {
15708         s << "StdVideoEncodeH265ReferenceModifications = {\n";
15709         s << "\tflags = " << value.flags << '\n';
15710         s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
15711         s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
15712         s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
15713         s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
15714         s << '}';
15715         return s;
15716 }
15717
15718 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
15719 {
15720         s << "StdVideoEncodeH265PictureInfoFlags = {\n";
15721         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
15722         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
15723         s << "\tlong_term_flag = " << value.long_term_flag << '\n';
15724         s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
15725         s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
15726         s << '}';
15727         return s;
15728 }
15729
15730 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
15731 {
15732         s << "StdVideoEncodeH265PictureInfo = {\n";
15733         s << "\tflags = " << value.flags << '\n';
15734         s << "\tPictureType = " << value.PictureType << '\n';
15735         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
15736         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
15737         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
15738         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
15739         s << "\tTemporalId = " << value.TemporalId << '\n';
15740         s << '}';
15741         return s;
15742 }
15743
15744 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
15745 {
15746         s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
15747         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15748         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
15749         s << '}';
15750         return s;
15751 }
15752
15753 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
15754 {
15755         s << "StdVideoEncodeH265ReferenceInfo = {\n";
15756         s << "\tflags = " << value.flags << '\n';
15757         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
15758         s << "\tTemporalId = " << value.TemporalId << '\n';
15759         s << '}';
15760         return s;
15761 }