Update vulkan-docs version
[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<VkOpticalFlowSessionNV>                             (void) { return "VkOpticalFlowSessionNV";                       }
44 template<> const char*  getTypeName<VkMicromapEXT>                                              (void) { return "VkMicromapEXT";                                        }
45 template<> const char*  getTypeName<VkDisplayKHR>                                               (void) { return "VkDisplayKHR";                                         }
46 template<> const char*  getTypeName<VkDisplayModeKHR>                                   (void) { return "VkDisplayModeKHR";                                     }
47 template<> const char*  getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
48 template<> const char*  getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
49 template<> const char*  getTypeName<VkDebugReportCallbackEXT>                   (void) { return "VkDebugReportCallbackEXT";                     }
50 template<> const char*  getTypeName<VkDebugUtilsMessengerEXT>                   (void) { return "VkDebugUtilsMessengerEXT";                     }
51 template<> const char*  getTypeName<VkVideoSessionKHR>                                  (void) { return "VkVideoSessionKHR";                            }
52 template<> const char*  getTypeName<VkVideoSessionParametersKHR>                (void) { return "VkVideoSessionParametersKHR";          }
53
54 namespace pt
55 {
56 std::ostream& operator<< (std::ostream& s, XlibDisplayPtr                               v) { return s << tcu::toHex(v.internal); }
57 std::ostream& operator<< (std::ostream& s, XlibWindow                                   v) { return s << tcu::toHex(v.internal); }
58 std::ostream& operator<< (std::ostream& s, XlibVisualID                                 v) { return s << tcu::toHex(v.internal); }
59 std::ostream& operator<< (std::ostream& s, XcbConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
60 std::ostream& operator<< (std::ostream& s, XcbWindow                                    v) { return s << tcu::toHex(v.internal); }
61 std::ostream& operator<< (std::ostream& s, XcbVisualid                                  v) { return s << tcu::toHex(v.internal); }
62 std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr                    v) { return s << tcu::toHex(v.internal); }
63 std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr                    v) { return s << tcu::toHex(v.internal); }
64 std::ostream& operator<< (std::ostream& s, MirConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
65 std::ostream& operator<< (std::ostream& s, MirSurfacePtr                                v) { return s << tcu::toHex(v.internal); }
66 std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr               v) { return s << tcu::toHex(v.internal); }
67 std::ostream& operator<< (std::ostream& s, Win32InstanceHandle                  v) { return s << tcu::toHex(v.internal); }
68 std::ostream& operator<< (std::ostream& s, Win32WindowHandle                    v) { return s << tcu::toHex(v.internal); }
69 std::ostream& operator<< (std::ostream& s, Win32Handle                                  v) { return s << tcu::toHex(v.internal); }
70 std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr   v) { return s << tcu::toHex(v.internal); }
71 std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr             v) { return s << tcu::toHex(v.internal); }
72 std::ostream& operator<< (std::ostream& s, Win32MonitorHandle                   v) { return s << tcu::toHex(v.internal); }
73 std::ostream& operator<< (std::ostream& s, Win32LPCWSTR                                 v) { return s << tcu::toHex(v.internal); }
74 std::ostream& operator<< (std::ostream& s, RROutput                                             v) { return s << tcu::toHex(v.internal); }
75 std::ostream& operator<< (std::ostream& s, zx_handle_t                                  v) { return s << tcu::toHex(v.internal); }
76 std::ostream& operator<< (std::ostream& s, GgpFrameToken                                v) { return s << tcu::toHex(v.internal); }
77 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                  v) { return s << tcu::toHex(v.internal); }
78 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                 v) { return s << tcu::toHex(v.internal); }
79 std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr                  v) { return s << tcu::toHex(v.internal); }
80 std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr                   v) { return s << tcu::toHex(v.internal); }
81 std::ostream& operator<< (std::ostream& s, MTLDevice_id                                 v) { return s << tcu::toHex(v.internal); }
82 std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id                   v) { return s << tcu::toHex(v.internal); }
83 std::ostream& operator<< (std::ostream& s, MTLBuffer_id                                 v) { return s << tcu::toHex(v.internal); }
84 std::ostream& operator<< (std::ostream& s, MTLTexture_id                                v) { return s << tcu::toHex(v.internal); }
85 std::ostream& operator<< (std::ostream& s, IOSurfaceRef                                 v) { return s << tcu::toHex(v.internal); }
86 std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id                    v) { return s << tcu::toHex(v.internal); }
87 }
88
89 const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
90 {
91         switch (value)
92         {
93                 case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
94                 case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
95                 case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
96                 case VK_ATTACHMENT_LOAD_OP_NONE_EXT:    return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
97                 default:                                                                return DE_NULL;
98         }
99 }
100
101 const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
102 {
103         switch (value)
104         {
105                 case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
106                 case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
107                 case VK_ATTACHMENT_STORE_OP_NONE:               return "VK_ATTACHMENT_STORE_OP_NONE";
108                 default:                                                                return DE_NULL;
109         }
110 }
111
112 const char* getBlendFactorName (VkBlendFactor value)
113 {
114         switch (value)
115         {
116                 case VK_BLEND_FACTOR_ZERO:                                              return "VK_BLEND_FACTOR_ZERO";
117                 case VK_BLEND_FACTOR_ONE:                                               return "VK_BLEND_FACTOR_ONE";
118                 case VK_BLEND_FACTOR_SRC_COLOR:                                 return "VK_BLEND_FACTOR_SRC_COLOR";
119                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
120                 case VK_BLEND_FACTOR_DST_COLOR:                                 return "VK_BLEND_FACTOR_DST_COLOR";
121                 case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
122                 case VK_BLEND_FACTOR_SRC_ALPHA:                                 return "VK_BLEND_FACTOR_SRC_ALPHA";
123                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
124                 case VK_BLEND_FACTOR_DST_ALPHA:                                 return "VK_BLEND_FACTOR_DST_ALPHA";
125                 case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
126                 case VK_BLEND_FACTOR_CONSTANT_COLOR:                    return "VK_BLEND_FACTOR_CONSTANT_COLOR";
127                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
128                 case VK_BLEND_FACTOR_CONSTANT_ALPHA:                    return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
129                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
130                 case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:                return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
131                 case VK_BLEND_FACTOR_SRC1_COLOR:                                return "VK_BLEND_FACTOR_SRC1_COLOR";
132                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
133                 case VK_BLEND_FACTOR_SRC1_ALPHA:                                return "VK_BLEND_FACTOR_SRC1_ALPHA";
134                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
135                 default:                                                                                return DE_NULL;
136         }
137 }
138
139 const char* getBlendOpName (VkBlendOp value)
140 {
141         switch (value)
142         {
143                 case VK_BLEND_OP_ADD:                                           return "VK_BLEND_OP_ADD";
144                 case VK_BLEND_OP_SUBTRACT:                                      return "VK_BLEND_OP_SUBTRACT";
145                 case VK_BLEND_OP_REVERSE_SUBTRACT:                      return "VK_BLEND_OP_REVERSE_SUBTRACT";
146                 case VK_BLEND_OP_MIN:                                           return "VK_BLEND_OP_MIN";
147                 case VK_BLEND_OP_MAX:                                           return "VK_BLEND_OP_MAX";
148                 case VK_BLEND_OP_ZERO_EXT:                                      return "VK_BLEND_OP_ZERO_EXT";
149                 case VK_BLEND_OP_SRC_EXT:                                       return "VK_BLEND_OP_SRC_EXT";
150                 case VK_BLEND_OP_DST_EXT:                                       return "VK_BLEND_OP_DST_EXT";
151                 case VK_BLEND_OP_SRC_OVER_EXT:                          return "VK_BLEND_OP_SRC_OVER_EXT";
152                 case VK_BLEND_OP_DST_OVER_EXT:                          return "VK_BLEND_OP_DST_OVER_EXT";
153                 case VK_BLEND_OP_SRC_IN_EXT:                            return "VK_BLEND_OP_SRC_IN_EXT";
154                 case VK_BLEND_OP_DST_IN_EXT:                            return "VK_BLEND_OP_DST_IN_EXT";
155                 case VK_BLEND_OP_SRC_OUT_EXT:                           return "VK_BLEND_OP_SRC_OUT_EXT";
156                 case VK_BLEND_OP_DST_OUT_EXT:                           return "VK_BLEND_OP_DST_OUT_EXT";
157                 case VK_BLEND_OP_SRC_ATOP_EXT:                          return "VK_BLEND_OP_SRC_ATOP_EXT";
158                 case VK_BLEND_OP_DST_ATOP_EXT:                          return "VK_BLEND_OP_DST_ATOP_EXT";
159                 case VK_BLEND_OP_XOR_EXT:                                       return "VK_BLEND_OP_XOR_EXT";
160                 case VK_BLEND_OP_MULTIPLY_EXT:                          return "VK_BLEND_OP_MULTIPLY_EXT";
161                 case VK_BLEND_OP_SCREEN_EXT:                            return "VK_BLEND_OP_SCREEN_EXT";
162                 case VK_BLEND_OP_OVERLAY_EXT:                           return "VK_BLEND_OP_OVERLAY_EXT";
163                 case VK_BLEND_OP_DARKEN_EXT:                            return "VK_BLEND_OP_DARKEN_EXT";
164                 case VK_BLEND_OP_LIGHTEN_EXT:                           return "VK_BLEND_OP_LIGHTEN_EXT";
165                 case VK_BLEND_OP_COLORDODGE_EXT:                        return "VK_BLEND_OP_COLORDODGE_EXT";
166                 case VK_BLEND_OP_COLORBURN_EXT:                         return "VK_BLEND_OP_COLORBURN_EXT";
167                 case VK_BLEND_OP_HARDLIGHT_EXT:                         return "VK_BLEND_OP_HARDLIGHT_EXT";
168                 case VK_BLEND_OP_SOFTLIGHT_EXT:                         return "VK_BLEND_OP_SOFTLIGHT_EXT";
169                 case VK_BLEND_OP_DIFFERENCE_EXT:                        return "VK_BLEND_OP_DIFFERENCE_EXT";
170                 case VK_BLEND_OP_EXCLUSION_EXT:                         return "VK_BLEND_OP_EXCLUSION_EXT";
171                 case VK_BLEND_OP_INVERT_EXT:                            return "VK_BLEND_OP_INVERT_EXT";
172                 case VK_BLEND_OP_INVERT_RGB_EXT:                        return "VK_BLEND_OP_INVERT_RGB_EXT";
173                 case VK_BLEND_OP_LINEARDODGE_EXT:                       return "VK_BLEND_OP_LINEARDODGE_EXT";
174                 case VK_BLEND_OP_LINEARBURN_EXT:                        return "VK_BLEND_OP_LINEARBURN_EXT";
175                 case VK_BLEND_OP_VIVIDLIGHT_EXT:                        return "VK_BLEND_OP_VIVIDLIGHT_EXT";
176                 case VK_BLEND_OP_LINEARLIGHT_EXT:                       return "VK_BLEND_OP_LINEARLIGHT_EXT";
177                 case VK_BLEND_OP_PINLIGHT_EXT:                          return "VK_BLEND_OP_PINLIGHT_EXT";
178                 case VK_BLEND_OP_HARDMIX_EXT:                           return "VK_BLEND_OP_HARDMIX_EXT";
179                 case VK_BLEND_OP_HSL_HUE_EXT:                           return "VK_BLEND_OP_HSL_HUE_EXT";
180                 case VK_BLEND_OP_HSL_SATURATION_EXT:            return "VK_BLEND_OP_HSL_SATURATION_EXT";
181                 case VK_BLEND_OP_HSL_COLOR_EXT:                         return "VK_BLEND_OP_HSL_COLOR_EXT";
182                 case VK_BLEND_OP_HSL_LUMINOSITY_EXT:            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
183                 case VK_BLEND_OP_PLUS_EXT:                                      return "VK_BLEND_OP_PLUS_EXT";
184                 case VK_BLEND_OP_PLUS_CLAMPED_EXT:                      return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
185                 case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:        return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
186                 case VK_BLEND_OP_PLUS_DARKER_EXT:                       return "VK_BLEND_OP_PLUS_DARKER_EXT";
187                 case VK_BLEND_OP_MINUS_EXT:                                     return "VK_BLEND_OP_MINUS_EXT";
188                 case VK_BLEND_OP_MINUS_CLAMPED_EXT:                     return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
189                 case VK_BLEND_OP_CONTRAST_EXT:                          return "VK_BLEND_OP_CONTRAST_EXT";
190                 case VK_BLEND_OP_INVERT_OVG_EXT:                        return "VK_BLEND_OP_INVERT_OVG_EXT";
191                 case VK_BLEND_OP_RED_EXT:                                       return "VK_BLEND_OP_RED_EXT";
192                 case VK_BLEND_OP_GREEN_EXT:                                     return "VK_BLEND_OP_GREEN_EXT";
193                 case VK_BLEND_OP_BLUE_EXT:                                      return "VK_BLEND_OP_BLUE_EXT";
194                 default:                                                                        return DE_NULL;
195         }
196 }
197
198 const char* getBorderColorName (VkBorderColor value)
199 {
200         switch (value)
201         {
202                 case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
203                 case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
204                 case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
205                 case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
206                 case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
207                 case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
208                 case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
209                 case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
210                 default:                                                                                return DE_NULL;
211         }
212 }
213
214 tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
215 {
216         static const tcu::Format::BitDesc s_desc[] =
217         {
218                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,       "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
219         };
220         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
221 }
222
223 tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
224 {
225         static const tcu::Format::BitDesc s_desc[] =
226         {
227                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
228         };
229         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
230 }
231
232 tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
233 {
234         static const tcu::Format::BitDesc s_desc[] =
235         {
236                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
237                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
238                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,                           "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
239                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,                                       "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
240         };
241         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
242 }
243
244 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
245 {
246         switch (value)
247         {
248                 case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:      return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
249                 default:                                                                        return DE_NULL;
250         }
251 }
252
253 tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
254 {
255         static const tcu::Format::BitDesc s_desc[] =
256         {
257                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,      "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
258         };
259         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
260 }
261
262 tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
263 {
264         static const tcu::Format::BitDesc s_desc[] =
265         {
266                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,   "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
267                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,                "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
268         };
269         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
270 }
271
272 tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
273 {
274         static const tcu::Format::BitDesc s_desc[] =
275         {
276                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,           "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
277                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,        "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
278                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,            "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT"),
279         };
280         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
281 }
282
283 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
284 {
285         static const tcu::Format::BitDesc s_desc[] =
286         {
287                 tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,  "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
288         };
289         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
290 }
291
292 tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
293 {
294         static const tcu::Format::BitDesc s_desc[] =
295         {
296                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,      "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
297         };
298         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
299 }
300
301 tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
302 {
303         static const tcu::Format::BitDesc s_desc[] =
304         {
305                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                       "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
306                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                     "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
307                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                       "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
308                 tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                            "VK_BUFFER_CREATE_PROTECTED_BIT"),
309                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,        "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
310         };
311         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
312 }
313
314 tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
315 {
316         static const tcu::Format::BitDesc s_desc[] =
317         {
318                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
319                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
320                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
321                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
322                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
323                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
324                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
325                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
326                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
327                 tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
328                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
329                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
330                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
331                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
332                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
333                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
334                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
335                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
336                 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"),
337                 tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
338                 tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,                            "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"),
339                 tcu::Format::BitDesc(VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT,                                                          "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"),
340         };
341         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
342 }
343
344 tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
345 {
346         static const tcu::Format::BitDesc s_desc[] =
347         {
348                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,  "VK_COLOR_COMPONENT_R_BIT"),
349                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,  "VK_COLOR_COMPONENT_G_BIT"),
350                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,  "VK_COLOR_COMPONENT_B_BIT"),
351                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,  "VK_COLOR_COMPONENT_A_BIT"),
352         };
353         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
354 }
355
356 const char* getComponentSwizzleName (VkComponentSwizzle value)
357 {
358         switch (value)
359         {
360                 case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
361                 case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
362                 case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
363                 case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
364                 case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
365                 case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
366                 case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
367                 default:                                                        return DE_NULL;
368         }
369 }
370
371 tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
372 {
373         static const tcu::Format::BitDesc s_desc[] =
374         {
375                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
376                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
377                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
378         };
379         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
380 }
381
382 tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
383 {
384         static const tcu::Format::BitDesc s_desc[] =
385         {
386                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
387         };
388         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
389 }
390
391 tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
392 {
393         static const tcu::Format::BitDesc s_desc[] =
394         {
395                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
396         };
397         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
398 }
399
400 const char* getCommandBufferLevelName (VkCommandBufferLevel value)
401 {
402         switch (value)
403         {
404                 case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
405                 case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
406                 default:                                                                return DE_NULL;
407         }
408 }
409
410 tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
411 {
412         static const tcu::Format::BitDesc s_desc[] =
413         {
414                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
415                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
416                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
417         };
418         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
419 }
420
421 const char* getCompareOpName (VkCompareOp value)
422 {
423         switch (value)
424         {
425                 case VK_COMPARE_OP_NEVER:                               return "VK_COMPARE_OP_NEVER";
426                 case VK_COMPARE_OP_LESS:                                return "VK_COMPARE_OP_LESS";
427                 case VK_COMPARE_OP_EQUAL:                               return "VK_COMPARE_OP_EQUAL";
428                 case VK_COMPARE_OP_LESS_OR_EQUAL:               return "VK_COMPARE_OP_LESS_OR_EQUAL";
429                 case VK_COMPARE_OP_GREATER:                             return "VK_COMPARE_OP_GREATER";
430                 case VK_COMPARE_OP_NOT_EQUAL:                   return "VK_COMPARE_OP_NOT_EQUAL";
431                 case VK_COMPARE_OP_GREATER_OR_EQUAL:    return "VK_COMPARE_OP_GREATER_OR_EQUAL";
432                 case VK_COMPARE_OP_ALWAYS:                              return "VK_COMPARE_OP_ALWAYS";
433                 default:                                                                return DE_NULL;
434         }
435 }
436
437 tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
438 {
439         static const tcu::Format::BitDesc s_desc[] =
440         {
441                 tcu::Format::BitDesc(VK_CULL_MODE_NONE,                         "VK_CULL_MODE_NONE"),
442                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,            "VK_CULL_MODE_FRONT_BIT"),
443                 tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                     "VK_CULL_MODE_BACK_BIT"),
444                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,       "VK_CULL_MODE_FRONT_AND_BACK"),
445         };
446         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
447 }
448
449 const char* getDescriptorTypeName (VkDescriptorType value)
450 {
451         switch (value)
452         {
453                 case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
454                 case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
455                 case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
456                 case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
457                 case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
458                 case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
459                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
460                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
461                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
462                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
463                 case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
464                 case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:           return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
465                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
466                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
467                 case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:                            return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT";
468                 case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:       return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
469                 case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:         return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
470                 default:                                                                                        return DE_NULL;
471         }
472 }
473
474 const char* getDynamicStateName (VkDynamicState value)
475 {
476         switch (value)
477         {
478                 case VK_DYNAMIC_STATE_VIEWPORT:                                                                 return "VK_DYNAMIC_STATE_VIEWPORT";
479                 case VK_DYNAMIC_STATE_SCISSOR:                                                                  return "VK_DYNAMIC_STATE_SCISSOR";
480                 case VK_DYNAMIC_STATE_LINE_WIDTH:                                                               return "VK_DYNAMIC_STATE_LINE_WIDTH";
481                 case VK_DYNAMIC_STATE_DEPTH_BIAS:                                                               return "VK_DYNAMIC_STATE_DEPTH_BIAS";
482                 case VK_DYNAMIC_STATE_BLEND_CONSTANTS:                                                  return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
483                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                                                             return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
484                 case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:                                             return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
485                 case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:                                               return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
486                 case VK_DYNAMIC_STATE_STENCIL_REFERENCE:                                                return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
487                 case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:                                    return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
488                 case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:                                    return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
489                 case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:                                             return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
490                 case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:                 return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
491                 case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:                  return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
492                 case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                             return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
493                 case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                                return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
494                 case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                                 return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
495                 case VK_DYNAMIC_STATE_CULL_MODE:                                                                return "VK_DYNAMIC_STATE_CULL_MODE";
496                 case VK_DYNAMIC_STATE_FRONT_FACE:                                                               return "VK_DYNAMIC_STATE_FRONT_FACE";
497                 case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:                                               return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
498                 case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:                                              return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
499                 case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:                                               return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
500                 case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:                              return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
501                 case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:                                                return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
502                 case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:                                               return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
503                 case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:                                                 return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
504                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:                                 return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
505                 case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:                                              return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
506                 case VK_DYNAMIC_STATE_STENCIL_OP:                                                               return "VK_DYNAMIC_STATE_STENCIL_OP";
507                 case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:              return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
508                 case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:                                                 return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
509                 case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:                                 return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
510                 case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:                                return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
511                 case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:                                                return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
512                 case VK_DYNAMIC_STATE_LOGIC_OP_EXT:                                                             return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
513                 case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:                                 return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
514                 case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:                                   return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
515                 case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:                   return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT";
516                 case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:                                   return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT";
517                 case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:                                                 return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT";
518                 case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:                                return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT";
519                 case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:                                                  return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT";
520                 case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:                             return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
521                 case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:                                  return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
522                 case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:                                              return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT";
523                 case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:                                   return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT";
524                 case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:                                 return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT";
525                 case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:                                             return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT";
526                 case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:                                 return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT";
527                 case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:              return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT";
528                 case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:  return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT";
529                 case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:                                    return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT";
530                 case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:                              return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT";
531                 case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:                                 return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT";
532                 case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:                                return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT";
533                 case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:                              return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT";
534                 case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:                                  return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT";
535                 case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:               return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT";
536                 case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:                             return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV";
537                 case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:                                              return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV";
538                 case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:                              return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV";
539                 case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:                    return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV";
540                 case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:                              return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV";
541                 case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:              return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV";
542                 case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:                             return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV";
543                 case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:                             return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV";
544                 case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:   return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV";
545                 case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:                               return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV";
546                 default:                                                                                                                return DE_NULL;
547         }
548 }
549
550 tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
551 {
552         static const tcu::Format::BitDesc s_desc[] =
553         {
554                 tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,      "VK_FENCE_CREATE_SIGNALED_BIT"),
555         };
556         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
557 }
558
559 const char* getPolygonModeName (VkPolygonMode value)
560 {
561         switch (value)
562         {
563                 case VK_POLYGON_MODE_FILL:                              return "VK_POLYGON_MODE_FILL";
564                 case VK_POLYGON_MODE_LINE:                              return "VK_POLYGON_MODE_LINE";
565                 case VK_POLYGON_MODE_POINT:                             return "VK_POLYGON_MODE_POINT";
566                 case VK_POLYGON_MODE_FILL_RECTANGLE_NV: return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
567                 default:                                                                return DE_NULL;
568         }
569 }
570
571 const char* getFormatName (VkFormat value)
572 {
573         switch (value)
574         {
575                 case VK_FORMAT_UNDEFINED:                                                                       return "VK_FORMAT_UNDEFINED";
576                 case VK_FORMAT_R4G4_UNORM_PACK8:                                                        return "VK_FORMAT_R4G4_UNORM_PACK8";
577                 case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                           return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
578                 case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                           return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
579                 case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                     return "VK_FORMAT_R5G6B5_UNORM_PACK16";
580                 case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                     return "VK_FORMAT_B5G6R5_UNORM_PACK16";
581                 case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                           return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
582                 case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                           return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
583                 case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                           return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
584                 case VK_FORMAT_R8_UNORM:                                                                        return "VK_FORMAT_R8_UNORM";
585                 case VK_FORMAT_R8_SNORM:                                                                        return "VK_FORMAT_R8_SNORM";
586                 case VK_FORMAT_R8_USCALED:                                                                      return "VK_FORMAT_R8_USCALED";
587                 case VK_FORMAT_R8_SSCALED:                                                                      return "VK_FORMAT_R8_SSCALED";
588                 case VK_FORMAT_R8_UINT:                                                                         return "VK_FORMAT_R8_UINT";
589                 case VK_FORMAT_R8_SINT:                                                                         return "VK_FORMAT_R8_SINT";
590                 case VK_FORMAT_R8_SRGB:                                                                         return "VK_FORMAT_R8_SRGB";
591                 case VK_FORMAT_R8G8_UNORM:                                                                      return "VK_FORMAT_R8G8_UNORM";
592                 case VK_FORMAT_R8G8_SNORM:                                                                      return "VK_FORMAT_R8G8_SNORM";
593                 case VK_FORMAT_R8G8_USCALED:                                                            return "VK_FORMAT_R8G8_USCALED";
594                 case VK_FORMAT_R8G8_SSCALED:                                                            return "VK_FORMAT_R8G8_SSCALED";
595                 case VK_FORMAT_R8G8_UINT:                                                                       return "VK_FORMAT_R8G8_UINT";
596                 case VK_FORMAT_R8G8_SINT:                                                                       return "VK_FORMAT_R8G8_SINT";
597                 case VK_FORMAT_R8G8_SRGB:                                                                       return "VK_FORMAT_R8G8_SRGB";
598                 case VK_FORMAT_R8G8B8_UNORM:                                                            return "VK_FORMAT_R8G8B8_UNORM";
599                 case VK_FORMAT_R8G8B8_SNORM:                                                            return "VK_FORMAT_R8G8B8_SNORM";
600                 case VK_FORMAT_R8G8B8_USCALED:                                                          return "VK_FORMAT_R8G8B8_USCALED";
601                 case VK_FORMAT_R8G8B8_SSCALED:                                                          return "VK_FORMAT_R8G8B8_SSCALED";
602                 case VK_FORMAT_R8G8B8_UINT:                                                                     return "VK_FORMAT_R8G8B8_UINT";
603                 case VK_FORMAT_R8G8B8_SINT:                                                                     return "VK_FORMAT_R8G8B8_SINT";
604                 case VK_FORMAT_R8G8B8_SRGB:                                                                     return "VK_FORMAT_R8G8B8_SRGB";
605                 case VK_FORMAT_B8G8R8_UNORM:                                                            return "VK_FORMAT_B8G8R8_UNORM";
606                 case VK_FORMAT_B8G8R8_SNORM:                                                            return "VK_FORMAT_B8G8R8_SNORM";
607                 case VK_FORMAT_B8G8R8_USCALED:                                                          return "VK_FORMAT_B8G8R8_USCALED";
608                 case VK_FORMAT_B8G8R8_SSCALED:                                                          return "VK_FORMAT_B8G8R8_SSCALED";
609                 case VK_FORMAT_B8G8R8_UINT:                                                                     return "VK_FORMAT_B8G8R8_UINT";
610                 case VK_FORMAT_B8G8R8_SINT:                                                                     return "VK_FORMAT_B8G8R8_SINT";
611                 case VK_FORMAT_B8G8R8_SRGB:                                                                     return "VK_FORMAT_B8G8R8_SRGB";
612                 case VK_FORMAT_R8G8B8A8_UNORM:                                                          return "VK_FORMAT_R8G8B8A8_UNORM";
613                 case VK_FORMAT_R8G8B8A8_SNORM:                                                          return "VK_FORMAT_R8G8B8A8_SNORM";
614                 case VK_FORMAT_R8G8B8A8_USCALED:                                                        return "VK_FORMAT_R8G8B8A8_USCALED";
615                 case VK_FORMAT_R8G8B8A8_SSCALED:                                                        return "VK_FORMAT_R8G8B8A8_SSCALED";
616                 case VK_FORMAT_R8G8B8A8_UINT:                                                           return "VK_FORMAT_R8G8B8A8_UINT";
617                 case VK_FORMAT_R8G8B8A8_SINT:                                                           return "VK_FORMAT_R8G8B8A8_SINT";
618                 case VK_FORMAT_R8G8B8A8_SRGB:                                                           return "VK_FORMAT_R8G8B8A8_SRGB";
619                 case VK_FORMAT_B8G8R8A8_UNORM:                                                          return "VK_FORMAT_B8G8R8A8_UNORM";
620                 case VK_FORMAT_B8G8R8A8_SNORM:                                                          return "VK_FORMAT_B8G8R8A8_SNORM";
621                 case VK_FORMAT_B8G8R8A8_USCALED:                                                        return "VK_FORMAT_B8G8R8A8_USCALED";
622                 case VK_FORMAT_B8G8R8A8_SSCALED:                                                        return "VK_FORMAT_B8G8R8A8_SSCALED";
623                 case VK_FORMAT_B8G8R8A8_UINT:                                                           return "VK_FORMAT_B8G8R8A8_UINT";
624                 case VK_FORMAT_B8G8R8A8_SINT:                                                           return "VK_FORMAT_B8G8R8A8_SINT";
625                 case VK_FORMAT_B8G8R8A8_SRGB:                                                           return "VK_FORMAT_B8G8R8A8_SRGB";
626                 case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
627                 case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
628                 case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
629                 case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
630                 case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
631                 case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
632                 case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
633                 case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
634                 case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
635                 case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
636                 case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
637                 case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
638                 case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
639                 case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
640                 case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
641                 case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
642                 case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
643                 case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
644                 case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
645                 case VK_FORMAT_R16_UNORM:                                                                       return "VK_FORMAT_R16_UNORM";
646                 case VK_FORMAT_R16_SNORM:                                                                       return "VK_FORMAT_R16_SNORM";
647                 case VK_FORMAT_R16_USCALED:                                                                     return "VK_FORMAT_R16_USCALED";
648                 case VK_FORMAT_R16_SSCALED:                                                                     return "VK_FORMAT_R16_SSCALED";
649                 case VK_FORMAT_R16_UINT:                                                                        return "VK_FORMAT_R16_UINT";
650                 case VK_FORMAT_R16_SINT:                                                                        return "VK_FORMAT_R16_SINT";
651                 case VK_FORMAT_R16_SFLOAT:                                                                      return "VK_FORMAT_R16_SFLOAT";
652                 case VK_FORMAT_R16G16_UNORM:                                                            return "VK_FORMAT_R16G16_UNORM";
653                 case VK_FORMAT_R16G16_SNORM:                                                            return "VK_FORMAT_R16G16_SNORM";
654                 case VK_FORMAT_R16G16_USCALED:                                                          return "VK_FORMAT_R16G16_USCALED";
655                 case VK_FORMAT_R16G16_SSCALED:                                                          return "VK_FORMAT_R16G16_SSCALED";
656                 case VK_FORMAT_R16G16_UINT:                                                                     return "VK_FORMAT_R16G16_UINT";
657                 case VK_FORMAT_R16G16_SINT:                                                                     return "VK_FORMAT_R16G16_SINT";
658                 case VK_FORMAT_R16G16_SFLOAT:                                                           return "VK_FORMAT_R16G16_SFLOAT";
659                 case VK_FORMAT_R16G16B16_UNORM:                                                         return "VK_FORMAT_R16G16B16_UNORM";
660                 case VK_FORMAT_R16G16B16_SNORM:                                                         return "VK_FORMAT_R16G16B16_SNORM";
661                 case VK_FORMAT_R16G16B16_USCALED:                                                       return "VK_FORMAT_R16G16B16_USCALED";
662                 case VK_FORMAT_R16G16B16_SSCALED:                                                       return "VK_FORMAT_R16G16B16_SSCALED";
663                 case VK_FORMAT_R16G16B16_UINT:                                                          return "VK_FORMAT_R16G16B16_UINT";
664                 case VK_FORMAT_R16G16B16_SINT:                                                          return "VK_FORMAT_R16G16B16_SINT";
665                 case VK_FORMAT_R16G16B16_SFLOAT:                                                        return "VK_FORMAT_R16G16B16_SFLOAT";
666                 case VK_FORMAT_R16G16B16A16_UNORM:                                                      return "VK_FORMAT_R16G16B16A16_UNORM";
667                 case VK_FORMAT_R16G16B16A16_SNORM:                                                      return "VK_FORMAT_R16G16B16A16_SNORM";
668                 case VK_FORMAT_R16G16B16A16_USCALED:                                            return "VK_FORMAT_R16G16B16A16_USCALED";
669                 case VK_FORMAT_R16G16B16A16_SSCALED:                                            return "VK_FORMAT_R16G16B16A16_SSCALED";
670                 case VK_FORMAT_R16G16B16A16_UINT:                                                       return "VK_FORMAT_R16G16B16A16_UINT";
671                 case VK_FORMAT_R16G16B16A16_SINT:                                                       return "VK_FORMAT_R16G16B16A16_SINT";
672                 case VK_FORMAT_R16G16B16A16_SFLOAT:                                                     return "VK_FORMAT_R16G16B16A16_SFLOAT";
673                 case VK_FORMAT_R32_UINT:                                                                        return "VK_FORMAT_R32_UINT";
674                 case VK_FORMAT_R32_SINT:                                                                        return "VK_FORMAT_R32_SINT";
675                 case VK_FORMAT_R32_SFLOAT:                                                                      return "VK_FORMAT_R32_SFLOAT";
676                 case VK_FORMAT_R32G32_UINT:                                                                     return "VK_FORMAT_R32G32_UINT";
677                 case VK_FORMAT_R32G32_SINT:                                                                     return "VK_FORMAT_R32G32_SINT";
678                 case VK_FORMAT_R32G32_SFLOAT:                                                           return "VK_FORMAT_R32G32_SFLOAT";
679                 case VK_FORMAT_R32G32B32_UINT:                                                          return "VK_FORMAT_R32G32B32_UINT";
680                 case VK_FORMAT_R32G32B32_SINT:                                                          return "VK_FORMAT_R32G32B32_SINT";
681                 case VK_FORMAT_R32G32B32_SFLOAT:                                                        return "VK_FORMAT_R32G32B32_SFLOAT";
682                 case VK_FORMAT_R32G32B32A32_UINT:                                                       return "VK_FORMAT_R32G32B32A32_UINT";
683                 case VK_FORMAT_R32G32B32A32_SINT:                                                       return "VK_FORMAT_R32G32B32A32_SINT";
684                 case VK_FORMAT_R32G32B32A32_SFLOAT:                                                     return "VK_FORMAT_R32G32B32A32_SFLOAT";
685                 case VK_FORMAT_R64_UINT:                                                                        return "VK_FORMAT_R64_UINT";
686                 case VK_FORMAT_R64_SINT:                                                                        return "VK_FORMAT_R64_SINT";
687                 case VK_FORMAT_R64_SFLOAT:                                                                      return "VK_FORMAT_R64_SFLOAT";
688                 case VK_FORMAT_R64G64_UINT:                                                                     return "VK_FORMAT_R64G64_UINT";
689                 case VK_FORMAT_R64G64_SINT:                                                                     return "VK_FORMAT_R64G64_SINT";
690                 case VK_FORMAT_R64G64_SFLOAT:                                                           return "VK_FORMAT_R64G64_SFLOAT";
691                 case VK_FORMAT_R64G64B64_UINT:                                                          return "VK_FORMAT_R64G64B64_UINT";
692                 case VK_FORMAT_R64G64B64_SINT:                                                          return "VK_FORMAT_R64G64B64_SINT";
693                 case VK_FORMAT_R64G64B64_SFLOAT:                                                        return "VK_FORMAT_R64G64B64_SFLOAT";
694                 case VK_FORMAT_R64G64B64A64_UINT:                                                       return "VK_FORMAT_R64G64B64A64_UINT";
695                 case VK_FORMAT_R64G64B64A64_SINT:                                                       return "VK_FORMAT_R64G64B64A64_SINT";
696                 case VK_FORMAT_R64G64B64A64_SFLOAT:                                                     return "VK_FORMAT_R64G64B64A64_SFLOAT";
697                 case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                         return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
698                 case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                          return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
699                 case VK_FORMAT_D16_UNORM:                                                                       return "VK_FORMAT_D16_UNORM";
700                 case VK_FORMAT_X8_D24_UNORM_PACK32:                                                     return "VK_FORMAT_X8_D24_UNORM_PACK32";
701                 case VK_FORMAT_D32_SFLOAT:                                                                      return "VK_FORMAT_D32_SFLOAT";
702                 case VK_FORMAT_S8_UINT:                                                                         return "VK_FORMAT_S8_UINT";
703                 case VK_FORMAT_D16_UNORM_S8_UINT:                                                       return "VK_FORMAT_D16_UNORM_S8_UINT";
704                 case VK_FORMAT_D24_UNORM_S8_UINT:                                                       return "VK_FORMAT_D24_UNORM_S8_UINT";
705                 case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                      return "VK_FORMAT_D32_SFLOAT_S8_UINT";
706                 case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                     return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
707                 case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                      return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
708                 case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
709                 case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                     return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
710                 case VK_FORMAT_BC2_UNORM_BLOCK:                                                         return "VK_FORMAT_BC2_UNORM_BLOCK";
711                 case VK_FORMAT_BC2_SRGB_BLOCK:                                                          return "VK_FORMAT_BC2_SRGB_BLOCK";
712                 case VK_FORMAT_BC3_UNORM_BLOCK:                                                         return "VK_FORMAT_BC3_UNORM_BLOCK";
713                 case VK_FORMAT_BC3_SRGB_BLOCK:                                                          return "VK_FORMAT_BC3_SRGB_BLOCK";
714                 case VK_FORMAT_BC4_UNORM_BLOCK:                                                         return "VK_FORMAT_BC4_UNORM_BLOCK";
715                 case VK_FORMAT_BC4_SNORM_BLOCK:                                                         return "VK_FORMAT_BC4_SNORM_BLOCK";
716                 case VK_FORMAT_BC5_UNORM_BLOCK:                                                         return "VK_FORMAT_BC5_UNORM_BLOCK";
717                 case VK_FORMAT_BC5_SNORM_BLOCK:                                                         return "VK_FORMAT_BC5_SNORM_BLOCK";
718                 case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
719                 case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
720                 case VK_FORMAT_BC7_UNORM_BLOCK:                                                         return "VK_FORMAT_BC7_UNORM_BLOCK";
721                 case VK_FORMAT_BC7_SRGB_BLOCK:                                                          return "VK_FORMAT_BC7_SRGB_BLOCK";
722                 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                         return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
723                 case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                          return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
724                 case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
725                 case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
726                 case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
727                 case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
728                 case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
729                 case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
730                 case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
731                 case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
732                 case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
733                 case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
734                 case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
735                 case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
736                 case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
737                 case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
738                 case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
739                 case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
740                 case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
741                 case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
742                 case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
743                 case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
744                 case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
745                 case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
746                 case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
747                 case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
748                 case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
749                 case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
750                 case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
751                 case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
752                 case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
753                 case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
754                 case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
755                 case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
756                 case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
757                 case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
758                 case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
759                 case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
760                 case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
761                 case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
762                 case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
763                 case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
764                 case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
765                 case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
766                 case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
767                 case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
768                 case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
769                 case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
770                 case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
771                 case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
772                 case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
773                 case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
774                 case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
775                 case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
776                 case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
777                 case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
778                 case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
779                 case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
780                 case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
781                 case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
782                 case VK_FORMAT_G8B8G8R8_422_UNORM:                                                      return "VK_FORMAT_G8B8G8R8_422_UNORM";
783                 case VK_FORMAT_B8G8R8G8_422_UNORM:                                                      return "VK_FORMAT_B8G8R8G8_422_UNORM";
784                 case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
785                 case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
786                 case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
787                 case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
788                 case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
789                 case VK_FORMAT_R10X6_UNORM_PACK16:                                                      return "VK_FORMAT_R10X6_UNORM_PACK16";
790                 case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                        return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
791                 case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                      return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
792                 case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:          return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
793                 case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:          return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
794                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
795                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
796                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
797                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
798                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
799                 case VK_FORMAT_R12X4_UNORM_PACK16:                                                      return "VK_FORMAT_R12X4_UNORM_PACK16";
800                 case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                        return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
801                 case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                      return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
802                 case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:          return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
803                 case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:          return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
804                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
805                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
806                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
807                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
808                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
809                 case VK_FORMAT_G16B16G16R16_422_UNORM:                                          return "VK_FORMAT_G16B16G16R16_422_UNORM";
810                 case VK_FORMAT_B16G16R16G16_422_UNORM:                                          return "VK_FORMAT_B16G16R16G16_422_UNORM";
811                 case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
812                 case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
813                 case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
814                 case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
815                 case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
816                 case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
817                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
818                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
819                 case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
820                 case VK_FORMAT_A4R4G4B4_UNORM_PACK16:                                           return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
821                 case VK_FORMAT_A4B4G4R4_UNORM_PACK16:                                           return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
822                 case VK_FORMAT_R16G16_S10_5_NV:                                                         return "VK_FORMAT_R16G16_S10_5_NV";
823                 default:                                                                                                        return DE_NULL;
824         }
825 }
826
827 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
828 {
829         static const tcu::Format::BitDesc s_desc[] =
830         {
831                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
832                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
833                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
834                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
835                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
836                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                         "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
837                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                       "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
838                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                            "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
839                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                      "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
840                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                            "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
841                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                                                                                                            "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
842                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                                                                                                            "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
843                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                         "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
844                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,                                                                                      "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
845                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
846                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
847                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                         "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
848                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                     "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
849                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                        "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
850                 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"),
851                 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"),
852                 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"),
853                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                            "VK_FORMAT_FEATURE_DISJOINT_BIT"),
854                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                      "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
855                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                            "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
856                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                     "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
857                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
858                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                      "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
859                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
860                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                            "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
861                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                        "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
862         };
863         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
864 }
865
866 const char* getFrontFaceName (VkFrontFace value)
867 {
868         switch (value)
869         {
870                 case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
871                 case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
872                 default:                                                                return DE_NULL;
873         }
874 }
875
876 tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
877 {
878         static const tcu::Format::BitDesc s_desc[] =
879         {
880                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
881                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,                                              "VK_IMAGE_ASPECT_NONE"),
882                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
883                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
884                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
885                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
886                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
887                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
888                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
889                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
890                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
891                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
892         };
893         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
894 }
895
896 tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
897 {
898         static const tcu::Format::BitDesc s_desc[] =
899         {
900                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                                        "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
901                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                                      "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
902                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                                        "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
903                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                                        "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
904                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                                       "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
905                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,                                           "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
906                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                           "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
907                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                           "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
908                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                        "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
909                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                                      "VK_IMAGE_CREATE_DISJOINT_BIT"),
910                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,                                                                         "VK_IMAGE_CREATE_ALIAS_BIT"),
911                 tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                                     "VK_IMAGE_CREATE_PROTECTED_BIT"),
912                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,         "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
913                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,                                                     "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
914                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,                                                        "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
915                 tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,                      "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
916                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,                                        "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
917                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,     "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
918         };
919         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
920 }
921
922 const char* getImageLayoutName (VkImageLayout value)
923 {
924         switch (value)
925         {
926                 case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
927                 case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
928                 case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
929                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
930                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
931                 case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
932                 case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
933                 case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
934                 case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
935                 case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
936                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
937                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
938                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
939                 case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
940                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
941                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
942                 case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
943                 case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
944                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
945                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
946                 case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
947                 case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
948                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
949                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
950                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
951                 case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:                                                         return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
952                 case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:                                                        return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
953                 case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:                      return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
954                 default:                                                                                                                        return DE_NULL;
955         }
956 }
957
958 const char* getImageTilingName (VkImageTiling value)
959 {
960         switch (value)
961         {
962                 case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
963                 case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
964                 case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
965                 default:                                                                                return DE_NULL;
966         }
967 }
968
969 const char* getImageTypeName (VkImageType value)
970 {
971         switch (value)
972         {
973                 case VK_IMAGE_TYPE_1D:  return "VK_IMAGE_TYPE_1D";
974                 case VK_IMAGE_TYPE_2D:  return "VK_IMAGE_TYPE_2D";
975                 case VK_IMAGE_TYPE_3D:  return "VK_IMAGE_TYPE_3D";
976                 default:                                return DE_NULL;
977         }
978 }
979
980 tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
981 {
982         static const tcu::Format::BitDesc s_desc[] =
983         {
984                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
985                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
986                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
987                 tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
988                 tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
989                 tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
990                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
991                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
992                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
993                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
994                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
995                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
996                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
997                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
998                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
999                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
1000                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
1001                 tcu::Format::BitDesc(VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                   "VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1002                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,                                             "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
1003                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,                                "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
1004         };
1005         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1006 }
1007
1008 tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
1009 {
1010         static const tcu::Format::BitDesc s_desc[] =
1011         {
1012                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
1013                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
1014         };
1015         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1016 }
1017
1018 const char* getImageViewTypeName (VkImageViewType value)
1019 {
1020         switch (value)
1021         {
1022                 case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
1023                 case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
1024                 case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
1025                 case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
1026                 case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1027                 case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1028                 case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1029                 default:                                                        return DE_NULL;
1030         }
1031 }
1032
1033 const char* getSharingModeName (VkSharingMode value)
1034 {
1035         switch (value)
1036         {
1037                 case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
1038                 case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
1039                 default:                                                        return DE_NULL;
1040         }
1041 }
1042
1043 const char* getIndexTypeName (VkIndexType value)
1044 {
1045         switch (value)
1046         {
1047                 case VK_INDEX_TYPE_UINT16:              return "VK_INDEX_TYPE_UINT16";
1048                 case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
1049                 case VK_INDEX_TYPE_NONE_KHR:    return "VK_INDEX_TYPE_NONE_KHR";
1050                 case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
1051                 default:                                                return DE_NULL;
1052         }
1053 }
1054
1055 const char* getLogicOpName (VkLogicOp value)
1056 {
1057         switch (value)
1058         {
1059                 case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
1060                 case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
1061                 case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
1062                 case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
1063                 case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
1064                 case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
1065                 case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
1066                 case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
1067                 case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
1068                 case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
1069                 case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
1070                 case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
1071                 case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
1072                 case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
1073                 case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
1074                 case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
1075                 default:                                                return DE_NULL;
1076         }
1077 }
1078
1079 tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
1080 {
1081         static const tcu::Format::BitDesc s_desc[] =
1082         {
1083                 tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,   "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
1084                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
1085         };
1086         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1087 }
1088
1089 tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
1090 {
1091         static const tcu::Format::BitDesc s_desc[] =
1092         {
1093                 tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                                               "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
1094                 tcu::Format::BitDesc(VK_ACCESS_NONE,                                                                                    "VK_ACCESS_NONE"),
1095                 tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                                                  "VK_ACCESS_INDEX_READ_BIT"),
1096                 tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                                               "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
1097                 tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                                                "VK_ACCESS_UNIFORM_READ_BIT"),
1098                 tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
1099                 tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                                                 "VK_ACCESS_SHADER_READ_BIT"),
1100                 tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                                                "VK_ACCESS_SHADER_WRITE_BIT"),
1101                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
1102                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                              "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
1103                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                               "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
1104                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                              "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
1105                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                                               "VK_ACCESS_TRANSFER_READ_BIT"),
1106                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                                              "VK_ACCESS_TRANSFER_WRITE_BIT"),
1107                 tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                                                   "VK_ACCESS_HOST_READ_BIT"),
1108                 tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                                  "VK_ACCESS_HOST_WRITE_BIT"),
1109                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                                 "VK_ACCESS_MEMORY_READ_BIT"),
1110                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                                "VK_ACCESS_MEMORY_WRITE_BIT"),
1111                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
1112                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
1113                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
1114                 tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
1115                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
1116                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
1117                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
1118                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
1119                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
1120                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
1121                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
1122         };
1123         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1124 }
1125
1126 tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
1127 {
1128         static const tcu::Format::BitDesc s_desc[] =
1129         {
1130                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
1131                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
1132                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
1133                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
1134                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
1135                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
1136                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
1137                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
1138                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
1139         };
1140         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1141 }
1142
1143 const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1144 {
1145         switch (value)
1146         {
1147                 case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1148                 case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1149                 case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1150                 case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1151                 case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1152                 default:                                                                                return DE_NULL;
1153         }
1154 }
1155
1156 const char* getPipelineBindPointName (VkPipelineBindPoint value)
1157 {
1158         switch (value)
1159         {
1160                 case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1161                 case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
1162                 case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1163                 case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1164                 default:                                                                                        return DE_NULL;
1165         }
1166 }
1167
1168 tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
1169 {
1170         static const tcu::Format::BitDesc s_desc[] =
1171         {
1172                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,                                                               "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
1173                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,                                                                  "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
1174                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,                                                                                 "VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
1175                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
1176                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
1177                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
1178                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
1179                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
1180                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,                                  "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
1181                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,                                                    "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
1182                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,                                                 "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
1183                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
1184                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
1185                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
1186                 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"),
1187                 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"),
1188                 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"),
1189                 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"),
1190                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
1191                 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"),
1192                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
1193                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,             "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
1194                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,              "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
1195                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,                             "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
1196                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT,                                   "VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"),
1197                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                                 "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1198                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT,                 "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"),
1199                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT,                                                    "VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT"),
1200                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT,                                                  "VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT"),
1201         };
1202         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1203 }
1204
1205 const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1206 {
1207         switch (value)
1208         {
1209                 case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1210                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1211                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1212                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1213                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1214                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1215                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1216                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1217                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1218                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1219                 case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1220                 default:                                                                                                        return DE_NULL;
1221         }
1222 }
1223
1224 tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
1225 {
1226         static const tcu::Format::BitDesc s_desc[] =
1227         {
1228                 tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,      "VK_QUERY_CONTROL_PRECISE_BIT"),
1229         };
1230         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1231 }
1232
1233 tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
1234 {
1235         static const tcu::Format::BitDesc s_desc[] =
1236         {
1237                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
1238                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
1239                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
1240                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
1241                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
1242                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
1243                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
1244                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
1245                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
1246                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
1247                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
1248                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT,                                       "VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT"),
1249                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT,                                       "VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT"),
1250         };
1251         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1252 }
1253
1254 tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
1255 {
1256         static const tcu::Format::BitDesc s_desc[] =
1257         {
1258                 tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
1259                 tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
1260                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
1261                 tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
1262                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
1263         };
1264         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1265 }
1266
1267 const char* getQueryTypeName (VkQueryType value)
1268 {
1269         switch (value)
1270         {
1271                 case VK_QUERY_TYPE_OCCLUSION:                                                                                                           return "VK_QUERY_TYPE_OCCLUSION";
1272                 case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1273                 case VK_QUERY_TYPE_TIMESTAMP:                                                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
1274                 case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1275                 case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1276                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1277                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:                                           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1278                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:                                       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1279                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:                                            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1280                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1281                 case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                                                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1282                 case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:                                                                       return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
1283                 case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:                                                                            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1284                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:      return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1285                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:                                                                     return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1286                 case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT:                                                                     return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT";
1287                 case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT:                                                                         return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT";
1288                 default:                                                                                                                                                        return DE_NULL;
1289         }
1290 }
1291
1292 tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
1293 {
1294         static const tcu::Format::BitDesc s_desc[] =
1295         {
1296                 tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
1297                 tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
1298                 tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
1299                 tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
1300                 tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
1301                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
1302                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
1303                 tcu::Format::BitDesc(VK_QUEUE_OPTICAL_FLOW_BIT_NV,      "VK_QUEUE_OPTICAL_FLOW_BIT_NV"),
1304         };
1305         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1306 }
1307
1308 const char* getSubpassContentsName (VkSubpassContents value)
1309 {
1310         switch (value)
1311         {
1312                 case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
1313                 case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1314                 default:                                                                                        return DE_NULL;
1315         }
1316 }
1317
1318 const char* getResultName (VkResult value)
1319 {
1320         switch (value)
1321         {
1322                 case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:                                        return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
1323                 case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1324                 case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1325                 case VK_ERROR_NOT_PERMITTED_KHR:                                                        return "VK_ERROR_NOT_PERMITTED_KHR";
1326                 case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
1327                 case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1328                 case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
1329                 case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
1330                 case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:                      return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1331                 case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:            return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1332                 case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1333                 case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:        return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1334                 case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1335                 case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:                            return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1336                 case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
1337                 case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
1338                 case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
1339                 case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
1340                 case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
1341                 case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
1342                 case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
1343                 case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
1344                 case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
1345                 case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
1346                 case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
1347                 case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
1348                 case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
1349                 case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
1350                 case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
1351                 case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
1352                 case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
1353                 case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
1354                 case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
1355                 case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
1356                 case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
1357                 case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
1358                 case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
1359                 case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
1360                 case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
1361                 case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
1362                 case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
1363                 case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
1364                 case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
1365                 case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
1366                 case VK_PIPELINE_COMPILE_REQUIRED:                                                      return "VK_PIPELINE_COMPILE_REQUIRED";
1367                 default:                                                                                                        return DE_NULL;
1368         }
1369 }
1370
1371 tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
1372 {
1373         static const tcu::Format::BitDesc s_desc[] =
1374         {
1375                 tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
1376                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
1377                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
1378                 tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
1379                 tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
1380                 tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
1381                 tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_EXT,                                      "VK_SHADER_STAGE_TASK_BIT_EXT"),
1382                 tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_EXT,                                      "VK_SHADER_STAGE_MESH_BIT_EXT"),
1383                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
1384                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
1385                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
1386                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
1387                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
1388                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
1389                 tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
1390                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
1391                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
1392         };
1393         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1394 }
1395
1396 tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
1397 {
1398         static const tcu::Format::BitDesc s_desc[] =
1399         {
1400                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,        "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
1401         };
1402         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1403 }
1404
1405 tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
1406 {
1407         static const tcu::Format::BitDesc s_desc[] =
1408         {
1409                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                 "VK_STENCIL_FACE_FRONT_BIT"),
1410                 tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                  "VK_STENCIL_FACE_BACK_BIT"),
1411                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,    "VK_STENCIL_FACE_FRONT_AND_BACK"),
1412         };
1413         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
1414 }
1415
1416 const char* getStencilOpName (VkStencilOp value)
1417 {
1418         switch (value)
1419         {
1420                 case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
1421                 case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
1422                 case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
1423                 case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1424                 case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1425                 case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
1426                 case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1427                 case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1428                 default:                                                                return DE_NULL;
1429         }
1430 }
1431
1432 const char* getStructureTypeName (VkStructureType value)
1433 {
1434         switch (value)
1435         {
1436                 case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
1437                 case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
1438                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
1439                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
1440                 case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                                     return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
1441                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
1442                 case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                                     return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
1443                 case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
1444                 case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
1445                 case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
1446                 case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
1447                 case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
1448                 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
1449                 case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
1450                 case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
1451                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
1452                 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
1453                 case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
1454                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
1455                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
1456                 case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
1457                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
1458                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
1459                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
1460                 case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
1461                 case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
1462                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
1463                 case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
1464                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
1465                 case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
1466                 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
1467                 case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
1468                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
1469                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
1470                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
1471                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                                            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
1472                 case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                                     return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
1473                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
1474                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
1475                 case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
1476                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
1477                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                                         return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
1478                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
1479                 case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
1480                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
1481                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
1482                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
1483                 case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
1484                 case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
1485                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
1486                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
1487                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
1488                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
1489                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
1490                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
1491                 case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
1492                 case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
1493                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
1494                 case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
1495                 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
1496                 case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
1497                 case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
1498                 case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
1499                 case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
1500                 case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
1501                 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
1502                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:                            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
1503                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
1504                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
1505                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
1506                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
1507                 case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
1508                 case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
1509                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
1510                 case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
1511                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
1512                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
1513                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
1514                 case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
1515                 case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
1516                 case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
1517                 case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
1518                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
1519                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
1520                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
1521                 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
1522                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
1523                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
1524                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
1525                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
1526                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
1527                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
1528                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
1529                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
1530                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
1531                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
1532                 case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
1533                 case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
1534                 case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
1535                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
1536                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
1537                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
1538                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
1539                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
1540                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
1541                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
1542                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT";
1543                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1544                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT";
1545                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
1546                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
1547                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT:                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT";
1548                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
1549                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
1550                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
1551                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
1552                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
1553                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT";
1554                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT";
1555                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT";
1556                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT:                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT";
1557                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
1558                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
1559                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
1560                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
1561                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT";
1562                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
1563                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
1564                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
1565                 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
1566                 case VK_STRUCTURE_TYPE_RENDERING_INFO:                                                                                                          return "VK_STRUCTURE_TYPE_RENDERING_INFO";
1567                 case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:                                                                                       return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
1568                 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
1569                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
1570                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
1571                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1572                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
1573                 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
1574                 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
1575                 case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
1576                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
1577                 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
1578                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
1579                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
1580                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
1581                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
1582                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1583                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
1584                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
1585                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
1586                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
1587                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
1588                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
1589                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
1590                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
1591                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
1592                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
1593                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
1594                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
1595                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
1596                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
1597                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
1598                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
1599                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
1600                 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
1601                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
1602                 case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
1603                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
1604                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
1605                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
1606                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
1607                 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:                                                                                            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
1608                 case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:                                                                                       return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
1609                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
1610                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
1611                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
1612                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
1613                 case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
1614                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
1615                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
1616                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
1617                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
1618                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
1619                 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
1620                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
1621                 case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
1622                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
1623                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
1624                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
1625                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
1626                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1627                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
1628                 case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
1629                 case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
1630                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
1631                 case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
1632                 case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
1633                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
1634                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
1635                 case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
1636                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
1637                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1638                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
1639                 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
1640                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
1641                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
1642                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
1643                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
1644                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
1645                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
1646                 case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
1647                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
1648                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
1649                 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
1650                 case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
1651                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
1652                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
1653                 case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
1654                 case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
1655                 case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
1656                 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
1657                 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                                       return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
1658                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
1659                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
1660                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
1661                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
1662                 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
1663                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
1664                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
1665                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
1666                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
1667                 case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                        return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
1668                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
1669                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
1670                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
1671                 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
1672                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
1673                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
1674                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
1675                 case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
1676                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
1677                 case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
1678                 case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
1679                 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                                         return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
1680                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
1681                 case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
1682                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
1683                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1684                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
1685                 case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
1686                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
1687                 case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
1688                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
1689                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
1690                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
1691                 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
1692                 case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
1693                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
1694                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
1695                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
1696                 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
1697                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
1698                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
1699                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
1700                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
1701                 case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                                            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
1702                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
1703                 case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
1704                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
1705                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:                                                                           return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
1706                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
1707                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
1708                 case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                                     return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
1709                 case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                           return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
1710                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
1711                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
1712                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
1713                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
1714                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
1715                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
1716                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
1717                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
1718                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
1719                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
1720                 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                                     return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1721                 case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                         return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
1722                 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
1723                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:                                     return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
1724                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
1725                 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
1726                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
1727                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
1728                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:                                                       return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
1729                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
1730                 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                                       return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
1731                 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
1732                 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:                                         return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
1733                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
1734                 case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:                                                                                      return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
1735                 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
1736                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
1737                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
1738                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
1739                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
1740                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
1741                 case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
1742                 case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
1743                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
1744                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
1745                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
1746                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
1747                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
1748                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:                                         return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
1749                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
1750                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
1751                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
1752                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
1753                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
1754                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
1755                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
1756                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
1757                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
1758                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
1759                 case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
1760                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
1761                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
1762                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
1763                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
1764                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
1765                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
1766                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
1767                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:                                       return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
1768                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
1769                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
1770                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
1771                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
1772                 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
1773                 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
1774                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
1775                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
1776                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
1777                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
1778                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
1779                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
1780                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
1781                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
1782                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
1783                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:                                                       return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
1784                 case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
1785                 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
1786                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
1787                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
1788                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
1789                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
1790                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
1791                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
1792                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
1793                 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";
1794                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
1795                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
1796                 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";
1797                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
1798                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
1799                 case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
1800                 case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
1801                 case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
1802                 case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
1803                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
1804                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
1805                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
1806                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
1807                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
1808                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
1809                 case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
1810                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
1811                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
1812                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
1813                 case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
1814                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
1815                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
1816                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
1817                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
1818                 case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
1819                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
1820                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
1821                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
1822                 case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
1823                 case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
1824                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
1825                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
1826                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
1827                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
1828                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT";
1829                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
1830                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
1831                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
1832                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
1833                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
1834                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
1835                 case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
1836                 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
1837                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
1838                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
1839                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
1840                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
1841                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
1842                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
1843                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
1844                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
1845                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
1846                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
1847                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
1848                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
1849                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
1850                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
1851                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
1852                 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
1853                 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
1854                 case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
1855                 case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
1856                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
1857                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
1858                 case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
1859                 case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
1860                 case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
1861                 case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
1862                 case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
1863                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
1864                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
1865                 case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
1866                 case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
1867                 case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
1868                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
1869                 case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
1870                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
1871                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
1872                 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
1873                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
1874                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
1875                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:                        return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
1876                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
1877                 case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
1878                 case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
1879                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
1880                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
1881                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
1882                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
1883                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
1884                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
1885                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
1886                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
1887                 case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
1888                 case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
1889                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
1890                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
1891                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
1892                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
1893                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
1894                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
1895                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
1896                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:                                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
1897                 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
1898                 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
1899                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
1900                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
1901                 case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1902                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
1903                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
1904                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
1905                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
1906                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
1907                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
1908                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
1909                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
1910                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
1911                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
1912                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
1913                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
1914                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
1915                 case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
1916                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
1917                 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
1918                 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
1919                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
1920                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
1921                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
1922                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
1923                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
1924                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
1925                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
1926                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
1927                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
1928                 case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
1929                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
1930                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
1931                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
1932                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
1933                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
1934                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
1935                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
1936                 case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
1937                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
1938                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
1939                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
1940                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
1941                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
1942                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
1943                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
1944                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
1945                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
1946                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
1947                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
1948                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
1949                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
1950                 case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
1951                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
1952                 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
1953                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
1954                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
1955                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
1956                 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
1957                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
1958                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
1959                 case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
1960                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV";
1961                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:                                                         return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV";
1962                 case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV";
1963                 case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
1964                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
1965                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
1966                 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
1967                 case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
1968                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
1969                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
1970                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
1971                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
1972                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
1973                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
1974                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
1975                 case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
1976                 case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
1977                 case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
1978                 case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
1979                 case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
1980                 case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
1981                 case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
1982                 case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
1983                 case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
1984                 case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
1985                 case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
1986                 case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
1987                 case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
1988                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:                                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
1989                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
1990                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
1991                 case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:                                                                                                         return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
1992                 case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:                                                                                                           return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
1993                 case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
1994                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:                                                                                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
1995                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
1996                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
1997                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
1998                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
1999                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
2000                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
2001                 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";
2002                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
2003                 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";
2004                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
2005                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
2006                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
2007                 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";
2008                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
2009                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
2010                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
2011                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
2012                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
2013                 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";
2014                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
2015                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
2016                 case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
2017                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
2018                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
2019                 case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:                                                                                                      return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
2020                 case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
2021                 case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
2022                 case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
2023                 case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
2024                 case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:                                                                                            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
2025                 case VK_STRUCTURE_TYPE_BUFFER_COPY_2:                                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
2026                 case VK_STRUCTURE_TYPE_IMAGE_COPY_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
2027                 case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
2028                 case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:                                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
2029                 case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:                                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
2030                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
2031                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
2032                 case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:                                                                                        return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
2033                 case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
2034                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
2035                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
2036                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
2037                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT";
2038                 case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:                                                                                         return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT";
2039                 case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT";
2040                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
2041                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
2042                 case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
2043                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
2044                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
2045                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
2046                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT";
2047                 case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT";
2048                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
2049                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
2050                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
2051                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
2052                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT";
2053                 case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:                                                        return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT";
2054                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
2055                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
2056                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
2057                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
2058                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
2059                 case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
2060                 case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2061                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
2062                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
2063                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
2064                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
2065                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
2066                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:                                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
2067                 case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
2068                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
2069                 case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
2070                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
2071                 case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:                                                                                      return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
2072                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:                                                      return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
2073                 case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
2074                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
2075                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
2076                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
2077                 case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
2078                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
2079                 case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
2080                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
2081                 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";
2082                 case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:                                                           return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
2083                 case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
2084                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
2085                 case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
2086                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
2087                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
2088                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
2089                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
2090                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
2091                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
2092                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
2093                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
2094                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
2095                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
2096                 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";
2097                 case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:                                                                                         return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT";
2098                 case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:                                                                                       return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT";
2099                 case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT";
2100                 case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT";
2101                 case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT";
2102                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT";
2103                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT";
2104                 case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:                                                                                        return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT";
2105                 case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT";
2106                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT";
2107                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
2108                 case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:                          return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
2109                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
2110                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
2111                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
2112                 case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:                                                                       return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
2113                 case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
2114                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
2115                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
2116                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
2117                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT";
2118                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
2119                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
2120                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
2121                 case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:                                       return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
2122                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
2123                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
2124                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
2125                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
2126                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
2127                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT";
2128                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT";
2129                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
2130                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:                                                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
2131                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
2132                 case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
2133                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
2134                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
2135                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
2136                 case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:                                                                            return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
2137                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV";
2138                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV";
2139                 case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV";
2140                 case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:                                                         return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV";
2141                 case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV";
2142                 case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:                                                                            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV";
2143                 case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:                                        return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV";
2144                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
2145                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT";
2146                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
2147                 case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:                                                                                            return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
2148                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
2149                 case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:                                                                         return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
2150                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM";
2151                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM";
2152                 default:                                                                                                                                                                        return DE_NULL;
2153         }
2154 }
2155
2156 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
2157 {
2158         switch (value)
2159         {
2160                 case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
2161                 case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
2162                 case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
2163                 case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
2164                 case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
2165                 default:                                                                        return DE_NULL;
2166         }
2167 }
2168
2169 const char* getInternalAllocationTypeName (VkInternalAllocationType value)
2170 {
2171         switch (value)
2172         {
2173                 case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
2174                 default:                                                                                return DE_NULL;
2175         }
2176 }
2177
2178 const char* getSamplerAddressModeName (VkSamplerAddressMode value)
2179 {
2180         switch (value)
2181         {
2182                 case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
2183                 case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
2184                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
2185                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
2186                 case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
2187                 default:                                                                                        return DE_NULL;
2188         }
2189 }
2190
2191 const char* getFilterName (VkFilter value)
2192 {
2193         switch (value)
2194         {
2195                 case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
2196                 case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
2197                 case VK_FILTER_CUBIC_EXT:       return "VK_FILTER_CUBIC_EXT";
2198                 default:                                        return DE_NULL;
2199         }
2200 }
2201
2202 const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
2203 {
2204         switch (value)
2205         {
2206                 case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
2207                 case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
2208                 default:                                                                return DE_NULL;
2209         }
2210 }
2211
2212 const char* getVertexInputRateName (VkVertexInputRate value)
2213 {
2214         switch (value)
2215         {
2216                 case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
2217                 case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
2218                 default:                                                        return DE_NULL;
2219         }
2220 }
2221
2222 tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2223 {
2224         static const tcu::Format::BitDesc s_desc[] =
2225         {
2226                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2227                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,                                                                            "VK_PIPELINE_STAGE_NONE"),
2228                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2229                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2230                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2231                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2232                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2233                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2234                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2235                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2236                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2237                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2238                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2239                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
2240                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2241                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
2242                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2243                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2244                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2245                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2246                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,                                                     "VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"),
2247                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,                                                     "VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"),
2248                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2249                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2250                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2251                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2252                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2253         };
2254         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2255 }
2256
2257 tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2258 {
2259         static const tcu::Format::BitDesc s_desc[] =
2260         {
2261                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
2262                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
2263                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
2264         };
2265         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2266 }
2267
2268 tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2269 {
2270         static const tcu::Format::BitDesc s_desc[] =
2271         {
2272                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,             "VK_SAMPLE_COUNT_1_BIT"),
2273                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,             "VK_SAMPLE_COUNT_2_BIT"),
2274                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,             "VK_SAMPLE_COUNT_4_BIT"),
2275                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,             "VK_SAMPLE_COUNT_8_BIT"),
2276                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,    "VK_SAMPLE_COUNT_16_BIT"),
2277                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,    "VK_SAMPLE_COUNT_32_BIT"),
2278                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,    "VK_SAMPLE_COUNT_64_BIT"),
2279         };
2280         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2281 }
2282
2283 tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
2284 {
2285         static const tcu::Format::BitDesc s_desc[] =
2286         {
2287                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,   "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
2288         };
2289         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2290 }
2291
2292 tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
2293 {
2294         static const tcu::Format::BitDesc s_desc[] =
2295         {
2296                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
2297                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,   "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
2298                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,               "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT"),
2299         };
2300         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2301 }
2302
2303 tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
2304 {
2305         static const tcu::Format::BitDesc s_desc[] =
2306         {
2307                 tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,                       "VK_DEPENDENCY_BY_REGION_BIT"),
2308                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,                      "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
2309                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,            "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
2310                 tcu::Format::BitDesc(VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT,       "VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT"),
2311         };
2312         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2313 }
2314
2315 const char* getObjectTypeName (VkObjectType value)
2316 {
2317         switch (value)
2318         {
2319                 case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
2320                 case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
2321                 case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
2322                 case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
2323                 case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
2324                 case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
2325                 case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
2326                 case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
2327                 case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
2328                 case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
2329                 case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
2330                 case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
2331                 case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
2332                 case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
2333                 case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
2334                 case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
2335                 case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
2336                 case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
2337                 case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
2338                 case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
2339                 case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
2340                 case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
2341                 case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
2342                 case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
2343                 case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
2344                 case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
2345                 case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
2346                 case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
2347                 case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
2348                 case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
2349                 case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
2350                 case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
2351                 case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
2352                 case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
2353                 case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
2354                 case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
2355                 case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
2356                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
2357                 case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
2358                 case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
2359                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
2360                 case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
2361                 case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
2362                 case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
2363                 case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:                                  return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
2364                 case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:                  return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
2365                 case VK_OBJECT_TYPE_MICROMAP_EXT:                                               return "VK_OBJECT_TYPE_MICROMAP_EXT";
2366                 case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV:                    return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV";
2367                 default:                                                                                                return DE_NULL;
2368         }
2369 }
2370
2371 tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
2372 {
2373         static const tcu::Format::BitDesc s_desc[] =
2374         {
2375                 tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,   "VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
2376         };
2377         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2378 }
2379
2380 tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
2381 {
2382         static const tcu::Format::BitDesc s_desc[] =
2383         {
2384                 tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,        "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
2385         };
2386         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2387 }
2388
2389 tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
2390 {
2391         static const tcu::Format::BitDesc s_desc[] =
2392         {
2393                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
2394                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
2395                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
2396         };
2397         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2398 }
2399
2400 const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2401 {
2402         switch (value)
2403         {
2404                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2405                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2406                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2407                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:          return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2408                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:          return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2409                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2410                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                           return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2411                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:                     return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2412                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:        return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
2413                 default:                                                                                                        return DE_NULL;
2414         }
2415 }
2416
2417 tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
2418 {
2419         static const tcu::Format::BitDesc s_desc[] =
2420         {
2421                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
2422         };
2423         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2424 }
2425
2426 const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
2427 {
2428         switch (value)
2429         {
2430                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
2431                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
2432                 default:                                                                                                                return DE_NULL;
2433         }
2434 }
2435
2436 const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2437 {
2438         switch (value)
2439         {
2440                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2441                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2442                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2443                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2444                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2445                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2446                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2447                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2448                 default:                                                                                        return DE_NULL;
2449         }
2450 }
2451
2452 const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2453 {
2454         switch (value)
2455         {
2456                 case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2457                 case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2458                 default:                                                                                return DE_NULL;
2459         }
2460 }
2461
2462 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
2463 {
2464         static const tcu::Format::BitDesc s_desc[] =
2465         {
2466                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,                                                        "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
2467                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,                                           "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
2468                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                                                           "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
2469                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                                                            "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
2470                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"),
2471                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"),
2472                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,      "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"),
2473                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT,                                            "VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT"),
2474         };
2475         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2476 }
2477
2478 const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
2479 {
2480         switch (value)
2481         {
2482                 case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
2483                 case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
2484                 default:                                                                                                return DE_NULL;
2485         }
2486 }
2487
2488 const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2489 {
2490         switch (value)
2491         {
2492                 case VK_COVERAGE_MODULATION_MODE_NONE_NV:       return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2493                 case VK_COVERAGE_MODULATION_MODE_RGB_NV:        return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2494                 case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:      return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2495                 case VK_COVERAGE_MODULATION_MODE_RGBA_NV:       return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2496                 default:                                                                        return DE_NULL;
2497         }
2498 }
2499
2500 const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2501 {
2502         switch (value)
2503         {
2504                 case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2505                 case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2506                 default:                                                                                return DE_NULL;
2507         }
2508 }
2509
2510 const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2511 {
2512         switch (value)
2513         {
2514                 case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:        return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2515                 default:                                                                                        return DE_NULL;
2516         }
2517 }
2518
2519 const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2520 {
2521         switch (value)
2522         {
2523                 case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2524                 case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2525                 case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2526                 default:                                                                        return DE_NULL;
2527         }
2528 }
2529
2530 const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
2531 {
2532         switch (value)
2533         {
2534                 case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
2535                 case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
2536                 case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
2537                 case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
2538                 default:                                                                        return DE_NULL;
2539         }
2540 }
2541
2542 const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2543 {
2544         switch (value)
2545         {
2546                 case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
2547                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2548                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2549                 case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2550                 default:                                                                                        return DE_NULL;
2551         }
2552 }
2553
2554 const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2555 {
2556         switch (value)
2557         {
2558                 case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2559                 case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2560                 case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2561                 default:                                                                                                        return DE_NULL;
2562         }
2563 }
2564
2565 tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
2566 {
2567         static const tcu::Format::BitDesc s_desc[] =
2568         {
2569                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                              "VK_RESOLVE_MODE_NONE"),
2570                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,   "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
2571                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,               "VK_RESOLVE_MODE_AVERAGE_BIT"),
2572                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                   "VK_RESOLVE_MODE_MIN_BIT"),
2573                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                   "VK_RESOLVE_MODE_MAX_BIT"),
2574         };
2575         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2576 }
2577
2578 tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
2579 {
2580         static const tcu::Format::BitDesc s_desc[] =
2581         {
2582                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                       "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
2583                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,     "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
2584                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                         "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
2585                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,       "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
2586         };
2587         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2588 }
2589
2590 tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
2591 {
2592         static const tcu::Format::BitDesc s_desc[] =
2593         {
2594                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT, "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
2595         };
2596         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2597 }
2598
2599 const char* getSemaphoreTypeName (VkSemaphoreType value)
2600 {
2601         switch (value)
2602         {
2603                 case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
2604                 case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
2605                 default:                                                        return DE_NULL;
2606         }
2607 }
2608
2609 tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
2610 {
2611         static const tcu::Format::BitDesc s_desc[] =
2612         {
2613                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
2614                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
2615         };
2616         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2617 }
2618
2619 tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
2620 {
2621         static const tcu::Format::BitDesc s_desc[] =
2622         {
2623                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
2624                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,                 "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
2625                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                 "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
2626                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                              "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
2627                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT,   "VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"),
2628                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT,                "VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"),
2629         };
2630         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2631 }
2632
2633 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
2634 {
2635         static const tcu::Format::BitDesc s_desc[] =
2636         {
2637                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,                                              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
2638                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,                                  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
2639                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,                                 "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
2640                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,                                 "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
2641                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                                                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
2642                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                                                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
2643                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT,                 "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT"),
2644                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"),
2645                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT,    "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"),
2646         };
2647         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2648 }
2649
2650 tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
2651 {
2652         static const tcu::Format::BitDesc s_desc[] =
2653         {
2654                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
2655                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
2656         };
2657         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2658 }
2659
2660 const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2661 {
2662         switch (value)
2663         {
2664                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2665                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2666                 default:                                                                                                return DE_NULL;
2667         }
2668 }
2669
2670 const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2671 {
2672         switch (value)
2673         {
2674                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2675                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2676                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2677                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2678                 default:                                                                                                        return DE_NULL;
2679         }
2680 }
2681
2682 const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2683 {
2684         switch (value)
2685         {
2686                 case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2687                 case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2688                 case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2689                 default:                                                                                                return DE_NULL;
2690         }
2691 }
2692
2693 const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2694 {
2695         switch (value)
2696         {
2697                 case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2698                 case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
2699                 case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2700                 default:                                                                return DE_NULL;
2701         }
2702 }
2703
2704 const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2705 {
2706         switch (value)
2707         {
2708                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2709                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2710                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2711                 default:                                                                                                                return DE_NULL;
2712         }
2713 }
2714
2715 const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2716 {
2717         switch (value)
2718         {
2719                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2720                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2721                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2722                 default:                                                                                                                                        return DE_NULL;
2723         }
2724 }
2725
2726 const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2727 {
2728         switch (value)
2729         {
2730                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:                             return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2731                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:                   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2732                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2733                 default:                                                                                                                return DE_NULL;
2734         }
2735 }
2736
2737 const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2738 {
2739         switch (value)
2740         {
2741                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:    return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2742                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:  return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2743                 default:                                                                                                                return DE_NULL;
2744         }
2745 }
2746
2747 const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2748 {
2749         switch (value)
2750         {
2751                 case VK_SHADER_GROUP_SHADER_GENERAL_KHR:                return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2752                 case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:    return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2753                 case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:                return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2754                 case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:   return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2755                 default:                                                                                return DE_NULL;
2756         }
2757 }
2758
2759 const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2760 {
2761         switch (value)
2762         {
2763                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2764                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2765                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2766                 default:                                                                                                return DE_NULL;
2767         }
2768 }
2769
2770 const char* getScopeNVName (VkScopeNV value)
2771 {
2772         switch (value)
2773         {
2774                 case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
2775                 case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
2776                 case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
2777                 case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
2778                 default:                                                return DE_NULL;
2779         }
2780 }
2781
2782 const char* getComponentTypeNVName (VkComponentTypeNV value)
2783 {
2784         switch (value)
2785         {
2786                 case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
2787                 case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
2788                 case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
2789                 case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
2790                 case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
2791                 case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
2792                 case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
2793                 case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
2794                 case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
2795                 case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
2796                 case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
2797                 default:                                                        return DE_NULL;
2798         }
2799 }
2800
2801 tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
2802 {
2803         static const tcu::Format::BitDesc s_desc[] =
2804         {
2805                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
2806                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
2807                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
2808                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
2809         };
2810         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2811 }
2812
2813 tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
2814 {
2815         static const tcu::Format::BitDesc s_desc[] =
2816         {
2817                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,                                                   "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
2818                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,  "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
2819                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,              "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
2820         };
2821         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2822 }
2823
2824 const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
2825 {
2826         switch (value)
2827         {
2828                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
2829                 case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
2830                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
2831                 default:                                                                                                return DE_NULL;
2832         }
2833 }
2834
2835 const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
2836 {
2837         switch (value)
2838         {
2839                 case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
2840                 case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
2841                 case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
2842                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
2843                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
2844                 case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
2845                 case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
2846                 case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
2847                 case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
2848                 case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
2849                 case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
2850                 default:                                                                                                return DE_NULL;
2851         }
2852 }
2853
2854 const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
2855 {
2856         switch (value)
2857         {
2858                 case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
2859                 case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
2860                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
2861                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
2862                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
2863                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
2864                 default:                                                                                        return DE_NULL;
2865         }
2866 }
2867
2868 tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
2869 {
2870         static const tcu::Format::BitDesc s_desc[] =
2871         {
2872                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
2873                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
2874         };
2875         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2876 }
2877
2878 tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
2879 {
2880         static const tcu::Format::BitDesc s_desc[] =
2881         {
2882                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT, "VK_SEMAPHORE_WAIT_ANY_BIT"),
2883         };
2884         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2885 }
2886
2887 const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2888 {
2889         switch (value)
2890         {
2891                 case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2892                 default:                                                                                                                                                                return DE_NULL;
2893         }
2894 }
2895
2896 const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2897 {
2898         switch (value)
2899         {
2900                 case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:  return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2901                 default:                                                                                return DE_NULL;
2902         }
2903 }
2904
2905 const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2906 {
2907         switch (value)
2908         {
2909                 case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2910                 case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2911                 default:                                                                                                        return DE_NULL;
2912         }
2913 }
2914
2915 const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2916 {
2917         switch (value)
2918         {
2919                 case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2920                 case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2921                 default:                                                                                                                        return DE_NULL;
2922         }
2923 }
2924
2925 const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2926 {
2927         switch (value)
2928         {
2929                 case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2930                 case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2931                 case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2932                 case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2933                 case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2934                 default:                                                                                return DE_NULL;
2935         }
2936 }
2937
2938 const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2939 {
2940         switch (value)
2941         {
2942                 case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2943                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2944                 case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2945                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2946                 default:                                                                                                return DE_NULL;
2947         }
2948 }
2949
2950 tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
2951 {
2952         static const tcu::Format::BitDesc s_desc[] =
2953         {
2954                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,                    "VK_TOOL_PURPOSE_VALIDATION_BIT"),
2955                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,                             "VK_TOOL_PURPOSE_PROFILING_BIT"),
2956                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,                               "VK_TOOL_PURPOSE_TRACING_BIT"),
2957                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,   "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
2958                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,    "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
2959                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,   "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
2960                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,             "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
2961         };
2962         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2963 }
2964
2965 const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2966 {
2967         switch (value)
2968         {
2969                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2970                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2971                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2972                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2973                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2974                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2975                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2976                 case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2977                 case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2978                 case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2979                 case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2980                 case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2981                 default:                                                                                                                return DE_NULL;
2982         }
2983 }
2984
2985 const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2986 {
2987         switch (value)
2988         {
2989                 case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2990                 case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2991                 default:                                                                                                return DE_NULL;
2992         }
2993 }
2994
2995 const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
2996 {
2997         switch (value)
2998         {
2999                 case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:                                                                        return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
3000                 case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:                                                            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
3001                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
3002                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
3003                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
3004                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:                                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
3005                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
3006                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:      return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
3007                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
3008                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
3009                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
3010                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
3011                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
3012                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:                                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
3013                 default:                                                                                                                                        return DE_NULL;
3014         }
3015 }
3016
3017 tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
3018 {
3019         static const tcu::Format::BitDesc s_desc[] =
3020         {
3021                 tcu::Format::BitDesc(VK_ACCESS_2_NONE,                                                                                  "VK_ACCESS_2_NONE"),
3022                 tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,                                             "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
3023                 tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,                                                                "VK_ACCESS_2_INDEX_READ_BIT"),
3024                 tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,                                             "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
3025                 tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,                                                              "VK_ACCESS_2_UNIFORM_READ_BIT"),
3026                 tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
3027                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,                                                               "VK_ACCESS_2_SHADER_READ_BIT"),
3028                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,                                                              "VK_ACCESS_2_SHADER_WRITE_BIT"),
3029                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
3030                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,                                    "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
3031                 tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                             "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
3032                 tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                    "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
3033                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,                                                             "VK_ACCESS_2_TRANSFER_READ_BIT"),
3034                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,                                                    "VK_ACCESS_2_TRANSFER_WRITE_BIT"),
3035                 tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,                                                                 "VK_ACCESS_2_HOST_READ_BIT"),
3036                 tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,                                                                "VK_ACCESS_2_HOST_WRITE_BIT"),
3037                 tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,                                                               "VK_ACCESS_2_MEMORY_READ_BIT"),
3038                 tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,                                                              "VK_ACCESS_2_MEMORY_WRITE_BIT"),
3039                 tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,                                "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
3040                 tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,                               "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
3041                 tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
3042                 tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,                    "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
3043                 tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,                   "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
3044                 tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                  "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
3045                 tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
3046                 tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                             "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
3047                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                              "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
3048                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,               "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
3049                 tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,              "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
3050                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,                                               "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
3051                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,                                               "VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
3052                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,                                              "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
3053                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
3054                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
3055                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
3056                 tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
3057                 tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,                               "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
3058                 tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,                             "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
3059                 tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,                                              "VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV"),
3060                 tcu::Format::BitDesc(VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,                                             "VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"),
3061                 tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_READ_BIT_EXT,                                                 "VK_ACCESS_2_MICROMAP_READ_BIT_EXT"),
3062                 tcu::Format::BitDesc(VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,                                                "VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT"),
3063         };
3064         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3065 }
3066
3067 tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
3068 {
3069         static const tcu::Format::BitDesc s_desc[] =
3070         {
3071                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,                                                                          "VK_PIPELINE_STAGE_2_NONE"),
3072                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,                                                       "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
3073                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,                                                     "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
3074                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,                                                      "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
3075                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
3076                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,                       "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
3077                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,            "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
3078                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
3079                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
3080                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,                                      "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
3081                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,                                       "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
3082                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,                           "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
3083                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,                                            "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
3084                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
3085                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,                                            "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
3086                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,                                                                      "VK_PIPELINE_STAGE_2_HOST_BIT"),
3087                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
3088                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
3089                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,                                     "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
3090                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,                         "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
3091                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT,                                           "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"),
3092                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT,                                           "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"),
3093                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,                            "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
3094                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,      "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3095                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                      "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3096                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,                            "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
3097                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,          "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3098                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
3099                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
3100                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,           "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
3101                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV,                                           "VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"),
3102                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT,                                        "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"),
3103                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,                                                                      "VK_PIPELINE_STAGE_2_COPY_BIT"),
3104                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,                                                           "VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
3105                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,                                                                      "VK_PIPELINE_STAGE_2_BLIT_BIT"),
3106                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,                                                                     "VK_PIPELINE_STAGE_2_CLEAR_BIT"),
3107                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,                                                       "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
3108                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,                            "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
3109                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,                         "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
3110                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"),
3111                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
3112         };
3113         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3114 }
3115
3116 const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
3117 {
3118         switch (value)
3119         {
3120                 case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
3121                 case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
3122                 default:                                                                                return DE_NULL;
3123         }
3124 }
3125
3126 tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
3127 {
3128         static const tcu::Format::BitDesc s_desc[] =
3129         {
3130                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
3131                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,          "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
3132                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,        "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
3133                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
3134                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
3135         };
3136         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3137 }
3138
3139 tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
3140 {
3141         static const tcu::Format::BitDesc s_desc[] =
3142         {
3143                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
3144                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
3145                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
3146                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
3147                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
3148                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
3149                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
3150                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,                                                                                                                  "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
3151                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
3152                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                  "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
3153                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
3154                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
3155                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
3156                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,                                                                                                "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
3157                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
3158                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
3159                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
3160                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                   "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
3161                 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"),
3162                 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"),
3163                 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"),
3164                 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"),
3165                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
3166                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
3167                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                  "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3168                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                   "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
3169                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
3170                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                    "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
3171                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
3172                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                  "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
3173                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                              "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3174                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
3175                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
3176                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,                                                                                    "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
3177                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,                                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
3178                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
3179                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,                                                                                                               "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
3180                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,                                                                                                   "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
3181                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,                                                                                                "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
3182                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV,                                                                                                             "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV"),
3183                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV,                                                                                                    "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV"),
3184                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV,                                                                                                              "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV"),
3185         };
3186         return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3187 }
3188
3189 tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3190 {
3191         static const tcu::Format::BitDesc s_desc[] =
3192         {
3193                 tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,       "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3194                 tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,                                                       "VK_RENDERING_SUSPENDING_BIT"),
3195                 tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,                                                         "VK_RENDERING_RESUMING_BIT"),
3196                 tcu::Format::BitDesc(VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT,                      "VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT"),
3197         };
3198         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3199 }
3200
3201 tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3202 {
3203         static const tcu::Format::BitDesc s_desc[] =
3204         {
3205                 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"),
3206                 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"),
3207         };
3208         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3209 }
3210
3211 tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3212 {
3213         static const tcu::Format::BitDesc s_desc[] =
3214         {
3215                 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"),
3216         };
3217         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3218 }
3219
3220 tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
3221 {
3222         static const tcu::Format::BitDesc s_desc[] =
3223         {
3224                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,                          "VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
3225                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,       "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
3226                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
3227                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,                         "VK_IMAGE_COMPRESSION_DISABLED_EXT"),
3228         };
3229         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3230 }
3231
3232 tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
3233 {
3234         static const tcu::Format::BitDesc s_desc[] =
3235         {
3236                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,          "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
3237                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
3238                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
3239                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
3240                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
3241                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
3242                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
3243                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
3244                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
3245                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
3246                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
3247                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
3248                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
3249                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
3250                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
3251                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
3252                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
3253                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
3254                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
3255                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
3256                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
3257                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
3258                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
3259                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
3260                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
3261         };
3262         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3263 }
3264
3265 tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
3266 {
3267         static const tcu::Format::BitDesc s_desc[] =
3268         {
3269                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
3270                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,   "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
3271                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
3272                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,                 "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
3273                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,               "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
3274                 tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,    "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
3275         };
3276         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3277 }
3278
3279 const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
3280 {
3281         switch (value)
3282         {
3283                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:                 return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
3284                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:                               return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
3285                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:   return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
3286                 case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
3287                 default:                                                                                                                                return DE_NULL;
3288         }
3289 }
3290
3291 const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
3292 {
3293         switch (value)
3294         {
3295                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:                  return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
3296                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:                                return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
3297                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:             return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
3298                 case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:   return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
3299                 default:                                                                                                                                return DE_NULL;
3300         }
3301 }
3302
3303 tcu::Format::Bitfield<32> getDeviceAddressBindingFlagsEXTStr (VkDeviceAddressBindingFlagsEXT value)
3304 {
3305         static const tcu::Format::BitDesc s_desc[] =
3306         {
3307                 tcu::Format::BitDesc(VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT, "VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"),
3308         };
3309         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3310 }
3311
3312 const char* getDeviceAddressBindingTypeEXTName (VkDeviceAddressBindingTypeEXT value)
3313 {
3314         switch (value)
3315         {
3316                 case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT:   return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT";
3317                 case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT: return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT";
3318                 default:                                                                                return DE_NULL;
3319         }
3320 }
3321
3322 const char* getMicromapTypeEXTName (VkMicromapTypeEXT value)
3323 {
3324         switch (value)
3325         {
3326                 case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT:     return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT";
3327                 default:                                                                        return DE_NULL;
3328         }
3329 }
3330
3331 const char* getBuildMicromapModeEXTName (VkBuildMicromapModeEXT value)
3332 {
3333         switch (value)
3334         {
3335                 case VK_BUILD_MICROMAP_MODE_BUILD_EXT:  return "VK_BUILD_MICROMAP_MODE_BUILD_EXT";
3336                 default:                                                                return DE_NULL;
3337         }
3338 }
3339
3340 const char* getCopyMicromapModeEXTName (VkCopyMicromapModeEXT value)
3341 {
3342         switch (value)
3343         {
3344                 case VK_COPY_MICROMAP_MODE_CLONE_EXT:           return "VK_COPY_MICROMAP_MODE_CLONE_EXT";
3345                 case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT:       return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT";
3346                 case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT:     return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT";
3347                 case VK_COPY_MICROMAP_MODE_COMPACT_EXT:         return "VK_COPY_MICROMAP_MODE_COMPACT_EXT";
3348                 default:                                                                        return DE_NULL;
3349         }
3350 }
3351
3352 tcu::Format::Bitfield<32> getBuildMicromapFlagsEXTStr (VkBuildMicromapFlagsEXT value)
3353 {
3354         static const tcu::Format::BitDesc s_desc[] =
3355         {
3356                 tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT,       "VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT"),
3357                 tcu::Format::BitDesc(VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT,       "VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT"),
3358                 tcu::Format::BitDesc(VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT,        "VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT"),
3359         };
3360         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3361 }
3362
3363 tcu::Format::Bitfield<32> getMicromapCreateFlagsEXTStr (VkMicromapCreateFlagsEXT value)
3364 {
3365         static const tcu::Format::BitDesc s_desc[] =
3366         {
3367                 tcu::Format::BitDesc(VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,  "VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3368         };
3369         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3370 }
3371
3372 const char* getOpacityMicromapFormatEXTName (VkOpacityMicromapFormatEXT value)
3373 {
3374         switch (value)
3375         {
3376                 case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT:    return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT";
3377                 case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT:    return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT";
3378                 default:                                                                                return DE_NULL;
3379         }
3380 }
3381
3382 const char* getOpacityMicromapSpecialIndexEXTName (VkOpacityMicromapSpecialIndexEXT value)
3383 {
3384         switch (value)
3385         {
3386                 case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT:                return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT";
3387                 case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT:   return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT";
3388                 case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT:                                return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT";
3389                 case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT:                   return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT";
3390                 default:                                                                                                                                return DE_NULL;
3391         }
3392 }
3393
3394 const char* getDeviceFaultVendorBinaryHeaderVersionEXTName (VkDeviceFaultVendorBinaryHeaderVersionEXT value)
3395 {
3396         switch (value)
3397         {
3398                 case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT:      return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT";
3399                 default:                                                                                                        return DE_NULL;
3400         }
3401 }
3402
3403 const char* getColorSpaceKHRName (VkColorSpaceKHR value)
3404 {
3405         switch (value)
3406         {
3407                 case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                         return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
3408                 case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:           return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
3409                 case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:           return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
3410                 case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
3411                 case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:                       return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
3412                 case VK_COLOR_SPACE_BT709_LINEAR_EXT:                           return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
3413                 case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                        return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
3414                 case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                          return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
3415                 case VK_COLOR_SPACE_HDR10_ST2084_EXT:                           return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
3416                 case VK_COLOR_SPACE_DOLBYVISION_EXT:                            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
3417                 case VK_COLOR_SPACE_HDR10_HLG_EXT:                                      return "VK_COLOR_SPACE_HDR10_HLG_EXT";
3418                 case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                        return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
3419                 case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:                     return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
3420                 case VK_COLOR_SPACE_PASS_THROUGH_EXT:                           return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
3421                 case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:        return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
3422                 case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
3423                 default:                                                                                        return DE_NULL;
3424         }
3425 }
3426
3427 tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3428 {
3429         static const tcu::Format::BitDesc s_desc[] =
3430         {
3431                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3432                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3433                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3434                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3435         };
3436         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3437 }
3438
3439 tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3440 {
3441         static const tcu::Format::BitDesc s_desc[] =
3442         {
3443                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3444                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3445                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3446                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3447         };
3448         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3449 }
3450
3451 const char* getPresentModeKHRName (VkPresentModeKHR value)
3452 {
3453         switch (value)
3454         {
3455                 case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
3456                 case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
3457                 case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
3458                 case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
3459                 case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
3460                 case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
3461                 default:                                                                                        return DE_NULL;
3462         }
3463 }
3464
3465 tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3466 {
3467         static const tcu::Format::BitDesc s_desc[] =
3468         {
3469                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3470                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3471                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3472                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3473                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3474                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3475                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3476                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3477                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3478         };
3479         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3480 }
3481
3482 tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3483 {
3484         static const tcu::Format::BitDesc s_desc[] =
3485         {
3486                 tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3487                 tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3488                 tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3489                 tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3490                 tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3491         };
3492         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3493 }
3494
3495 const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
3496 {
3497         switch (value)
3498         {
3499                 case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
3500                 case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
3501                 case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
3502                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
3503                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
3504                 case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
3505                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
3506                 case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
3507                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
3508                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
3509                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
3510                 case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
3511                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
3512                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
3513                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
3514                 case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
3515                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
3516                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
3517                 case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
3518                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
3519                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
3520                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
3521                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
3522                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
3523                 case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
3524                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
3525                 case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
3526                 case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
3527                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
3528                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
3529                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
3530                 case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
3531                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
3532                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
3533                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
3534                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
3535                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
3536                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
3537                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
3538                 default:                                                                                                                        return DE_NULL;
3539         }
3540 }
3541
3542 const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
3543 {
3544         switch (value)
3545         {
3546                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
3547                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
3548                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
3549                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
3550                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
3551                 default:                                                                                                                return DE_NULL;
3552         }
3553 }
3554
3555 const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
3556 {
3557         switch (value)
3558         {
3559                 case VK_RASTERIZATION_ORDER_STRICT_AMD:         return "VK_RASTERIZATION_ORDER_STRICT_AMD";
3560                 case VK_RASTERIZATION_ORDER_RELAXED_AMD:        return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
3561                 default:                                                                        return DE_NULL;
3562         }
3563 }
3564
3565 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3566 {
3567         static const tcu::Format::BitDesc s_desc[] =
3568         {
3569                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,                "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3570                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,    "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3571                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,                 "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3572                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,             "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3573         };
3574         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3575 }
3576
3577 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3578 {
3579         static const tcu::Format::BitDesc s_desc[] =
3580         {
3581                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,  "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3582                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3583                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3584         };
3585         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3586 }
3587
3588 const char* getValidationCheckEXTName (VkValidationCheckEXT value)
3589 {
3590         switch (value)
3591         {
3592                 case VK_VALIDATION_CHECK_ALL_EXT:               return "VK_VALIDATION_CHECK_ALL_EXT";
3593                 case VK_VALIDATION_CHECK_SHADERS_EXT:   return "VK_VALIDATION_CHECK_SHADERS_EXT";
3594                 default:                                                                return DE_NULL;
3595         }
3596 }
3597
3598 const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
3599 {
3600         switch (value)
3601         {
3602                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
3603                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
3604                 case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
3605                 case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
3606                 case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
3607                 default:                                                                                                                                        return DE_NULL;
3608         }
3609 }
3610
3611 const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
3612 {
3613         switch (value)
3614         {
3615                 case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
3616                 case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
3617                 case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
3618                 case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
3619                 case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
3620                 case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
3621                 case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
3622                 case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
3623                 default:                                                                                                                return DE_NULL;
3624         }
3625 }
3626
3627 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3628 {
3629         static const tcu::Format::BitDesc s_desc[] =
3630         {
3631                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3632                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3633                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3634                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3635                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3636                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3637                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3638                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3639                 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"),
3640                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3641                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3642                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3643                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3644         };
3645         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3646 }
3647
3648 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3649 {
3650         static const tcu::Format::BitDesc s_desc[] =
3651         {
3652                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,     "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3653                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3654                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3655         };
3656         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3657 }
3658
3659 tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3660 {
3661         static const tcu::Format::BitDesc s_desc[] =
3662         {
3663                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3664                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3665                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3666                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3667                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3668                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3669         };
3670         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3671 }
3672
3673 tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3674 {
3675         static const tcu::Format::BitDesc s_desc[] =
3676         {
3677                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3678                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3679         };
3680         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3681 }
3682
3683 tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3684 {
3685         static const tcu::Format::BitDesc s_desc[] =
3686         {
3687                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3688         };
3689         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3690 }
3691
3692 tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3693 {
3694         static const tcu::Format::BitDesc s_desc[] =
3695         {
3696                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                       "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3697                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,            "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3698                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,        "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3699                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                         "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3700         };
3701         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3702 }
3703
3704 tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3705 {
3706         static const tcu::Format::BitDesc s_desc[] =
3707         {
3708                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3709                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
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> getFenceImportFlagsStr (VkFenceImportFlags value)
3715 {
3716         static const tcu::Format::BitDesc s_desc[] =
3717         {
3718                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
3719         };
3720         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3721 }
3722
3723 tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3724 {
3725         static const tcu::Format::BitDesc s_desc[] =
3726         {
3727                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT, "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3728         };
3729         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3730 }
3731
3732 const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
3733 {
3734         switch (value)
3735         {
3736                 case VK_DISPLAY_POWER_STATE_OFF_EXT:            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
3737                 case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:        return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
3738                 case VK_DISPLAY_POWER_STATE_ON_EXT:                     return "VK_DISPLAY_POWER_STATE_ON_EXT";
3739                 default:                                                                        return DE_NULL;
3740         }
3741 }
3742
3743 const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
3744 {
3745         switch (value)
3746         {
3747                 case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
3748                 default:                                                                                return DE_NULL;
3749         }
3750 }
3751
3752 const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
3753 {
3754         switch (value)
3755         {
3756                 case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
3757                 default:                                                                                return DE_NULL;
3758         }
3759 }
3760
3761 tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3762 {
3763         static const tcu::Format::BitDesc s_desc[] =
3764         {
3765                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3766                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3767                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3768                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3769         };
3770         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3771 }
3772
3773 tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3774 {
3775         static const tcu::Format::BitDesc s_desc[] =
3776         {
3777                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                        "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3778                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                     "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3779                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,      "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3780         };
3781         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3782 }
3783
3784 tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3785 {
3786         static const tcu::Format::BitDesc s_desc[] =
3787         {
3788                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3789                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3790                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3791                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3792         };
3793         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3794 }
3795
3796 tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3797 {
3798         static const tcu::Format::BitDesc s_desc[] =
3799         {
3800                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3801                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3802                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3803         };
3804         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3805 }
3806
3807 tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3808 {
3809         static const tcu::Format::BitDesc s_desc[] =
3810         {
3811                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
3812                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
3813                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3814                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3815                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3816                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3817                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3818                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
3819                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,    "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3820         };
3821         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3822 }
3823
3824 const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
3825 {
3826         switch (value)
3827         {
3828                 case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
3829                 case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
3830                 default:                                                                                return DE_NULL;
3831         }
3832 }
3833
3834 const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
3835 {
3836         switch (value)
3837         {
3838                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
3839                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
3840                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
3841                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
3842                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
3843                 default:                                                                                                return DE_NULL;
3844         }
3845 }
3846
3847 const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
3848 {
3849         switch (value)
3850         {
3851                 case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
3852                 case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
3853                 default:                                                                return DE_NULL;
3854         }
3855 }
3856
3857 const char* getChromaLocationName (VkChromaLocation value)
3858 {
3859         switch (value)
3860         {
3861                 case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
3862                 case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
3863                 default:                                                                return DE_NULL;
3864         }
3865 }
3866
3867 const char* getSamplerReductionModeName (VkSamplerReductionMode value)
3868 {
3869         switch (value)
3870         {
3871                 case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
3872                 case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
3873                 case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
3874                 default:                                                                                        return DE_NULL;
3875         }
3876 }
3877
3878 const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
3879 {
3880         switch (value)
3881         {
3882                 case VK_BLEND_OVERLAP_UNCORRELATED_EXT: return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
3883                 case VK_BLEND_OVERLAP_DISJOINT_EXT:             return "VK_BLEND_OVERLAP_DISJOINT_EXT";
3884                 case VK_BLEND_OVERLAP_CONJOINT_EXT:             return "VK_BLEND_OVERLAP_CONJOINT_EXT";
3885                 default:                                                                return DE_NULL;
3886         }
3887 }
3888
3889 tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3890 {
3891         static const tcu::Format::BitDesc s_desc[] =
3892         {
3893                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3894                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3895                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
3896                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
3897         };
3898         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3899 }
3900
3901 tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
3902 {
3903         static const tcu::Format::BitDesc s_desc[] =
3904         {
3905                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,                                       "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
3906                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,                            "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
3907                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,                           "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
3908                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT,        "VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT"),
3909         };
3910         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3911 }
3912
3913 const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
3914 {
3915         switch (value)
3916         {
3917                 case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
3918                 case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
3919                 case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
3920                 case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
3921                 default:                                                                                                        return DE_NULL;
3922         }
3923 }
3924
3925 const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
3926 {
3927         switch (value)
3928         {
3929                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
3930                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
3931                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
3932                 default:                                                                                                return DE_NULL;
3933         }
3934 }
3935
3936 tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
3937 {
3938         static const tcu::Format::BitDesc s_desc[] =
3939         {
3940                 tcu::Format::BitDesc(VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID,       "VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"),
3941         };
3942         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3943 }
3944
3945 const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
3946 {
3947         switch (value)
3948         {
3949                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
3950                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
3951                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
3952                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
3953                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
3954                 default:                                                                                                return DE_NULL;
3955         }
3956 }
3957
3958 tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
3959 {
3960         static const tcu::Format::BitDesc s_desc[] =
3961         {
3962                 tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,   "VK_SUBMIT_PROTECTED_BIT"),
3963         };
3964         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3965 }
3966
3967 tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
3968 {
3969         static const tcu::Format::BitDesc s_desc[] =
3970         {
3971                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,               "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
3972                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
3973                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,                              "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
3974                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
3975         };
3976         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3977 }
3978
3979 tcu::Format::Bitfield<32> getOpticalFlowGridSizeFlagsNVStr (VkOpticalFlowGridSizeFlagsNV value)
3980 {
3981         static const tcu::Format::BitDesc s_desc[] =
3982         {
3983                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV,      "VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"),
3984                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV,      "VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV"),
3985                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV,      "VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV"),
3986                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV,      "VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV"),
3987                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV,      "VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV"),
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> getOpticalFlowUsageFlagsNVStr (VkOpticalFlowUsageFlagsNV value)
3993 {
3994         static const tcu::Format::BitDesc s_desc[] =
3995         {
3996                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV,                  "VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"),
3997                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV,                "VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV"),
3998                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV,               "VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV"),
3999                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV,                 "VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV"),
4000                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_COST_BIT_NV,                 "VK_OPTICAL_FLOW_USAGE_COST_BIT_NV"),
4001                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV,  "VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV"),
4002         };
4003         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4004 }
4005
4006 const char* getOpticalFlowPerformanceLevelNVName (VkOpticalFlowPerformanceLevelNV value)
4007 {
4008         switch (value)
4009         {
4010                 case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV:      return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV";
4011                 case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV:         return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV";
4012                 case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV:       return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV";
4013                 case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV:         return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV";
4014                 default:                                                                                        return DE_NULL;
4015         }
4016 }
4017
4018 const char* getOpticalFlowSessionBindingPointNVName (VkOpticalFlowSessionBindingPointNV value)
4019 {
4020         switch (value)
4021         {
4022                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV:                          return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV";
4023                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV:                            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV";
4024                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV:                        return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV";
4025                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV:                                     return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV";
4026                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV:                      return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV";
4027                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV:     return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV";
4028                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:                                     return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV";
4029                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV:            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV";
4030                 case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV:                      return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV";
4031                 default:                                                                                                                        return DE_NULL;
4032         }
4033 }
4034
4035 tcu::Format::Bitfield<32> getOpticalFlowSessionCreateFlagsNVStr (VkOpticalFlowSessionCreateFlagsNV value)
4036 {
4037         static const tcu::Format::BitDesc s_desc[] =
4038         {
4039                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV,                 "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV"),
4040                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV,                 "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV"),
4041                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV,  "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV"),
4042                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV,               "VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV"),
4043                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV,             "VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV"),
4044         };
4045         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4046 }
4047
4048 tcu::Format::Bitfield<32> getOpticalFlowExecuteFlagsNVStr (VkOpticalFlowExecuteFlagsNV value)
4049 {
4050         static const tcu::Format::BitDesc s_desc[] =
4051         {
4052                 tcu::Format::BitDesc(VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV,     "VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"),
4053         };
4054         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4055 }
4056
4057 const char* getDeviceFaultAddressTypeEXTName (VkDeviceFaultAddressTypeEXT value)
4058 {
4059         switch (value)
4060         {
4061                 case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT:                                                     return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT";
4062                 case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT:                                     return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT";
4063                 case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT:                            return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT";
4064                 case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT:                          return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT";
4065                 case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT:      return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT";
4066                 case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT:      return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT";
4067                 case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT:        return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT";
4068                 default:                                                                                                                        return DE_NULL;
4069         }
4070 }
4071
4072 const char* getVendorIdName (VkVendorId value)
4073 {
4074         switch (value)
4075         {
4076                 case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
4077                 case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
4078                 case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
4079                 case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
4080                 case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
4081                 case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
4082                 default:                                        return DE_NULL;
4083         }
4084 }
4085
4086 const char* getDriverIdName (VkDriverId value)
4087 {
4088         switch (value)
4089         {
4090                 case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
4091                 case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
4092                 case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
4093                 case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
4094                 case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
4095                 case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
4096                 case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
4097                 case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
4098                 case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
4099                 case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
4100                 case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
4101                 case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
4102                 case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
4103                 case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
4104                 case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
4105                 case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
4106                 case VK_DRIVER_ID_VERISILICON_PROPRIETARY:              return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
4107                 case VK_DRIVER_ID_MESA_TURNIP:                                  return "VK_DRIVER_ID_MESA_TURNIP";
4108                 case VK_DRIVER_ID_MESA_V3DV:                                    return "VK_DRIVER_ID_MESA_V3DV";
4109                 case VK_DRIVER_ID_MESA_PANVK:                                   return "VK_DRIVER_ID_MESA_PANVK";
4110                 case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:                  return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
4111                 case VK_DRIVER_ID_MESA_VENUS:                                   return "VK_DRIVER_ID_MESA_VENUS";
4112                 case VK_DRIVER_ID_MESA_DOZEN:                                   return "VK_DRIVER_ID_MESA_DOZEN";
4113                 default:                                                                                return DE_NULL;
4114         }
4115 }
4116
4117 const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
4118 {
4119         switch (value)
4120         {
4121                 case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
4122                 case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
4123                 case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
4124                 case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
4125                 case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
4126                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
4127                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
4128                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
4129                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
4130                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
4131                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
4132                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
4133                 default:                                                                                                                        return DE_NULL;
4134         }
4135 }
4136
4137 const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
4138 {
4139         switch (value)
4140         {
4141                 case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
4142                 case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
4143                 case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
4144                 case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
4145                 default:                                                                                        return DE_NULL;
4146         }
4147 }
4148
4149 const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
4150 {
4151         switch (value)
4152         {
4153                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
4154                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
4155                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
4156                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
4157                 default:                                                                                                        return DE_NULL;
4158         }
4159 }
4160
4161 tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4162 {
4163         static const tcu::Format::BitDesc s_desc[] =
4164         {
4165                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_NONE_KHR,                         "VK_VIDEO_CODEC_OPERATION_NONE_KHR"),
4166                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
4167                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
4168                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
4169                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
4170         };
4171         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4172 }
4173
4174 tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4175 {
4176         static const tcu::Format::BitDesc s_desc[] =
4177         {
4178                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"),
4179                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,    "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4180                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4181                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4182                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4183         };
4184         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4185 }
4186
4187 tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4188 {
4189         static const tcu::Format::BitDesc s_desc[] =
4190         {
4191                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,  "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4192                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,    "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4193                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4194                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4195         };
4196         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4197 }
4198
4199 tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4200 {
4201         static const tcu::Format::BitDesc s_desc[] =
4202         {
4203                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,                     "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4204                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,     "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4205         };
4206         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4207 }
4208
4209 tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4210 {
4211         static const tcu::Format::BitDesc s_desc[] =
4212         {
4213                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4214         };
4215         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4216 }
4217
4218 tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4219 {
4220         static const tcu::Format::BitDesc s_desc[] =
4221         {
4222                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,                                             "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4223                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR,               "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR"),
4224                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR, "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR"),
4225         };
4226         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4227 }
4228
4229 const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
4230 {
4231         switch (value)
4232         {
4233                 case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
4234                 case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
4235                 case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
4236                 default:                                                                        return DE_NULL;
4237         }
4238 }
4239
4240 tcu::Format::Bitfield<32> getVideoDecodeUsageFlagsKHRStr (VkVideoDecodeUsageFlagsKHR value)
4241 {
4242         static const tcu::Format::BitDesc s_desc[] =
4243         {
4244                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_DEFAULT_KHR,                 "VK_VIDEO_DECODE_USAGE_DEFAULT_KHR"),
4245                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR, "VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR"),
4246                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR,             "VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR"),
4247                 tcu::Format::BitDesc(VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR,   "VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR"),
4248         };
4249         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4250 }
4251
4252 tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
4253 {
4254         static const tcu::Format::BitDesc s_desc[] =
4255         {
4256                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
4257                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
4258         };
4259         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4260 }
4261
4262 tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
4263 {
4264         static const tcu::Format::BitDesc s_desc[] =
4265         {
4266                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,                                               "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
4267                 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"),
4268                 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"),
4269         };
4270         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4271 }
4272
4273 tcu::Format::Bitfield<32> getVideoEncodeUsageFlagsKHRStr (VkVideoEncodeUsageFlagsKHR value)
4274 {
4275         static const tcu::Format::BitDesc s_desc[] =
4276         {
4277                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR,                         "VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR"),
4278                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR,         "VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR"),
4279                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR,           "VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR"),
4280                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR,           "VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR"),
4281                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR,        "VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR"),
4282         };
4283         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4284 }
4285
4286 tcu::Format::Bitfield<32> getVideoEncodeContentFlagsKHRStr (VkVideoEncodeContentFlagsKHR value)
4287 {
4288         static const tcu::Format::BitDesc s_desc[] =
4289         {
4290                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR,               "VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR"),
4291                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR,    "VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR"),
4292                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR,   "VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR"),
4293                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR,  "VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR"),
4294         };
4295         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4296 }
4297
4298 const char* getVideoEncodeTuningModeKHRName (VkVideoEncodeTuningModeKHR value)
4299 {
4300         switch (value)
4301         {
4302                 case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:                   return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
4303                 case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:              return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
4304                 case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:               return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
4305                 case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR: return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
4306                 case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:                  return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
4307                 default:                                                                                                return DE_NULL;
4308         }
4309 }
4310
4311 tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
4312 {
4313         static const tcu::Format::BitDesc s_desc[] =
4314         {
4315                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,     "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
4316         };
4317         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4318 }
4319
4320 tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4321 {
4322         static const tcu::Format::BitDesc s_desc[] =
4323         {
4324                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4325                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4326                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4327         };
4328         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4329 }
4330
4331 tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
4332 {
4333         static const tcu::Format::BitDesc s_desc[] =
4334         {
4335                 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"),
4336                 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"),
4337                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4338                 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"),
4339                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4340                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4341                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                                  "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4342                 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"),
4343                 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"),
4344                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4345                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
4346                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
4347                 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"),
4348                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4349                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4350                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4351                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,                "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4352                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4353                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4354                 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"),
4355                 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"),
4356                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
4357                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
4358                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4359                 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"),
4360         };
4361         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4362 }
4363
4364 tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4365 {
4366         static const tcu::Format::BitDesc s_desc[] =
4367         {
4368                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4369                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4370                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4371         };
4372         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4373 }
4374
4375 tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4376 {
4377         static const tcu::Format::BitDesc s_desc[] =
4378         {
4379                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4380                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4381                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4382         };
4383         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4384 }
4385
4386 const char* getVideoEncodeH264RateControlStructureEXTName (VkVideoEncodeH264RateControlStructureEXT value)
4387 {
4388         switch (value)
4389         {
4390                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:   return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4391                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT:              return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4392                 case VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT:    return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4393                 default:                                                                                                                return DE_NULL;
4394         }
4395 }
4396
4397 tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
4398 {
4399         static const tcu::Format::BitDesc s_desc[] =
4400         {
4401                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4402                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4403                 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"),
4404                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,                                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
4405                 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"),
4406                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4407                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
4408                 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"),
4409                 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"),
4410                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
4411                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
4412                 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"),
4413                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4414                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
4415                 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"),
4416                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,                         "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
4417                 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"),
4418                 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"),
4419                 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"),
4420                 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"),
4421                 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"),
4422                 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"),
4423                 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"),
4424                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
4425                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                                      "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4426                 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"),
4427         };
4428         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4429 }
4430
4431 tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
4432 {
4433         static const tcu::Format::BitDesc s_desc[] =
4434         {
4435                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,                     "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
4436                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,     "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4437                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,           "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
4438         };
4439         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4440 }
4441
4442 tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
4443 {
4444         static const tcu::Format::BitDesc s_desc[] =
4445         {
4446                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
4447                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4448                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4449         };
4450         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4451 }
4452
4453 const char* getVideoEncodeH265RateControlStructureEXTName (VkVideoEncodeH265RateControlStructureEXT value)
4454 {
4455         switch (value)
4456         {
4457                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT:   return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT";
4458                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT:              return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT";
4459                 case VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT:    return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT";
4460                 default:                                                                                                                return DE_NULL;
4461         }
4462 }
4463
4464 tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
4465 {
4466         static const tcu::Format::BitDesc s_desc[] =
4467         {
4468                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
4469                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
4470                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
4471         };
4472         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4473 }
4474
4475 tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
4476 {
4477         static const tcu::Format::BitDesc s_desc[] =
4478         {
4479                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
4480                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
4481                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
4482                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
4483         };
4484         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4485 }
4486
4487 const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
4488 {
4489         switch (value)
4490         {
4491                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
4492                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
4493                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
4494                 default:                                                                                                                                return DE_NULL;
4495         }
4496 }
4497
4498 const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
4499 {
4500         switch (value)
4501         {
4502                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
4503                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
4504                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
4505                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
4506                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
4507                 default:                                                                                        return DE_NULL;
4508         }
4509 }
4510
4511 const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
4512 {
4513         switch (value)
4514         {
4515                 case STD_VIDEO_H264_PROFILE_IDC_BASELINE:                               return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
4516                 case STD_VIDEO_H264_PROFILE_IDC_MAIN:                                   return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
4517                 case STD_VIDEO_H264_PROFILE_IDC_HIGH:                                   return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
4518                 case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:    return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
4519                 case STD_VIDEO_H264_PROFILE_IDC_INVALID:                                return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
4520                 default:                                                                                                return DE_NULL;
4521         }
4522 }
4523
4524 const char* getdVideoH264LevelIdcName (StdVideoH264LevelIdc value)
4525 {
4526         switch (value)
4527         {
4528                 case STD_VIDEO_H264_LEVEL_IDC_1_0:              return "STD_VIDEO_H264_LEVEL_IDC_1_0";
4529                 case STD_VIDEO_H264_LEVEL_IDC_1_1:              return "STD_VIDEO_H264_LEVEL_IDC_1_1";
4530                 case STD_VIDEO_H264_LEVEL_IDC_1_2:              return "STD_VIDEO_H264_LEVEL_IDC_1_2";
4531                 case STD_VIDEO_H264_LEVEL_IDC_1_3:              return "STD_VIDEO_H264_LEVEL_IDC_1_3";
4532                 case STD_VIDEO_H264_LEVEL_IDC_2_0:              return "STD_VIDEO_H264_LEVEL_IDC_2_0";
4533                 case STD_VIDEO_H264_LEVEL_IDC_2_1:              return "STD_VIDEO_H264_LEVEL_IDC_2_1";
4534                 case STD_VIDEO_H264_LEVEL_IDC_2_2:              return "STD_VIDEO_H264_LEVEL_IDC_2_2";
4535                 case STD_VIDEO_H264_LEVEL_IDC_3_0:              return "STD_VIDEO_H264_LEVEL_IDC_3_0";
4536                 case STD_VIDEO_H264_LEVEL_IDC_3_1:              return "STD_VIDEO_H264_LEVEL_IDC_3_1";
4537                 case STD_VIDEO_H264_LEVEL_IDC_3_2:              return "STD_VIDEO_H264_LEVEL_IDC_3_2";
4538                 case STD_VIDEO_H264_LEVEL_IDC_4_0:              return "STD_VIDEO_H264_LEVEL_IDC_4_0";
4539                 case STD_VIDEO_H264_LEVEL_IDC_4_1:              return "STD_VIDEO_H264_LEVEL_IDC_4_1";
4540                 case STD_VIDEO_H264_LEVEL_IDC_4_2:              return "STD_VIDEO_H264_LEVEL_IDC_4_2";
4541                 case STD_VIDEO_H264_LEVEL_IDC_5_0:              return "STD_VIDEO_H264_LEVEL_IDC_5_0";
4542                 case STD_VIDEO_H264_LEVEL_IDC_5_1:              return "STD_VIDEO_H264_LEVEL_IDC_5_1";
4543                 case STD_VIDEO_H264_LEVEL_IDC_5_2:              return "STD_VIDEO_H264_LEVEL_IDC_5_2";
4544                 case STD_VIDEO_H264_LEVEL_IDC_6_0:              return "STD_VIDEO_H264_LEVEL_IDC_6_0";
4545                 case STD_VIDEO_H264_LEVEL_IDC_6_1:              return "STD_VIDEO_H264_LEVEL_IDC_6_1";
4546                 case STD_VIDEO_H264_LEVEL_IDC_6_2:              return "STD_VIDEO_H264_LEVEL_IDC_6_2";
4547                 case STD_VIDEO_H264_LEVEL_IDC_INVALID:  return "STD_VIDEO_H264_LEVEL_IDC_INVALID";
4548                 default:                                                                return DE_NULL;
4549         }
4550 }
4551
4552 const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
4553 {
4554         switch (value)
4555         {
4556                 case STD_VIDEO_H264_POC_TYPE_0:                 return "STD_VIDEO_H264_POC_TYPE_0";
4557                 case STD_VIDEO_H264_POC_TYPE_1:                 return "STD_VIDEO_H264_POC_TYPE_1";
4558                 case STD_VIDEO_H264_POC_TYPE_2:                 return "STD_VIDEO_H264_POC_TYPE_2";
4559                 case STD_VIDEO_H264_POC_TYPE_INVALID:   return "STD_VIDEO_H264_POC_TYPE_INVALID";
4560                 default:                                                                return DE_NULL;
4561         }
4562 }
4563
4564 const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
4565 {
4566         switch (value)
4567         {
4568                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
4569                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
4570                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
4571                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
4572                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
4573                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
4574                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
4575                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
4576                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
4577                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
4578                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
4579                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
4580                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
4581                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
4582                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
4583                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
4584                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
4585                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
4586                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
4587                 default:                                                                                        return DE_NULL;
4588         }
4589 }
4590
4591 const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
4592 {
4593         switch (value)
4594         {
4595                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
4596                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
4597                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
4598                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
4599                 default:                                                                                        return DE_NULL;
4600         }
4601 }
4602
4603 const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
4604 {
4605         switch (value)
4606         {
4607                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
4608                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:                return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
4609                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:                             return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
4610                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:                                   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
4611                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:                               return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
4612                 default:                                                                                                                                return DE_NULL;
4613         }
4614 }
4615
4616 const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
4617 {
4618         switch (value)
4619         {
4620                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:                                            return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
4621                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:                      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
4622                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:                       return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
4623                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:                         return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
4624                 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";
4625                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:                                     return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
4626                 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";
4627                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:                                        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
4628                 default:                                                                                                                        return DE_NULL;
4629         }
4630 }
4631
4632 const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
4633 {
4634         switch (value)
4635         {
4636                 case STD_VIDEO_H264_CABAC_INIT_IDC_0:           return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
4637                 case STD_VIDEO_H264_CABAC_INIT_IDC_1:           return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
4638                 case STD_VIDEO_H264_CABAC_INIT_IDC_2:           return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
4639                 case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:     return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
4640                 default:                                                                        return DE_NULL;
4641         }
4642 }
4643
4644 const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
4645 {
4646         switch (value)
4647         {
4648                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:     return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
4649                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
4650                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
4651                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
4652                 default:                                                                                                        return DE_NULL;
4653         }
4654 }
4655
4656 const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
4657 {
4658         switch (value)
4659         {
4660                 case STD_VIDEO_H264_SLICE_TYPE_P:               return "STD_VIDEO_H264_SLICE_TYPE_P";
4661                 case STD_VIDEO_H264_SLICE_TYPE_B:               return "STD_VIDEO_H264_SLICE_TYPE_B";
4662                 case STD_VIDEO_H264_SLICE_TYPE_I:               return "STD_VIDEO_H264_SLICE_TYPE_I";
4663                 case STD_VIDEO_H264_SLICE_TYPE_INVALID: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
4664                 default:                                                                return DE_NULL;
4665         }
4666 }
4667
4668 const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
4669 {
4670         switch (value)
4671         {
4672                 case STD_VIDEO_H264_PICTURE_TYPE_P:                     return "STD_VIDEO_H264_PICTURE_TYPE_P";
4673                 case STD_VIDEO_H264_PICTURE_TYPE_B:                     return "STD_VIDEO_H264_PICTURE_TYPE_B";
4674                 case STD_VIDEO_H264_PICTURE_TYPE_I:                     return "STD_VIDEO_H264_PICTURE_TYPE_I";
4675                 case STD_VIDEO_H264_PICTURE_TYPE_IDR:           return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
4676                 case STD_VIDEO_H264_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
4677                 default:                                                                        return DE_NULL;
4678         }
4679 }
4680
4681 const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
4682 {
4683         switch (value)
4684         {
4685                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
4686                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
4687                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
4688                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:                   return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
4689                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
4690                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:    return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
4691                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:                 return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
4692                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:                  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
4693                 default:                                                                                                return DE_NULL;
4694         }
4695 }
4696
4697 const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
4698 {
4699         switch (value)
4700         {
4701                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:               return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
4702                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:    return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
4703                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:   return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
4704                 default:                                                                                                return DE_NULL;
4705         }
4706 }
4707
4708 const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
4709 {
4710         switch (value)
4711         {
4712                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
4713                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
4714                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
4715                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
4716                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
4717                 default:                                                                                        return DE_NULL;
4718         }
4719 }
4720
4721 const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
4722 {
4723         switch (value)
4724         {
4725                 case STD_VIDEO_H265_PROFILE_IDC_MAIN:                                           return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
4726                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:                                        return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
4727                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:                     return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
4728                 case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:        return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
4729                 case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:                         return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
4730                 case STD_VIDEO_H265_PROFILE_IDC_INVALID:                                        return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
4731                 default:                                                                                                        return DE_NULL;
4732         }
4733 }
4734
4735 const char* getdVideoH265LevelIdcName (StdVideoH265LevelIdc value)
4736 {
4737         switch (value)
4738         {
4739                 case STD_VIDEO_H265_LEVEL_IDC_1_0:              return "STD_VIDEO_H265_LEVEL_IDC_1_0";
4740                 case STD_VIDEO_H265_LEVEL_IDC_2_0:              return "STD_VIDEO_H265_LEVEL_IDC_2_0";
4741                 case STD_VIDEO_H265_LEVEL_IDC_2_1:              return "STD_VIDEO_H265_LEVEL_IDC_2_1";
4742                 case STD_VIDEO_H265_LEVEL_IDC_3_0:              return "STD_VIDEO_H265_LEVEL_IDC_3_0";
4743                 case STD_VIDEO_H265_LEVEL_IDC_3_1:              return "STD_VIDEO_H265_LEVEL_IDC_3_1";
4744                 case STD_VIDEO_H265_LEVEL_IDC_4_0:              return "STD_VIDEO_H265_LEVEL_IDC_4_0";
4745                 case STD_VIDEO_H265_LEVEL_IDC_4_1:              return "STD_VIDEO_H265_LEVEL_IDC_4_1";
4746                 case STD_VIDEO_H265_LEVEL_IDC_5_0:              return "STD_VIDEO_H265_LEVEL_IDC_5_0";
4747                 case STD_VIDEO_H265_LEVEL_IDC_5_1:              return "STD_VIDEO_H265_LEVEL_IDC_5_1";
4748                 case STD_VIDEO_H265_LEVEL_IDC_5_2:              return "STD_VIDEO_H265_LEVEL_IDC_5_2";
4749                 case STD_VIDEO_H265_LEVEL_IDC_6_0:              return "STD_VIDEO_H265_LEVEL_IDC_6_0";
4750                 case STD_VIDEO_H265_LEVEL_IDC_6_1:              return "STD_VIDEO_H265_LEVEL_IDC_6_1";
4751                 case STD_VIDEO_H265_LEVEL_IDC_6_2:              return "STD_VIDEO_H265_LEVEL_IDC_6_2";
4752                 case STD_VIDEO_H265_LEVEL_IDC_INVALID:  return "STD_VIDEO_H265_LEVEL_IDC_INVALID";
4753                 default:                                                                return DE_NULL;
4754         }
4755 }
4756
4757 const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
4758 {
4759         switch (value)
4760         {
4761                 case STD_VIDEO_H265_SLICE_TYPE_B:               return "STD_VIDEO_H265_SLICE_TYPE_B";
4762                 case STD_VIDEO_H265_SLICE_TYPE_P:               return "STD_VIDEO_H265_SLICE_TYPE_P";
4763                 case STD_VIDEO_H265_SLICE_TYPE_I:               return "STD_VIDEO_H265_SLICE_TYPE_I";
4764                 case STD_VIDEO_H265_SLICE_TYPE_INVALID: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
4765                 default:                                                                return DE_NULL;
4766         }
4767 }
4768
4769 const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
4770 {
4771         switch (value)
4772         {
4773                 case STD_VIDEO_H265_PICTURE_TYPE_P:                     return "STD_VIDEO_H265_PICTURE_TYPE_P";
4774                 case STD_VIDEO_H265_PICTURE_TYPE_B:                     return "STD_VIDEO_H265_PICTURE_TYPE_B";
4775                 case STD_VIDEO_H265_PICTURE_TYPE_I:                     return "STD_VIDEO_H265_PICTURE_TYPE_I";
4776                 case STD_VIDEO_H265_PICTURE_TYPE_IDR:           return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
4777                 case STD_VIDEO_H265_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
4778                 default:                                                                        return DE_NULL;
4779         }
4780 }
4781
4782 const char* getdVideoH265AspectRatioIdcName (StdVideoH265AspectRatioIdc value)
4783 {
4784         switch (value)
4785         {
4786                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED";
4787                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE";
4788                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11";
4789                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11";
4790                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11";
4791                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33";
4792                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11";
4793                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11";
4794                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11";
4795                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33";
4796                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11";
4797                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11";
4798                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33";
4799                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99";
4800                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3";
4801                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2";
4802                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1";
4803                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR";
4804                 case STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID";
4805                 default:                                                                                        return DE_NULL;
4806         }
4807 }
4808
4809 tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4810 {
4811         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4812 }
4813
4814 tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4815 {
4816         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4817 }
4818
4819 tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4820 {
4821         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4822 }
4823
4824 tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4825 {
4826         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4827 }
4828
4829 tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4830 {
4831         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4832 }
4833
4834 tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4835 {
4836         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4837 }
4838
4839 tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4840 {
4841         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4842 }
4843
4844 tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4845 {
4846         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4847 }
4848
4849 tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4850 {
4851         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4852 }
4853
4854 tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4855 {
4856         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4857 }
4858
4859 tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4860 {
4861         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4862 }
4863
4864 tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
4865 {
4866         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4867 }
4868
4869 tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4870 {
4871         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4872 }
4873
4874 tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4875 {
4876         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4877 }
4878
4879 tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
4880 {
4881         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4882 }
4883
4884 tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4885 {
4886         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4887 }
4888
4889 tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
4890 {
4891         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4892 }
4893
4894 tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
4895 {
4896         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4897 }
4898
4899 tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
4900 {
4901         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4902 }
4903
4904 tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
4905 {
4906         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4907 }
4908
4909 tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
4910 {
4911         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4912 }
4913
4914 tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4915 {
4916         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4917 }
4918
4919 tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4920 {
4921         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4922 }
4923
4924 tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4925 {
4926         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4927 }
4928
4929 tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4930 {
4931         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4932 }
4933
4934 tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4935 {
4936         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4937 }
4938
4939 tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4940 {
4941         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4942 }
4943
4944 tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4945 {
4946         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4947 }
4948
4949 tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4950 {
4951         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4952 }
4953
4954 tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
4955 {
4956         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4957 }
4958
4959 tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4960 {
4961         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4962 }
4963
4964 tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4965 {
4966         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4967 }
4968
4969 tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4970 {
4971         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4972 }
4973
4974 tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4975 {
4976         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4977 }
4978
4979 tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4980 {
4981         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4982 }
4983
4984 tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4985 {
4986         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4987 }
4988
4989 tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
4990 {
4991         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4992 }
4993
4994 tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4995 {
4996         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4997 }
4998
4999 tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
5000 {
5001         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5002 }
5003
5004 tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
5005 {
5006         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5007 }
5008
5009 tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
5010 {
5011         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5012 }
5013
5014 tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
5015 {
5016         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5017 }
5018
5019 tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
5020 {
5021         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5022 }
5023
5024 tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
5025 {
5026         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5027 }
5028
5029 tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
5030 {
5031         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5032 }
5033
5034 tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
5035 {
5036         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5037 }
5038
5039 tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
5040 {
5041         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5042 }
5043
5044 tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
5045 {
5046         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5047 }
5048
5049 tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
5050 {
5051         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5052 }
5053
5054 tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
5055 {
5056         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5057 }
5058
5059 tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
5060 {
5061         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5062 }
5063
5064 tcu::Format::Bitfield<32> getVideoSessionParametersCreateFlagsKHRStr (VkVideoSessionParametersCreateFlagsKHR value)
5065 {
5066         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5067 }
5068
5069 tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
5070 {
5071         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5072 }
5073
5074 tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
5075 {
5076         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5077 }
5078
5079 tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
5080 {
5081         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5082 }
5083
5084 tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
5085 {
5086         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5087 }
5088
5089 tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
5090 {
5091         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
5092 }
5093
5094 std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
5095 {
5096         s << "VkBaseOutStructure = {\n";
5097         s << "\tsType = " << value.sType << '\n';
5098         s << "\tpNext = " << value.pNext << '\n';
5099         s << '}';
5100         return s;
5101 }
5102
5103 std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
5104 {
5105         s << "VkBaseInStructure = {\n";
5106         s << "\tsType = " << value.sType << '\n';
5107         s << "\tpNext = " << value.pNext << '\n';
5108         s << '}';
5109         return s;
5110 }
5111
5112 std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
5113 {
5114         s << "VkOffset2D = {\n";
5115         s << "\tx = " << value.x << '\n';
5116         s << "\ty = " << value.y << '\n';
5117         s << '}';
5118         return s;
5119 }
5120
5121 std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
5122 {
5123         s << "VkOffset3D = {\n";
5124         s << "\tx = " << value.x << '\n';
5125         s << "\ty = " << value.y << '\n';
5126         s << "\tz = " << value.z << '\n';
5127         s << '}';
5128         return s;
5129 }
5130
5131 std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
5132 {
5133         s << "VkExtent2D = {\n";
5134         s << "\twidth = " << value.width << '\n';
5135         s << "\theight = " << value.height << '\n';
5136         s << '}';
5137         return s;
5138 }
5139
5140 std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
5141 {
5142         s << "VkExtent3D = {\n";
5143         s << "\twidth = " << value.width << '\n';
5144         s << "\theight = " << value.height << '\n';
5145         s << "\tdepth = " << value.depth << '\n';
5146         s << '}';
5147         return s;
5148 }
5149
5150 std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5151 {
5152         s << "VkViewport = {\n";
5153         s << "\tx = " << value.x << '\n';
5154         s << "\ty = " << value.y << '\n';
5155         s << "\twidth = " << value.width << '\n';
5156         s << "\theight = " << value.height << '\n';
5157         s << "\tminDepth = " << value.minDepth << '\n';
5158         s << "\tmaxDepth = " << value.maxDepth << '\n';
5159         s << '}';
5160         return s;
5161 }
5162
5163 std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
5164 {
5165         s << "VkRect2D = {\n";
5166         s << "\toffset = " << value.offset << '\n';
5167         s << "\textent = " << value.extent << '\n';
5168         s << '}';
5169         return s;
5170 }
5171
5172 std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
5173 {
5174         s << "VkClearRect = {\n";
5175         s << "\trect = " << value.rect << '\n';
5176         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5177         s << "\tlayerCount = " << value.layerCount << '\n';
5178         s << '}';
5179         return s;
5180 }
5181
5182 std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5183 {
5184         s << "VkComponentMapping = {\n";
5185         s << "\tr = " << value.r << '\n';
5186         s << "\tg = " << value.g << '\n';
5187         s << "\tb = " << value.b << '\n';
5188         s << "\ta = " << value.a << '\n';
5189         s << '}';
5190         return s;
5191 }
5192
5193 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
5194 {
5195         s << "VkPhysicalDeviceProperties = {\n";
5196         s << "\tapiVersion = " << value.apiVersion << '\n';
5197         s << "\tdriverVersion = " << value.driverVersion << '\n';
5198         s << "\tvendorID = " << value.vendorID << '\n';
5199         s << "\tdeviceID = " << value.deviceID << '\n';
5200         s << "\tdeviceType = " << value.deviceType << '\n';
5201         s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
5202         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';
5203         s << "\tlimits = " << value.limits << '\n';
5204         s << "\tsparseProperties = " << value.sparseProperties << '\n';
5205         s << '}';
5206         return s;
5207 }
5208
5209 std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
5210 {
5211         s << "VkExtensionProperties = {\n";
5212         s << "\textensionName = " << (const char*)value.extensionName << '\n';
5213         s << "\tspecVersion = " << value.specVersion << '\n';
5214         s << '}';
5215         return s;
5216 }
5217
5218 std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
5219 {
5220         s << "VkLayerProperties = {\n";
5221         s << "\tlayerName = " << (const char*)value.layerName << '\n';
5222         s << "\tspecVersion = " << value.specVersion << '\n';
5223         s << "\timplementationVersion = " << value.implementationVersion << '\n';
5224         s << "\tdescription = " << (const char*)value.description << '\n';
5225         s << '}';
5226         return s;
5227 }
5228
5229 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
5230 {
5231         s << "VkApplicationInfo = {\n";
5232         s << "\tsType = " << value.sType << '\n';
5233         s << "\tpNext = " << value.pNext << '\n';
5234         s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
5235         s << "\tapplicationVersion = " << value.applicationVersion << '\n';
5236         s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
5237         s << "\tengineVersion = " << value.engineVersion << '\n';
5238         s << "\tapiVersion = " << value.apiVersion << '\n';
5239         s << '}';
5240         return s;
5241 }
5242
5243 std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
5244 {
5245         s << "VkAllocationCallbacks = {\n";
5246         s << "\tpUserData = " << value.pUserData << '\n';
5247         s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
5248         s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
5249         s << "\tpfnFree = " << value.pfnFree << '\n';
5250         s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
5251         s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
5252         s << '}';
5253         return s;
5254 }
5255
5256 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
5257 {
5258         s << "VkDeviceQueueCreateInfo = {\n";
5259         s << "\tsType = " << value.sType << '\n';
5260         s << "\tpNext = " << value.pNext << '\n';
5261         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
5262         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5263         s << "\tqueueCount = " << value.queueCount << '\n';
5264         s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
5265         s << '}';
5266         return s;
5267 }
5268
5269 std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
5270 {
5271         s << "VkDeviceCreateInfo = {\n";
5272         s << "\tsType = " << value.sType << '\n';
5273         s << "\tpNext = " << value.pNext << '\n';
5274         s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
5275         s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
5276         s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
5277         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5278         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5279         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5280         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5281         s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
5282         s << '}';
5283         return s;
5284 }
5285
5286 std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
5287 {
5288         s << "VkInstanceCreateInfo = {\n";
5289         s << "\tsType = " << value.sType << '\n';
5290         s << "\tpNext = " << value.pNext << '\n';
5291         s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
5292         s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
5293         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5294         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5295         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5296         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5297         s << '}';
5298         return s;
5299 }
5300
5301 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
5302 {
5303         s << "VkQueueFamilyProperties = {\n";
5304         s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
5305         s << "\tqueueCount = " << value.queueCount << '\n';
5306         s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
5307         s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5308         s << '}';
5309         return s;
5310 }
5311
5312 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5313 {
5314         s << "VkPhysicalDeviceMemoryProperties = {\n";
5315         s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5316         s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5317         s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5318         s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5319         s << '}';
5320         return s;
5321 }
5322
5323 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5324 {
5325         s << "VkMemoryAllocateInfo = {\n";
5326         s << "\tsType = " << value.sType << '\n';
5327         s << "\tpNext = " << value.pNext << '\n';
5328         s << "\tallocationSize = " << value.allocationSize << '\n';
5329         s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5330         s << '}';
5331         return s;
5332 }
5333
5334 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5335 {
5336         s << "VkMemoryRequirements = {\n";
5337         s << "\tsize = " << value.size << '\n';
5338         s << "\talignment = " << value.alignment << '\n';
5339         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5340         s << '}';
5341         return s;
5342 }
5343
5344 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5345 {
5346         s << "VkSparseImageFormatProperties = {\n";
5347         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5348         s << "\timageGranularity = " << value.imageGranularity << '\n';
5349         s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5350         s << '}';
5351         return s;
5352 }
5353
5354 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5355 {
5356         s << "VkSparseImageMemoryRequirements = {\n";
5357         s << "\tformatProperties = " << value.formatProperties << '\n';
5358         s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5359         s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5360         s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5361         s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5362         s << '}';
5363         return s;
5364 }
5365
5366 std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
5367 {
5368         s << "VkMemoryType = {\n";
5369         s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
5370         s << "\theapIndex = " << value.heapIndex << '\n';
5371         s << '}';
5372         return s;
5373 }
5374
5375 std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
5376 {
5377         s << "VkMemoryHeap = {\n";
5378         s << "\tsize = " << value.size << '\n';
5379         s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
5380         s << '}';
5381         return s;
5382 }
5383
5384 std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
5385 {
5386         s << "VkMappedMemoryRange = {\n";
5387         s << "\tsType = " << value.sType << '\n';
5388         s << "\tpNext = " << value.pNext << '\n';
5389         s << "\tmemory = " << value.memory << '\n';
5390         s << "\toffset = " << value.offset << '\n';
5391         s << "\tsize = " << value.size << '\n';
5392         s << '}';
5393         return s;
5394 }
5395
5396 std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
5397 {
5398         s << "VkFormatProperties = {\n";
5399         s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
5400         s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
5401         s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
5402         s << '}';
5403         return s;
5404 }
5405
5406 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
5407 {
5408         s << "VkImageFormatProperties = {\n";
5409         s << "\tmaxExtent = " << value.maxExtent << '\n';
5410         s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
5411         s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
5412         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
5413         s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
5414         s << '}';
5415         return s;
5416 }
5417
5418 std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5419 {
5420         s << "VkDescriptorBufferInfo = {\n";
5421         s << "\tbuffer = " << value.buffer << '\n';
5422         s << "\toffset = " << value.offset << '\n';
5423         s << "\trange = " << value.range << '\n';
5424         s << '}';
5425         return s;
5426 }
5427
5428 std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5429 {
5430         s << "VkDescriptorImageInfo = {\n";
5431         s << "\tsampler = " << value.sampler << '\n';
5432         s << "\timageView = " << value.imageView << '\n';
5433         s << "\timageLayout = " << value.imageLayout << '\n';
5434         s << '}';
5435         return s;
5436 }
5437
5438 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5439 {
5440         s << "VkWriteDescriptorSet = {\n";
5441         s << "\tsType = " << value.sType << '\n';
5442         s << "\tpNext = " << value.pNext << '\n';
5443         s << "\tdstSet = " << value.dstSet << '\n';
5444         s << "\tdstBinding = " << value.dstBinding << '\n';
5445         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5446         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5447         s << "\tdescriptorType = " << value.descriptorType << '\n';
5448         s << "\tpImageInfo = " << value.pImageInfo << '\n';
5449         s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5450         s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5451         s << '}';
5452         return s;
5453 }
5454
5455 std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5456 {
5457         s << "VkCopyDescriptorSet = {\n";
5458         s << "\tsType = " << value.sType << '\n';
5459         s << "\tpNext = " << value.pNext << '\n';
5460         s << "\tsrcSet = " << value.srcSet << '\n';
5461         s << "\tsrcBinding = " << value.srcBinding << '\n';
5462         s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5463         s << "\tdstSet = " << value.dstSet << '\n';
5464         s << "\tdstBinding = " << value.dstBinding << '\n';
5465         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5466         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5467         s << '}';
5468         return s;
5469 }
5470
5471 std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5472 {
5473         s << "VkBufferCreateInfo = {\n";
5474         s << "\tsType = " << value.sType << '\n';
5475         s << "\tpNext = " << value.pNext << '\n';
5476         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5477         s << "\tsize = " << value.size << '\n';
5478         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5479         s << "\tsharingMode = " << value.sharingMode << '\n';
5480         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5481         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5482         s << '}';
5483         return s;
5484 }
5485
5486 std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5487 {
5488         s << "VkBufferViewCreateInfo = {\n";
5489         s << "\tsType = " << value.sType << '\n';
5490         s << "\tpNext = " << value.pNext << '\n';
5491         s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5492         s << "\tbuffer = " << value.buffer << '\n';
5493         s << "\tformat = " << value.format << '\n';
5494         s << "\toffset = " << value.offset << '\n';
5495         s << "\trange = " << value.range << '\n';
5496         s << '}';
5497         return s;
5498 }
5499
5500 std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5501 {
5502         s << "VkImageSubresource = {\n";
5503         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5504         s << "\tmipLevel = " << value.mipLevel << '\n';
5505         s << "\tarrayLayer = " << value.arrayLayer << '\n';
5506         s << '}';
5507         return s;
5508 }
5509
5510 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
5511 {
5512         s << "VkImageSubresourceLayers = {\n";
5513         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5514         s << "\tmipLevel = " << value.mipLevel << '\n';
5515         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5516         s << "\tlayerCount = " << value.layerCount << '\n';
5517         s << '}';
5518         return s;
5519 }
5520
5521 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
5522 {
5523         s << "VkImageSubresourceRange = {\n";
5524         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5525         s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
5526         s << "\tlevelCount = " << value.levelCount << '\n';
5527         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5528         s << "\tlayerCount = " << value.layerCount << '\n';
5529         s << '}';
5530         return s;
5531 }
5532
5533 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
5534 {
5535         s << "VkMemoryBarrier = {\n";
5536         s << "\tsType = " << value.sType << '\n';
5537         s << "\tpNext = " << value.pNext << '\n';
5538         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5539         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5540         s << '}';
5541         return s;
5542 }
5543
5544 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
5545 {
5546         s << "VkBufferMemoryBarrier = {\n";
5547         s << "\tsType = " << value.sType << '\n';
5548         s << "\tpNext = " << value.pNext << '\n';
5549         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5550         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5551         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5552         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5553         s << "\tbuffer = " << value.buffer << '\n';
5554         s << "\toffset = " << value.offset << '\n';
5555         s << "\tsize = " << value.size << '\n';
5556         s << '}';
5557         return s;
5558 }
5559
5560 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
5561 {
5562         s << "VkImageMemoryBarrier = {\n";
5563         s << "\tsType = " << value.sType << '\n';
5564         s << "\tpNext = " << value.pNext << '\n';
5565         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5566         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5567         s << "\toldLayout = " << value.oldLayout << '\n';
5568         s << "\tnewLayout = " << value.newLayout << '\n';
5569         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5570         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5571         s << "\timage = " << value.image << '\n';
5572         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5573         s << '}';
5574         return s;
5575 }
5576
5577 std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5578 {
5579         s << "VkImageCreateInfo = {\n";
5580         s << "\tsType = " << value.sType << '\n';
5581         s << "\tpNext = " << value.pNext << '\n';
5582         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5583         s << "\timageType = " << value.imageType << '\n';
5584         s << "\tformat = " << value.format << '\n';
5585         s << "\textent = " << value.extent << '\n';
5586         s << "\tmipLevels = " << value.mipLevels << '\n';
5587         s << "\tarrayLayers = " << value.arrayLayers << '\n';
5588         s << "\tsamples = " << value.samples << '\n';
5589         s << "\ttiling = " << value.tiling << '\n';
5590         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5591         s << "\tsharingMode = " << value.sharingMode << '\n';
5592         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5593         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5594         s << "\tinitialLayout = " << value.initialLayout << '\n';
5595         s << '}';
5596         return s;
5597 }
5598
5599 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5600 {
5601         s << "VkSubresourceLayout = {\n";
5602         s << "\toffset = " << value.offset << '\n';
5603         s << "\tsize = " << value.size << '\n';
5604         s << "\trowPitch = " << value.rowPitch << '\n';
5605         s << "\tarrayPitch = " << value.arrayPitch << '\n';
5606         s << "\tdepthPitch = " << value.depthPitch << '\n';
5607         s << '}';
5608         return s;
5609 }
5610
5611 std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5612 {
5613         s << "VkImageViewCreateInfo = {\n";
5614         s << "\tsType = " << value.sType << '\n';
5615         s << "\tpNext = " << value.pNext << '\n';
5616         s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5617         s << "\timage = " << value.image << '\n';
5618         s << "\tviewType = " << value.viewType << '\n';
5619         s << "\tformat = " << value.format << '\n';
5620         s << "\tcomponents = " << value.components << '\n';
5621         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5622         s << '}';
5623         return s;
5624 }
5625
5626 std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
5627 {
5628         s << "VkBufferCopy = {\n";
5629         s << "\tsrcOffset = " << value.srcOffset << '\n';
5630         s << "\tdstOffset = " << value.dstOffset << '\n';
5631         s << "\tsize = " << value.size << '\n';
5632         s << '}';
5633         return s;
5634 }
5635
5636 std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5637 {
5638         s << "VkSparseMemoryBind = {\n";
5639         s << "\tresourceOffset = " << value.resourceOffset << '\n';
5640         s << "\tsize = " << value.size << '\n';
5641         s << "\tmemory = " << value.memory << '\n';
5642         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5643         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5644         s << '}';
5645         return s;
5646 }
5647
5648 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5649 {
5650         s << "VkSparseImageMemoryBind = {\n";
5651         s << "\tsubresource = " << value.subresource << '\n';
5652         s << "\toffset = " << value.offset << '\n';
5653         s << "\textent = " << value.extent << '\n';
5654         s << "\tmemory = " << value.memory << '\n';
5655         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5656         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5657         s << '}';
5658         return s;
5659 }
5660
5661 std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5662 {
5663         s << "VkSparseBufferMemoryBindInfo = {\n";
5664         s << "\tbuffer = " << value.buffer << '\n';
5665         s << "\tbindCount = " << value.bindCount << '\n';
5666         s << "\tpBinds = " << value.pBinds << '\n';
5667         s << '}';
5668         return s;
5669 }
5670
5671 std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5672 {
5673         s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5674         s << "\timage = " << value.image << '\n';
5675         s << "\tbindCount = " << value.bindCount << '\n';
5676         s << "\tpBinds = " << value.pBinds << '\n';
5677         s << '}';
5678         return s;
5679 }
5680
5681 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5682 {
5683         s << "VkSparseImageMemoryBindInfo = {\n";
5684         s << "\timage = " << value.image << '\n';
5685         s << "\tbindCount = " << value.bindCount << '\n';
5686         s << "\tpBinds = " << value.pBinds << '\n';
5687         s << '}';
5688         return s;
5689 }
5690
5691 std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5692 {
5693         s << "VkBindSparseInfo = {\n";
5694         s << "\tsType = " << value.sType << '\n';
5695         s << "\tpNext = " << value.pNext << '\n';
5696         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5697         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5698         s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5699         s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5700         s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5701         s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5702         s << "\timageBindCount = " << value.imageBindCount << '\n';
5703         s << "\tpImageBinds = " << value.pImageBinds << '\n';
5704         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5705         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5706         s << '}';
5707         return s;
5708 }
5709
5710 std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
5711 {
5712         s << "VkImageCopy = {\n";
5713         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5714         s << "\tsrcOffset = " << value.srcOffset << '\n';
5715         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5716         s << "\tdstOffset = " << value.dstOffset << '\n';
5717         s << "\textent = " << value.extent << '\n';
5718         s << '}';
5719         return s;
5720 }
5721
5722 std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
5723 {
5724         s << "VkImageBlit = {\n";
5725         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5726         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
5727         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5728         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
5729         s << '}';
5730         return s;
5731 }
5732
5733 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
5734 {
5735         s << "VkBufferImageCopy = {\n";
5736         s << "\tbufferOffset = " << value.bufferOffset << '\n';
5737         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5738         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5739         s << "\timageSubresource = " << value.imageSubresource << '\n';
5740         s << "\timageOffset = " << value.imageOffset << '\n';
5741         s << "\timageExtent = " << value.imageExtent << '\n';
5742         s << '}';
5743         return s;
5744 }
5745
5746 std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
5747 {
5748         s << "VkImageResolve = {\n";
5749         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5750         s << "\tsrcOffset = " << value.srcOffset << '\n';
5751         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5752         s << "\tdstOffset = " << value.dstOffset << '\n';
5753         s << "\textent = " << value.extent << '\n';
5754         s << '}';
5755         return s;
5756 }
5757
5758 std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5759 {
5760         s << "VkShaderModuleCreateInfo = {\n";
5761         s << "\tsType = " << value.sType << '\n';
5762         s << "\tpNext = " << value.pNext << '\n';
5763         s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5764         s << "\tcodeSize = " << value.codeSize << '\n';
5765         s << "\tpCode = " << value.pCode << '\n';
5766         s << '}';
5767         return s;
5768 }
5769
5770 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5771 {
5772         s << "VkDescriptorSetLayoutBinding = {\n";
5773         s << "\tbinding = " << value.binding << '\n';
5774         s << "\tdescriptorType = " << value.descriptorType << '\n';
5775         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5776         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5777         s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5778         s << '}';
5779         return s;
5780 }
5781
5782 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5783 {
5784         s << "VkDescriptorSetLayoutCreateInfo = {\n";
5785         s << "\tsType = " << value.sType << '\n';
5786         s << "\tpNext = " << value.pNext << '\n';
5787         s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5788         s << "\tbindingCount = " << value.bindingCount << '\n';
5789         s << "\tpBindings = " << value.pBindings << '\n';
5790         s << '}';
5791         return s;
5792 }
5793
5794 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5795 {
5796         s << "VkDescriptorPoolSize = {\n";
5797         s << "\ttype = " << value.type << '\n';
5798         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5799         s << '}';
5800         return s;
5801 }
5802
5803 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5804 {
5805         s << "VkDescriptorPoolCreateInfo = {\n";
5806         s << "\tsType = " << value.sType << '\n';
5807         s << "\tpNext = " << value.pNext << '\n';
5808         s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5809         s << "\tmaxSets = " << value.maxSets << '\n';
5810         s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5811         s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5812         s << '}';
5813         return s;
5814 }
5815
5816 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5817 {
5818         s << "VkDescriptorSetAllocateInfo = {\n";
5819         s << "\tsType = " << value.sType << '\n';
5820         s << "\tpNext = " << value.pNext << '\n';
5821         s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5822         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5823         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5824         s << '}';
5825         return s;
5826 }
5827
5828 std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5829 {
5830         s << "VkSpecializationMapEntry = {\n";
5831         s << "\tconstantID = " << value.constantID << '\n';
5832         s << "\toffset = " << value.offset << '\n';
5833         s << "\tsize = " << value.size << '\n';
5834         s << '}';
5835         return s;
5836 }
5837
5838 std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5839 {
5840         s << "VkSpecializationInfo = {\n";
5841         s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5842         s << "\tpMapEntries = " << value.pMapEntries << '\n';
5843         s << "\tdataSize = " << value.dataSize << '\n';
5844         s << "\tpData = " << value.pData << '\n';
5845         s << '}';
5846         return s;
5847 }
5848
5849 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5850 {
5851         s << "VkPipelineShaderStageCreateInfo = {\n";
5852         s << "\tsType = " << value.sType << '\n';
5853         s << "\tpNext = " << value.pNext << '\n';
5854         s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5855         s << "\tstage = " << value.stage << '\n';
5856         s << "\tmodule = " << value.module << '\n';
5857         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5858         s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5859         s << '}';
5860         return s;
5861 }
5862
5863 std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5864 {
5865         s << "VkComputePipelineCreateInfo = {\n";
5866         s << "\tsType = " << value.sType << '\n';
5867         s << "\tpNext = " << value.pNext << '\n';
5868         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5869         s << "\tstage = " << value.stage << '\n';
5870         s << "\tlayout = " << value.layout << '\n';
5871         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5872         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5873         s << '}';
5874         return s;
5875 }
5876
5877 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5878 {
5879         s << "VkVertexInputBindingDescription = {\n";
5880         s << "\tbinding = " << value.binding << '\n';
5881         s << "\tstride = " << value.stride << '\n';
5882         s << "\tinputRate = " << value.inputRate << '\n';
5883         s << '}';
5884         return s;
5885 }
5886
5887 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5888 {
5889         s << "VkVertexInputAttributeDescription = {\n";
5890         s << "\tlocation = " << value.location << '\n';
5891         s << "\tbinding = " << value.binding << '\n';
5892         s << "\tformat = " << value.format << '\n';
5893         s << "\toffset = " << value.offset << '\n';
5894         s << '}';
5895         return s;
5896 }
5897
5898 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5899 {
5900         s << "VkPipelineVertexInputStateCreateInfo = {\n";
5901         s << "\tsType = " << value.sType << '\n';
5902         s << "\tpNext = " << value.pNext << '\n';
5903         s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5904         s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5905         s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5906         s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5907         s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5908         s << '}';
5909         return s;
5910 }
5911
5912 std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5913 {
5914         s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5915         s << "\tsType = " << value.sType << '\n';
5916         s << "\tpNext = " << value.pNext << '\n';
5917         s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5918         s << "\ttopology = " << value.topology << '\n';
5919         s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5920         s << '}';
5921         return s;
5922 }
5923
5924 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5925 {
5926         s << "VkPipelineTessellationStateCreateInfo = {\n";
5927         s << "\tsType = " << value.sType << '\n';
5928         s << "\tpNext = " << value.pNext << '\n';
5929         s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5930         s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5931         s << '}';
5932         return s;
5933 }
5934
5935 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5936 {
5937         s << "VkPipelineViewportStateCreateInfo = {\n";
5938         s << "\tsType = " << value.sType << '\n';
5939         s << "\tpNext = " << value.pNext << '\n';
5940         s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5941         s << "\tviewportCount = " << value.viewportCount << '\n';
5942         s << "\tpViewports = " << value.pViewports << '\n';
5943         s << "\tscissorCount = " << value.scissorCount << '\n';
5944         s << "\tpScissors = " << value.pScissors << '\n';
5945         s << '}';
5946         return s;
5947 }
5948
5949 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5950 {
5951         s << "VkPipelineRasterizationStateCreateInfo = {\n";
5952         s << "\tsType = " << value.sType << '\n';
5953         s << "\tpNext = " << value.pNext << '\n';
5954         s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5955         s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5956         s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5957         s << "\tpolygonMode = " << value.polygonMode << '\n';
5958         s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5959         s << "\tfrontFace = " << value.frontFace << '\n';
5960         s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5961         s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5962         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5963         s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5964         s << "\tlineWidth = " << value.lineWidth << '\n';
5965         s << '}';
5966         return s;
5967 }
5968
5969 std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5970 {
5971         s << "VkPipelineMultisampleStateCreateInfo = {\n";
5972         s << "\tsType = " << value.sType << '\n';
5973         s << "\tpNext = " << value.pNext << '\n';
5974         s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5975         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5976         s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5977         s << "\tminSampleShading = " << value.minSampleShading << '\n';
5978         s << "\tpSampleMask = " << value.pSampleMask << '\n';
5979         s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5980         s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5981         s << '}';
5982         return s;
5983 }
5984
5985 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5986 {
5987         s << "VkPipelineColorBlendAttachmentState = {\n";
5988         s << "\tblendEnable = " << value.blendEnable << '\n';
5989         s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5990         s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5991         s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5992         s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5993         s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5994         s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5995         s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5996         s << '}';
5997         return s;
5998 }
5999
6000 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
6001 {
6002         s << "VkPipelineColorBlendStateCreateInfo = {\n";
6003         s << "\tsType = " << value.sType << '\n';
6004         s << "\tpNext = " << value.pNext << '\n';
6005         s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
6006         s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
6007         s << "\tlogicOp = " << value.logicOp << '\n';
6008         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6009         s << "\tpAttachments = " << value.pAttachments << '\n';
6010         s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
6011         s << '}';
6012         return s;
6013 }
6014
6015 std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
6016 {
6017         s << "VkPipelineDynamicStateCreateInfo = {\n";
6018         s << "\tsType = " << value.sType << '\n';
6019         s << "\tpNext = " << value.pNext << '\n';
6020         s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
6021         s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
6022         s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
6023         s << '}';
6024         return s;
6025 }
6026
6027 std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
6028 {
6029         s << "VkStencilOpState = {\n";
6030         s << "\tfailOp = " << value.failOp << '\n';
6031         s << "\tpassOp = " << value.passOp << '\n';
6032         s << "\tdepthFailOp = " << value.depthFailOp << '\n';
6033         s << "\tcompareOp = " << value.compareOp << '\n';
6034         s << "\tcompareMask = " << value.compareMask << '\n';
6035         s << "\twriteMask = " << value.writeMask << '\n';
6036         s << "\treference = " << value.reference << '\n';
6037         s << '}';
6038         return s;
6039 }
6040
6041 std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
6042 {
6043         s << "VkPipelineDepthStencilStateCreateInfo = {\n";
6044         s << "\tsType = " << value.sType << '\n';
6045         s << "\tpNext = " << value.pNext << '\n';
6046         s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
6047         s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
6048         s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
6049         s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
6050         s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
6051         s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
6052         s << "\tfront = " << value.front << '\n';
6053         s << "\tback = " << value.back << '\n';
6054         s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
6055         s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
6056         s << '}';
6057         return s;
6058 }
6059
6060 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
6061 {
6062         s << "VkGraphicsPipelineCreateInfo = {\n";
6063         s << "\tsType = " << value.sType << '\n';
6064         s << "\tpNext = " << value.pNext << '\n';
6065         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
6066         s << "\tstageCount = " << value.stageCount << '\n';
6067         s << "\tpStages = " << value.pStages << '\n';
6068         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
6069         s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
6070         s << "\tpTessellationState = " << value.pTessellationState << '\n';
6071         s << "\tpViewportState = " << value.pViewportState << '\n';
6072         s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
6073         s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
6074         s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
6075         s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
6076         s << "\tpDynamicState = " << value.pDynamicState << '\n';
6077         s << "\tlayout = " << value.layout << '\n';
6078         s << "\trenderPass = " << value.renderPass << '\n';
6079         s << "\tsubpass = " << value.subpass << '\n';
6080         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
6081         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
6082         s << '}';
6083         return s;
6084 }
6085
6086 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
6087 {
6088         s << "VkPipelineCacheCreateInfo = {\n";
6089         s << "\tsType = " << value.sType << '\n';
6090         s << "\tpNext = " << value.pNext << '\n';
6091         s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
6092         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
6093         s << "\tpInitialData = " << value.pInitialData << '\n';
6094         s << '}';
6095         return s;
6096 }
6097
6098 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
6099 {
6100         s << "VkPipelineCacheHeaderVersionOne = {\n";
6101         s << "\theaderSize = " << value.headerSize << '\n';
6102         s << "\theaderVersion = " << value.headerVersion << '\n';
6103         s << "\tvendorID = " << value.vendorID << '\n';
6104         s << "\tdeviceID = " << value.deviceID << '\n';
6105         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';
6106         s << '}';
6107         return s;
6108 }
6109
6110 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
6111 {
6112         s << "VkPushConstantRange = {\n";
6113         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6114         s << "\toffset = " << value.offset << '\n';
6115         s << "\tsize = " << value.size << '\n';
6116         s << '}';
6117         return s;
6118 }
6119
6120 std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
6121 {
6122         s << "VkPipelineLayoutCreateInfo = {\n";
6123         s << "\tsType = " << value.sType << '\n';
6124         s << "\tpNext = " << value.pNext << '\n';
6125         s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
6126         s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
6127         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6128         s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
6129         s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
6130         s << '}';
6131         return s;
6132 }
6133
6134 std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
6135 {
6136         s << "VkSamplerCreateInfo = {\n";
6137         s << "\tsType = " << value.sType << '\n';
6138         s << "\tpNext = " << value.pNext << '\n';
6139         s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
6140         s << "\tmagFilter = " << value.magFilter << '\n';
6141         s << "\tminFilter = " << value.minFilter << '\n';
6142         s << "\tmipmapMode = " << value.mipmapMode << '\n';
6143         s << "\taddressModeU = " << value.addressModeU << '\n';
6144         s << "\taddressModeV = " << value.addressModeV << '\n';
6145         s << "\taddressModeW = " << value.addressModeW << '\n';
6146         s << "\tmipLodBias = " << value.mipLodBias << '\n';
6147         s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
6148         s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
6149         s << "\tcompareEnable = " << value.compareEnable << '\n';
6150         s << "\tcompareOp = " << value.compareOp << '\n';
6151         s << "\tminLod = " << value.minLod << '\n';
6152         s << "\tmaxLod = " << value.maxLod << '\n';
6153         s << "\tborderColor = " << value.borderColor << '\n';
6154         s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
6155         s << '}';
6156         return s;
6157 }
6158
6159 std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
6160 {
6161         s << "VkCommandPoolCreateInfo = {\n";
6162         s << "\tsType = " << value.sType << '\n';
6163         s << "\tpNext = " << value.pNext << '\n';
6164         s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
6165         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6166         s << '}';
6167         return s;
6168 }
6169
6170 std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
6171 {
6172         s << "VkCommandBufferAllocateInfo = {\n";
6173         s << "\tsType = " << value.sType << '\n';
6174         s << "\tpNext = " << value.pNext << '\n';
6175         s << "\tcommandPool = " << value.commandPool << '\n';
6176         s << "\tlevel = " << value.level << '\n';
6177         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6178         s << '}';
6179         return s;
6180 }
6181
6182 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
6183 {
6184         s << "VkCommandBufferInheritanceInfo = {\n";
6185         s << "\tsType = " << value.sType << '\n';
6186         s << "\tpNext = " << value.pNext << '\n';
6187         s << "\trenderPass = " << value.renderPass << '\n';
6188         s << "\tsubpass = " << value.subpass << '\n';
6189         s << "\tframebuffer = " << value.framebuffer << '\n';
6190         s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
6191         s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
6192         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6193         s << '}';
6194         return s;
6195 }
6196
6197 std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
6198 {
6199         s << "VkCommandBufferBeginInfo = {\n";
6200         s << "\tsType = " << value.sType << '\n';
6201         s << "\tpNext = " << value.pNext << '\n';
6202         s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
6203         s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
6204         s << '}';
6205         return s;
6206 }
6207
6208 std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
6209 {
6210         s << "VkRenderPassBeginInfo = {\n";
6211         s << "\tsType = " << value.sType << '\n';
6212         s << "\tpNext = " << value.pNext << '\n';
6213         s << "\trenderPass = " << value.renderPass << '\n';
6214         s << "\tframebuffer = " << value.framebuffer << '\n';
6215         s << "\trenderArea = " << value.renderArea << '\n';
6216         s << "\tclearValueCount = " << value.clearValueCount << '\n';
6217         s << "\tpClearValues = " << value.pClearValues << '\n';
6218         s << '}';
6219         return s;
6220 }
6221
6222 std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
6223 {
6224         s << "VkClearColorValue = {\n";
6225         s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
6226         s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
6227         s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
6228         s << '}';
6229         return s;
6230 }
6231
6232 std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
6233 {
6234         s << "VkClearDepthStencilValue = {\n";
6235         s << "\tdepth = " << value.depth << '\n';
6236         s << "\tstencil = " << value.stencil << '\n';
6237         s << '}';
6238         return s;
6239 }
6240
6241 std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
6242 {
6243         s << "VkClearValue = {\n";
6244         s << "\tcolor = " << value.color << '\n';
6245         s << "\tdepthStencil = " << value.depthStencil << '\n';
6246         s << '}';
6247         return s;
6248 }
6249
6250 std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
6251 {
6252         s << "VkClearAttachment = {\n";
6253         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6254         s << "\tcolorAttachment = " << value.colorAttachment << '\n';
6255         s << "\tclearValue = " << value.clearValue << '\n';
6256         s << '}';
6257         return s;
6258 }
6259
6260 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
6261 {
6262         s << "VkAttachmentDescription = {\n";
6263         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6264         s << "\tformat = " << value.format << '\n';
6265         s << "\tsamples = " << value.samples << '\n';
6266         s << "\tloadOp = " << value.loadOp << '\n';
6267         s << "\tstoreOp = " << value.storeOp << '\n';
6268         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6269         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6270         s << "\tinitialLayout = " << value.initialLayout << '\n';
6271         s << "\tfinalLayout = " << value.finalLayout << '\n';
6272         s << '}';
6273         return s;
6274 }
6275
6276 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
6277 {
6278         s << "VkAttachmentReference = {\n";
6279         s << "\tattachment = " << value.attachment << '\n';
6280         s << "\tlayout = " << value.layout << '\n';
6281         s << '}';
6282         return s;
6283 }
6284
6285 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
6286 {
6287         s << "VkSubpassDescription = {\n";
6288         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6289         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6290         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6291         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6292         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6293         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6294         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6295         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6296         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6297         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6298         s << '}';
6299         return s;
6300 }
6301
6302 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
6303 {
6304         s << "VkSubpassDependency = {\n";
6305         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6306         s << "\tdstSubpass = " << value.dstSubpass << '\n';
6307         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6308         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6309         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6310         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6311         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6312         s << '}';
6313         return s;
6314 }
6315
6316 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
6317 {
6318         s << "VkRenderPassCreateInfo = {\n";
6319         s << "\tsType = " << value.sType << '\n';
6320         s << "\tpNext = " << value.pNext << '\n';
6321         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6322         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6323         s << "\tpAttachments = " << value.pAttachments << '\n';
6324         s << "\tsubpassCount = " << value.subpassCount << '\n';
6325         s << "\tpSubpasses = " << value.pSubpasses << '\n';
6326         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6327         s << "\tpDependencies = " << value.pDependencies << '\n';
6328         s << '}';
6329         return s;
6330 }
6331
6332 std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
6333 {
6334         s << "VkEventCreateInfo = {\n";
6335         s << "\tsType = " << value.sType << '\n';
6336         s << "\tpNext = " << value.pNext << '\n';
6337         s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
6338         s << '}';
6339         return s;
6340 }
6341
6342 std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
6343 {
6344         s << "VkFenceCreateInfo = {\n";
6345         s << "\tsType = " << value.sType << '\n';
6346         s << "\tpNext = " << value.pNext << '\n';
6347         s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
6348         s << '}';
6349         return s;
6350 }
6351
6352 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
6353 {
6354         s << "VkPhysicalDeviceFeatures = {\n";
6355         s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
6356         s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
6357         s << "\timageCubeArray = " << value.imageCubeArray << '\n';
6358         s << "\tindependentBlend = " << value.independentBlend << '\n';
6359         s << "\tgeometryShader = " << value.geometryShader << '\n';
6360         s << "\ttessellationShader = " << value.tessellationShader << '\n';
6361         s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
6362         s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
6363         s << "\tlogicOp = " << value.logicOp << '\n';
6364         s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
6365         s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
6366         s << "\tdepthClamp = " << value.depthClamp << '\n';
6367         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
6368         s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
6369         s << "\tdepthBounds = " << value.depthBounds << '\n';
6370         s << "\twideLines = " << value.wideLines << '\n';
6371         s << "\tlargePoints = " << value.largePoints << '\n';
6372         s << "\talphaToOne = " << value.alphaToOne << '\n';
6373         s << "\tmultiViewport = " << value.multiViewport << '\n';
6374         s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
6375         s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
6376         s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
6377         s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
6378         s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
6379         s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
6380         s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
6381         s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
6382         s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
6383         s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
6384         s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
6385         s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
6386         s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
6387         s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
6388         s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
6389         s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
6390         s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
6391         s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
6392         s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
6393         s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
6394         s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
6395         s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
6396         s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
6397         s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
6398         s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
6399         s << "\tsparseBinding = " << value.sparseBinding << '\n';
6400         s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
6401         s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
6402         s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
6403         s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
6404         s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
6405         s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
6406         s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
6407         s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
6408         s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
6409         s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
6410         s << '}';
6411         return s;
6412 }
6413
6414 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
6415 {
6416         s << "VkPhysicalDeviceSparseProperties = {\n";
6417         s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
6418         s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
6419         s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
6420         s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
6421         s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
6422         s << '}';
6423         return s;
6424 }
6425
6426 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
6427 {
6428         s << "VkPhysicalDeviceLimits = {\n";
6429         s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
6430         s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
6431         s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
6432         s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
6433         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6434         s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
6435         s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
6436         s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
6437         s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
6438         s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
6439         s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
6440         s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
6441         s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
6442         s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
6443         s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
6444         s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
6445         s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
6446         s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
6447         s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
6448         s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
6449         s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
6450         s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
6451         s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
6452         s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
6453         s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
6454         s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
6455         s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
6456         s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
6457         s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
6458         s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
6459         s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
6460         s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
6461         s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
6462         s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
6463         s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
6464         s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
6465         s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
6466         s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
6467         s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
6468         s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
6469         s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
6470         s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
6471         s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
6472         s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
6473         s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
6474         s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
6475         s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
6476         s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
6477         s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
6478         s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
6479         s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
6480         s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
6481         s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
6482         s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
6483         s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
6484         s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
6485         s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
6486         s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
6487         s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
6488         s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
6489         s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
6490         s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
6491         s << "\tmaxViewports = " << value.maxViewports << '\n';
6492         s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
6493         s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
6494         s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
6495         s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
6496         s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
6497         s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
6498         s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
6499         s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
6500         s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
6501         s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
6502         s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
6503         s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
6504         s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
6505         s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
6506         s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
6507         s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
6508         s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
6509         s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
6510         s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
6511         s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
6512         s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
6513         s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
6514         s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
6515         s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
6516         s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
6517         s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
6518         s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
6519         s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
6520         s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
6521         s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
6522         s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
6523         s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
6524         s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
6525         s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
6526         s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
6527         s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
6528         s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
6529         s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
6530         s << "\tstrictLines = " << value.strictLines << '\n';
6531         s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
6532         s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
6533         s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
6534         s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
6535         s << '}';
6536         return s;
6537 }
6538
6539 std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
6540 {
6541         s << "VkSemaphoreCreateInfo = {\n";
6542         s << "\tsType = " << value.sType << '\n';
6543         s << "\tpNext = " << value.pNext << '\n';
6544         s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
6545         s << '}';
6546         return s;
6547 }
6548
6549 std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
6550 {
6551         s << "VkQueryPoolCreateInfo = {\n";
6552         s << "\tsType = " << value.sType << '\n';
6553         s << "\tpNext = " << value.pNext << '\n';
6554         s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
6555         s << "\tqueryType = " << value.queryType << '\n';
6556         s << "\tqueryCount = " << value.queryCount << '\n';
6557         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6558         s << '}';
6559         return s;
6560 }
6561
6562 std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
6563 {
6564         s << "VkFramebufferCreateInfo = {\n";
6565         s << "\tsType = " << value.sType << '\n';
6566         s << "\tpNext = " << value.pNext << '\n';
6567         s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
6568         s << "\trenderPass = " << value.renderPass << '\n';
6569         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6570         s << "\tpAttachments = " << value.pAttachments << '\n';
6571         s << "\twidth = " << value.width << '\n';
6572         s << "\theight = " << value.height << '\n';
6573         s << "\tlayers = " << value.layers << '\n';
6574         s << '}';
6575         return s;
6576 }
6577
6578 std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
6579 {
6580         s << "VkDrawIndirectCommand = {\n";
6581         s << "\tvertexCount = " << value.vertexCount << '\n';
6582         s << "\tinstanceCount = " << value.instanceCount << '\n';
6583         s << "\tfirstVertex = " << value.firstVertex << '\n';
6584         s << "\tfirstInstance = " << value.firstInstance << '\n';
6585         s << '}';
6586         return s;
6587 }
6588
6589 std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
6590 {
6591         s << "VkDrawIndexedIndirectCommand = {\n";
6592         s << "\tindexCount = " << value.indexCount << '\n';
6593         s << "\tinstanceCount = " << value.instanceCount << '\n';
6594         s << "\tfirstIndex = " << value.firstIndex << '\n';
6595         s << "\tvertexOffset = " << value.vertexOffset << '\n';
6596         s << "\tfirstInstance = " << value.firstInstance << '\n';
6597         s << '}';
6598         return s;
6599 }
6600
6601 std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
6602 {
6603         s << "VkDispatchIndirectCommand = {\n";
6604         s << "\tx = " << value.x << '\n';
6605         s << "\ty = " << value.y << '\n';
6606         s << "\tz = " << value.z << '\n';
6607         s << '}';
6608         return s;
6609 }
6610
6611 std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
6612 {
6613         s << "VkMultiDrawInfoEXT = {\n";
6614         s << "\tfirstVertex = " << value.firstVertex << '\n';
6615         s << "\tvertexCount = " << value.vertexCount << '\n';
6616         s << '}';
6617         return s;
6618 }
6619
6620 std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
6621 {
6622         s << "VkMultiDrawIndexedInfoEXT = {\n";
6623         s << "\tfirstIndex = " << value.firstIndex << '\n';
6624         s << "\tindexCount = " << value.indexCount << '\n';
6625         s << "\tvertexOffset = " << value.vertexOffset << '\n';
6626         s << '}';
6627         return s;
6628 }
6629
6630 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
6631 {
6632         s << "VkSubmitInfo = {\n";
6633         s << "\tsType = " << value.sType << '\n';
6634         s << "\tpNext = " << value.pNext << '\n';
6635         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6636         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6637         s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
6638         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6639         s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
6640         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6641         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
6642         s << '}';
6643         return s;
6644 }
6645
6646 std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
6647 {
6648         s << "VkDisplayPropertiesKHR = {\n";
6649         s << "\tdisplay = " << value.display << '\n';
6650         s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
6651         s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
6652         s << "\tphysicalResolution = " << value.physicalResolution << '\n';
6653         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6654         s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
6655         s << "\tpersistentContent = " << value.persistentContent << '\n';
6656         s << '}';
6657         return s;
6658 }
6659
6660 std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
6661 {
6662         s << "VkDisplayPlanePropertiesKHR = {\n";
6663         s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
6664         s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
6665         s << '}';
6666         return s;
6667 }
6668
6669 std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
6670 {
6671         s << "VkDisplayModeParametersKHR = {\n";
6672         s << "\tvisibleRegion = " << value.visibleRegion << '\n';
6673         s << "\trefreshRate = " << value.refreshRate << '\n';
6674         s << '}';
6675         return s;
6676 }
6677
6678 std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
6679 {
6680         s << "VkDisplayModePropertiesKHR = {\n";
6681         s << "\tdisplayMode = " << value.displayMode << '\n';
6682         s << "\tparameters = " << value.parameters << '\n';
6683         s << '}';
6684         return s;
6685 }
6686
6687 std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
6688 {
6689         s << "VkDisplayModeCreateInfoKHR = {\n";
6690         s << "\tsType = " << value.sType << '\n';
6691         s << "\tpNext = " << value.pNext << '\n';
6692         s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
6693         s << "\tparameters = " << value.parameters << '\n';
6694         s << '}';
6695         return s;
6696 }
6697
6698 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
6699 {
6700         s << "VkDisplayPlaneCapabilitiesKHR = {\n";
6701         s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
6702         s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
6703         s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
6704         s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
6705         s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
6706         s << "\tminDstPosition = " << value.minDstPosition << '\n';
6707         s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
6708         s << "\tminDstExtent = " << value.minDstExtent << '\n';
6709         s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
6710         s << '}';
6711         return s;
6712 }
6713
6714 std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
6715 {
6716         s << "VkDisplaySurfaceCreateInfoKHR = {\n";
6717         s << "\tsType = " << value.sType << '\n';
6718         s << "\tpNext = " << value.pNext << '\n';
6719         s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
6720         s << "\tdisplayMode = " << value.displayMode << '\n';
6721         s << "\tplaneIndex = " << value.planeIndex << '\n';
6722         s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
6723         s << "\ttransform = " << value.transform << '\n';
6724         s << "\tglobalAlpha = " << value.globalAlpha << '\n';
6725         s << "\talphaMode = " << value.alphaMode << '\n';
6726         s << "\timageExtent = " << value.imageExtent << '\n';
6727         s << '}';
6728         return s;
6729 }
6730
6731 std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
6732 {
6733         s << "VkDisplayPresentInfoKHR = {\n";
6734         s << "\tsType = " << value.sType << '\n';
6735         s << "\tpNext = " << value.pNext << '\n';
6736         s << "\tsrcRect = " << value.srcRect << '\n';
6737         s << "\tdstRect = " << value.dstRect << '\n';
6738         s << "\tpersistent = " << value.persistent << '\n';
6739         s << '}';
6740         return s;
6741 }
6742
6743 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
6744 {
6745         s << "VkSurfaceCapabilitiesKHR = {\n";
6746         s << "\tminImageCount = " << value.minImageCount << '\n';
6747         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
6748         s << "\tcurrentExtent = " << value.currentExtent << '\n';
6749         s << "\tminImageExtent = " << value.minImageExtent << '\n';
6750         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
6751         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
6752         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
6753         s << "\tcurrentTransform = " << value.currentTransform << '\n';
6754         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
6755         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
6756         s << '}';
6757         return s;
6758 }
6759
6760 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
6761 {
6762         s << "VkAndroidSurfaceCreateInfoKHR = {\n";
6763         s << "\tsType = " << value.sType << '\n';
6764         s << "\tpNext = " << value.pNext << '\n';
6765         s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6766         s << "\twindow = " << value.window << '\n';
6767         s << '}';
6768         return s;
6769 }
6770
6771 std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
6772 {
6773         s << "VkViSurfaceCreateInfoNN = {\n";
6774         s << "\tsType = " << value.sType << '\n';
6775         s << "\tpNext = " << value.pNext << '\n';
6776         s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
6777         s << "\twindow = " << value.window << '\n';
6778         s << '}';
6779         return s;
6780 }
6781
6782 std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
6783 {
6784         s << "VkWaylandSurfaceCreateInfoKHR = {\n";
6785         s << "\tsType = " << value.sType << '\n';
6786         s << "\tpNext = " << value.pNext << '\n';
6787         s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6788         s << "\tdisplay = " << value.display << '\n';
6789         s << "\tsurface = " << value.surface << '\n';
6790         s << '}';
6791         return s;
6792 }
6793
6794 std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
6795 {
6796         s << "VkWin32SurfaceCreateInfoKHR = {\n";
6797         s << "\tsType = " << value.sType << '\n';
6798         s << "\tpNext = " << value.pNext << '\n';
6799         s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
6800         s << "\thinstance = " << value.hinstance << '\n';
6801         s << "\thwnd = " << value.hwnd << '\n';
6802         s << '}';
6803         return s;
6804 }
6805
6806 std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
6807 {
6808         s << "VkXlibSurfaceCreateInfoKHR = {\n";
6809         s << "\tsType = " << value.sType << '\n';
6810         s << "\tpNext = " << value.pNext << '\n';
6811         s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6812         s << "\tdpy = " << value.dpy << '\n';
6813         s << "\twindow = " << value.window << '\n';
6814         s << '}';
6815         return s;
6816 }
6817
6818 std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
6819 {
6820         s << "VkXcbSurfaceCreateInfoKHR = {\n";
6821         s << "\tsType = " << value.sType << '\n';
6822         s << "\tpNext = " << value.pNext << '\n';
6823         s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
6824         s << "\tconnection = " << value.connection << '\n';
6825         s << "\twindow = " << value.window << '\n';
6826         s << '}';
6827         return s;
6828 }
6829
6830 std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
6831 {
6832         s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
6833         s << "\tsType = " << value.sType << '\n';
6834         s << "\tpNext = " << value.pNext << '\n';
6835         s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
6836         s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
6837         s << '}';
6838         return s;
6839 }
6840
6841 std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
6842 {
6843         s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
6844         s << "\tsType = " << value.sType << '\n';
6845         s << "\tpNext = " << value.pNext << '\n';
6846         s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
6847         s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
6848         s << '}';
6849         return s;
6850 }
6851
6852 std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
6853 {
6854         s << "VkScreenSurfaceCreateInfoQNX = {\n";
6855         s << "\tsType = " << value.sType << '\n';
6856         s << "\tpNext = " << value.pNext << '\n';
6857         s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
6858         s << "\tcontext = " << value.context << '\n';
6859         s << "\twindow = " << value.window << '\n';
6860         s << '}';
6861         return s;
6862 }
6863
6864 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
6865 {
6866         s << "VkSurfaceFormatKHR = {\n";
6867         s << "\tformat = " << value.format << '\n';
6868         s << "\tcolorSpace = " << value.colorSpace << '\n';
6869         s << '}';
6870         return s;
6871 }
6872
6873 std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
6874 {
6875         s << "VkSwapchainCreateInfoKHR = {\n";
6876         s << "\tsType = " << value.sType << '\n';
6877         s << "\tpNext = " << value.pNext << '\n';
6878         s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
6879         s << "\tsurface = " << value.surface << '\n';
6880         s << "\tminImageCount = " << value.minImageCount << '\n';
6881         s << "\timageFormat = " << value.imageFormat << '\n';
6882         s << "\timageColorSpace = " << value.imageColorSpace << '\n';
6883         s << "\timageExtent = " << value.imageExtent << '\n';
6884         s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
6885         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
6886         s << "\timageSharingMode = " << value.imageSharingMode << '\n';
6887         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
6888         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
6889         s << "\tpreTransform = " << value.preTransform << '\n';
6890         s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
6891         s << "\tpresentMode = " << value.presentMode << '\n';
6892         s << "\tclipped = " << value.clipped << '\n';
6893         s << "\toldSwapchain = " << value.oldSwapchain << '\n';
6894         s << '}';
6895         return s;
6896 }
6897
6898 std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
6899 {
6900         s << "VkPresentInfoKHR = {\n";
6901         s << "\tsType = " << value.sType << '\n';
6902         s << "\tpNext = " << value.pNext << '\n';
6903         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6904         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
6905         s << "\tswapchainCount = " << value.swapchainCount << '\n';
6906         s << "\tpSwapchains = " << value.pSwapchains << '\n';
6907         s << "\tpImageIndices = " << value.pImageIndices << '\n';
6908         s << "\tpResults = " << value.pResults << '\n';
6909         s << '}';
6910         return s;
6911 }
6912
6913 std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
6914 {
6915         s << "VkDebugReportCallbackCreateInfoEXT = {\n";
6916         s << "\tsType = " << value.sType << '\n';
6917         s << "\tpNext = " << value.pNext << '\n';
6918         s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
6919         s << "\tpfnCallback = " << value.pfnCallback << '\n';
6920         s << "\tpUserData = " << value.pUserData << '\n';
6921         s << '}';
6922         return s;
6923 }
6924
6925 std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
6926 {
6927         s << "VkValidationFlagsEXT = {\n";
6928         s << "\tsType = " << value.sType << '\n';
6929         s << "\tpNext = " << value.pNext << '\n';
6930         s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
6931         s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
6932         s << '}';
6933         return s;
6934 }
6935
6936 std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
6937 {
6938         s << "VkValidationFeaturesEXT = {\n";
6939         s << "\tsType = " << value.sType << '\n';
6940         s << "\tpNext = " << value.pNext << '\n';
6941         s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
6942         s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
6943         s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
6944         s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
6945         s << '}';
6946         return s;
6947 }
6948
6949 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
6950 {
6951         s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
6952         s << "\tsType = " << value.sType << '\n';
6953         s << "\tpNext = " << value.pNext << '\n';
6954         s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
6955         s << '}';
6956         return s;
6957 }
6958
6959 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
6960 {
6961         s << "VkDebugMarkerObjectNameInfoEXT = {\n";
6962         s << "\tsType = " << value.sType << '\n';
6963         s << "\tpNext = " << value.pNext << '\n';
6964         s << "\tobjectType = " << value.objectType << '\n';
6965         s << "\tobject = " << value.object << '\n';
6966         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
6967         s << '}';
6968         return s;
6969 }
6970
6971 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
6972 {
6973         s << "VkDebugMarkerObjectTagInfoEXT = {\n";
6974         s << "\tsType = " << value.sType << '\n';
6975         s << "\tpNext = " << value.pNext << '\n';
6976         s << "\tobjectType = " << value.objectType << '\n';
6977         s << "\tobject = " << value.object << '\n';
6978         s << "\ttagName = " << value.tagName << '\n';
6979         s << "\ttagSize = " << value.tagSize << '\n';
6980         s << "\tpTag = " << value.pTag << '\n';
6981         s << '}';
6982         return s;
6983 }
6984
6985 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
6986 {
6987         s << "VkDebugMarkerMarkerInfoEXT = {\n";
6988         s << "\tsType = " << value.sType << '\n';
6989         s << "\tpNext = " << value.pNext << '\n';
6990         s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
6991         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
6992         s << '}';
6993         return s;
6994 }
6995
6996 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
6997 {
6998         s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
6999         s << "\tsType = " << value.sType << '\n';
7000         s << "\tpNext = " << value.pNext << '\n';
7001         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7002         s << '}';
7003         return s;
7004 }
7005
7006 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
7007 {
7008         s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
7009         s << "\tsType = " << value.sType << '\n';
7010         s << "\tpNext = " << value.pNext << '\n';
7011         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
7012         s << '}';
7013         return s;
7014 }
7015
7016 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
7017 {
7018         s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
7019         s << "\tsType = " << value.sType << '\n';
7020         s << "\tpNext = " << value.pNext << '\n';
7021         s << "\timage = " << value.image << '\n';
7022         s << "\tbuffer = " << value.buffer << '\n';
7023         s << '}';
7024         return s;
7025 }
7026
7027 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
7028 {
7029         s << "VkExternalImageFormatPropertiesNV = {\n";
7030         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7031         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
7032         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
7033         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
7034         s << '}';
7035         return s;
7036 }
7037
7038 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
7039 {
7040         s << "VkExternalMemoryImageCreateInfoNV = {\n";
7041         s << "\tsType = " << value.sType << '\n';
7042         s << "\tpNext = " << value.pNext << '\n';
7043         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7044         s << '}';
7045         return s;
7046 }
7047
7048 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
7049 {
7050         s << "VkExportMemoryAllocateInfoNV = {\n";
7051         s << "\tsType = " << value.sType << '\n';
7052         s << "\tpNext = " << value.pNext << '\n';
7053         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
7054         s << '}';
7055         return s;
7056 }
7057
7058 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
7059 {
7060         s << "VkImportMemoryWin32HandleInfoNV = {\n";
7061         s << "\tsType = " << value.sType << '\n';
7062         s << "\tpNext = " << value.pNext << '\n';
7063         s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
7064         s << "\thandle = " << value.handle << '\n';
7065         s << '}';
7066         return s;
7067 }
7068
7069 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
7070 {
7071         s << "VkExportMemoryWin32HandleInfoNV = {\n";
7072         s << "\tsType = " << value.sType << '\n';
7073         s << "\tpNext = " << value.pNext << '\n';
7074         s << "\tpAttributes = " << value.pAttributes << '\n';
7075         s << "\tdwAccess = " << value.dwAccess << '\n';
7076         s << '}';
7077         return s;
7078 }
7079
7080 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
7081 {
7082         s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
7083         s << "\tsType = " << value.sType << '\n';
7084         s << "\tpNext = " << value.pNext << '\n';
7085         s << "\tacquireCount = " << value.acquireCount << '\n';
7086         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7087         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7088         s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
7089         s << "\treleaseCount = " << value.releaseCount << '\n';
7090         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7091         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7092         s << '}';
7093         return s;
7094 }
7095
7096 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
7097 {
7098         s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
7099         s << "\tsType = " << value.sType << '\n';
7100         s << "\tpNext = " << value.pNext << '\n';
7101         s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
7102         s << '}';
7103         return s;
7104 }
7105
7106 std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
7107 {
7108         s << "VkDevicePrivateDataCreateInfo = {\n";
7109         s << "\tsType = " << value.sType << '\n';
7110         s << "\tpNext = " << value.pNext << '\n';
7111         s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
7112         s << '}';
7113         return s;
7114 }
7115
7116 std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
7117 {
7118         s << "VkPrivateDataSlotCreateInfo = {\n";
7119         s << "\tsType = " << value.sType << '\n';
7120         s << "\tpNext = " << value.pNext << '\n';
7121         s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
7122         s << '}';
7123         return s;
7124 }
7125
7126 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
7127 {
7128         s << "VkPhysicalDevicePrivateDataFeatures = {\n";
7129         s << "\tsType = " << value.sType << '\n';
7130         s << "\tpNext = " << value.pNext << '\n';
7131         s << "\tprivateData = " << value.privateData << '\n';
7132         s << '}';
7133         return s;
7134 }
7135
7136 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
7137 {
7138         s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
7139         s << "\tsType = " << value.sType << '\n';
7140         s << "\tpNext = " << value.pNext << '\n';
7141         s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
7142         s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
7143         s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
7144         s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
7145         s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
7146         s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
7147         s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
7148         s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
7149         s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
7150         s << '}';
7151         return s;
7152 }
7153
7154 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
7155 {
7156         s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
7157         s << "\tsType = " << value.sType << '\n';
7158         s << "\tpNext = " << value.pNext << '\n';
7159         s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
7160         s << '}';
7161         return s;
7162 }
7163
7164 std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
7165 {
7166         s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
7167         s << "\tsType = " << value.sType << '\n';
7168         s << "\tpNext = " << value.pNext << '\n';
7169         s << "\tstageCount = " << value.stageCount << '\n';
7170         s << "\tpStages = " << value.pStages << '\n';
7171         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
7172         s << "\tpTessellationState = " << value.pTessellationState << '\n';
7173         s << '}';
7174         return s;
7175 }
7176
7177 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
7178 {
7179         s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
7180         s << "\tsType = " << value.sType << '\n';
7181         s << "\tpNext = " << value.pNext << '\n';
7182         s << "\tgroupCount = " << value.groupCount << '\n';
7183         s << "\tpGroups = " << value.pGroups << '\n';
7184         s << "\tpipelineCount = " << value.pipelineCount << '\n';
7185         s << "\tpPipelines = " << value.pPipelines << '\n';
7186         s << '}';
7187         return s;
7188 }
7189
7190 std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
7191 {
7192         s << "VkBindShaderGroupIndirectCommandNV = {\n";
7193         s << "\tgroupIndex = " << value.groupIndex << '\n';
7194         s << '}';
7195         return s;
7196 }
7197
7198 std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
7199 {
7200         s << "VkBindIndexBufferIndirectCommandNV = {\n";
7201         s << "\tbufferAddress = " << value.bufferAddress << '\n';
7202         s << "\tsize = " << value.size << '\n';
7203         s << "\tindexType = " << value.indexType << '\n';
7204         s << '}';
7205         return s;
7206 }
7207
7208 std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
7209 {
7210         s << "VkBindVertexBufferIndirectCommandNV = {\n";
7211         s << "\tbufferAddress = " << value.bufferAddress << '\n';
7212         s << "\tsize = " << value.size << '\n';
7213         s << "\tstride = " << value.stride << '\n';
7214         s << '}';
7215         return s;
7216 }
7217
7218 std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
7219 {
7220         s << "VkSetStateFlagsIndirectCommandNV = {\n";
7221         s << "\tdata = " << value.data << '\n';
7222         s << '}';
7223         return s;
7224 }
7225
7226 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
7227 {
7228         s << "VkIndirectCommandsStreamNV = {\n";
7229         s << "\tbuffer = " << value.buffer << '\n';
7230         s << "\toffset = " << value.offset << '\n';
7231         s << '}';
7232         return s;
7233 }
7234
7235 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
7236 {
7237         s << "VkIndirectCommandsLayoutTokenNV = {\n";
7238         s << "\tsType = " << value.sType << '\n';
7239         s << "\tpNext = " << value.pNext << '\n';
7240         s << "\ttokenType = " << value.tokenType << '\n';
7241         s << "\tstream = " << value.stream << '\n';
7242         s << "\toffset = " << value.offset << '\n';
7243         s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
7244         s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
7245         s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
7246         s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
7247         s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
7248         s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
7249         s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
7250         s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
7251         s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
7252         s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
7253         s << '}';
7254         return s;
7255 }
7256
7257 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
7258 {
7259         s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
7260         s << "\tsType = " << value.sType << '\n';
7261         s << "\tpNext = " << value.pNext << '\n';
7262         s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
7263         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7264         s << "\ttokenCount = " << value.tokenCount << '\n';
7265         s << "\tpTokens = " << value.pTokens << '\n';
7266         s << "\tstreamCount = " << value.streamCount << '\n';
7267         s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
7268         s << '}';
7269         return s;
7270 }
7271
7272 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
7273 {
7274         s << "VkGeneratedCommandsInfoNV = {\n";
7275         s << "\tsType = " << value.sType << '\n';
7276         s << "\tpNext = " << value.pNext << '\n';
7277         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7278         s << "\tpipeline = " << value.pipeline << '\n';
7279         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
7280         s << "\tstreamCount = " << value.streamCount << '\n';
7281         s << "\tpStreams = " << value.pStreams << '\n';
7282         s << "\tsequencesCount = " << value.sequencesCount << '\n';
7283         s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
7284         s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
7285         s << "\tpreprocessSize = " << value.preprocessSize << '\n';
7286         s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
7287         s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
7288         s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
7289         s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
7290         s << '}';
7291         return s;
7292 }
7293
7294 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
7295 {
7296         s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
7297         s << "\tsType = " << value.sType << '\n';
7298         s << "\tpNext = " << value.pNext << '\n';
7299         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7300         s << "\tpipeline = " << value.pipeline << '\n';
7301         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
7302         s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
7303         s << '}';
7304         return s;
7305 }
7306
7307 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
7308 {
7309         s << "VkPhysicalDeviceFeatures2 = {\n";
7310         s << "\tsType = " << value.sType << '\n';
7311         s << "\tpNext = " << value.pNext << '\n';
7312         s << "\tfeatures = " << value.features << '\n';
7313         s << '}';
7314         return s;
7315 }
7316
7317 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
7318 {
7319         s << "VkPhysicalDeviceProperties2 = {\n";
7320         s << "\tsType = " << value.sType << '\n';
7321         s << "\tpNext = " << value.pNext << '\n';
7322         s << "\tproperties = " << value.properties << '\n';
7323         s << '}';
7324         return s;
7325 }
7326
7327 std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
7328 {
7329         s << "VkFormatProperties2 = {\n";
7330         s << "\tsType = " << value.sType << '\n';
7331         s << "\tpNext = " << value.pNext << '\n';
7332         s << "\tformatProperties = " << value.formatProperties << '\n';
7333         s << '}';
7334         return s;
7335 }
7336
7337 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
7338 {
7339         s << "VkImageFormatProperties2 = {\n";
7340         s << "\tsType = " << value.sType << '\n';
7341         s << "\tpNext = " << value.pNext << '\n';
7342         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
7343         s << '}';
7344         return s;
7345 }
7346
7347 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
7348 {
7349         s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
7350         s << "\tsType = " << value.sType << '\n';
7351         s << "\tpNext = " << value.pNext << '\n';
7352         s << "\tformat = " << value.format << '\n';
7353         s << "\ttype = " << value.type << '\n';
7354         s << "\ttiling = " << value.tiling << '\n';
7355         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7356         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7357         s << '}';
7358         return s;
7359 }
7360
7361 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
7362 {
7363         s << "VkQueueFamilyProperties2 = {\n";
7364         s << "\tsType = " << value.sType << '\n';
7365         s << "\tpNext = " << value.pNext << '\n';
7366         s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
7367         s << '}';
7368         return s;
7369 }
7370
7371 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
7372 {
7373         s << "VkPhysicalDeviceMemoryProperties2 = {\n";
7374         s << "\tsType = " << value.sType << '\n';
7375         s << "\tpNext = " << value.pNext << '\n';
7376         s << "\tmemoryProperties = " << value.memoryProperties << '\n';
7377         s << '}';
7378         return s;
7379 }
7380
7381 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
7382 {
7383         s << "VkSparseImageFormatProperties2 = {\n";
7384         s << "\tsType = " << value.sType << '\n';
7385         s << "\tpNext = " << value.pNext << '\n';
7386         s << "\tproperties = " << value.properties << '\n';
7387         s << '}';
7388         return s;
7389 }
7390
7391 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
7392 {
7393         s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
7394         s << "\tsType = " << value.sType << '\n';
7395         s << "\tpNext = " << value.pNext << '\n';
7396         s << "\tformat = " << value.format << '\n';
7397         s << "\ttype = " << value.type << '\n';
7398         s << "\tsamples = " << value.samples << '\n';
7399         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7400         s << "\ttiling = " << value.tiling << '\n';
7401         s << '}';
7402         return s;
7403 }
7404
7405 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
7406 {
7407         s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
7408         s << "\tsType = " << value.sType << '\n';
7409         s << "\tpNext = " << value.pNext << '\n';
7410         s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
7411         s << '}';
7412         return s;
7413 }
7414
7415 std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
7416 {
7417         s << "VkConformanceVersion = {\n";
7418         s << "\tmajor = " << value.major << '\n';
7419         s << "\tminor = " << value.minor << '\n';
7420         s << "\tsubminor = " << value.subminor << '\n';
7421         s << "\tpatch = " << value.patch << '\n';
7422         s << '}';
7423         return s;
7424 }
7425
7426 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7427 {
7428         s << "VkPhysicalDeviceDriverProperties = {\n";
7429         s << "\tsType = " << value.sType << '\n';
7430         s << "\tpNext = " << value.pNext << '\n';
7431         s << "\tdriverID = " << value.driverID << '\n';
7432         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7433         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7434         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7435         s << '}';
7436         return s;
7437 }
7438
7439 std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
7440 {
7441         s << "VkPresentRegionsKHR = {\n";
7442         s << "\tsType = " << value.sType << '\n';
7443         s << "\tpNext = " << value.pNext << '\n';
7444         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7445         s << "\tpRegions = " << value.pRegions << '\n';
7446         s << '}';
7447         return s;
7448 }
7449
7450 std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
7451 {
7452         s << "VkPresentRegionKHR = {\n";
7453         s << "\trectangleCount = " << value.rectangleCount << '\n';
7454         s << "\tpRectangles = " << value.pRectangles << '\n';
7455         s << '}';
7456         return s;
7457 }
7458
7459 std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
7460 {
7461         s << "VkRectLayerKHR = {\n";
7462         s << "\toffset = " << value.offset << '\n';
7463         s << "\textent = " << value.extent << '\n';
7464         s << "\tlayer = " << value.layer << '\n';
7465         s << '}';
7466         return s;
7467 }
7468
7469 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
7470 {
7471         s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
7472         s << "\tsType = " << value.sType << '\n';
7473         s << "\tpNext = " << value.pNext << '\n';
7474         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
7475         s << "\tvariablePointers = " << value.variablePointers << '\n';
7476         s << '}';
7477         return s;
7478 }
7479
7480 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
7481 {
7482         s << "VkExternalMemoryProperties = {\n";
7483         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
7484         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7485         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7486         s << '}';
7487         return s;
7488 }
7489
7490 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
7491 {
7492         s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
7493         s << "\tsType = " << value.sType << '\n';
7494         s << "\tpNext = " << value.pNext << '\n';
7495         s << "\thandleType = " << value.handleType << '\n';
7496         s << '}';
7497         return s;
7498 }
7499
7500 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
7501 {
7502         s << "VkExternalImageFormatProperties = {\n";
7503         s << "\tsType = " << value.sType << '\n';
7504         s << "\tpNext = " << value.pNext << '\n';
7505         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7506         s << '}';
7507         return s;
7508 }
7509
7510 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
7511 {
7512         s << "VkPhysicalDeviceExternalBufferInfo = {\n";
7513         s << "\tsType = " << value.sType << '\n';
7514         s << "\tpNext = " << value.pNext << '\n';
7515         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
7516         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
7517         s << "\thandleType = " << value.handleType << '\n';
7518         s << '}';
7519         return s;
7520 }
7521
7522 std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
7523 {
7524         s << "VkExternalBufferProperties = {\n";
7525         s << "\tsType = " << value.sType << '\n';
7526         s << "\tpNext = " << value.pNext << '\n';
7527         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7528         s << '}';
7529         return s;
7530 }
7531
7532 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
7533 {
7534         s << "VkPhysicalDeviceIDProperties = {\n";
7535         s << "\tsType = " << value.sType << '\n';
7536         s << "\tpNext = " << value.pNext << '\n';
7537         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';
7538         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';
7539         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';
7540         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7541         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7542         s << '}';
7543         return s;
7544 }
7545
7546 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
7547 {
7548         s << "VkExternalMemoryImageCreateInfo = {\n";
7549         s << "\tsType = " << value.sType << '\n';
7550         s << "\tpNext = " << value.pNext << '\n';
7551         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7552         s << '}';
7553         return s;
7554 }
7555
7556 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
7557 {
7558         s << "VkExternalMemoryBufferCreateInfo = {\n";
7559         s << "\tsType = " << value.sType << '\n';
7560         s << "\tpNext = " << value.pNext << '\n';
7561         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7562         s << '}';
7563         return s;
7564 }
7565
7566 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
7567 {
7568         s << "VkExportMemoryAllocateInfo = {\n";
7569         s << "\tsType = " << value.sType << '\n';
7570         s << "\tpNext = " << value.pNext << '\n';
7571         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7572         s << '}';
7573         return s;
7574 }
7575
7576 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
7577 {
7578         s << "VkImportMemoryWin32HandleInfoKHR = {\n";
7579         s << "\tsType = " << value.sType << '\n';
7580         s << "\tpNext = " << value.pNext << '\n';
7581         s << "\thandleType = " << value.handleType << '\n';
7582         s << "\thandle = " << value.handle << '\n';
7583         s << "\tname = " << getWStr(value.name) << '\n';
7584         s << '}';
7585         return s;
7586 }
7587
7588 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
7589 {
7590         s << "VkExportMemoryWin32HandleInfoKHR = {\n";
7591         s << "\tsType = " << value.sType << '\n';
7592         s << "\tpNext = " << value.pNext << '\n';
7593         s << "\tpAttributes = " << value.pAttributes << '\n';
7594         s << "\tdwAccess = " << value.dwAccess << '\n';
7595         s << "\tname = " << getWStr(value.name) << '\n';
7596         s << '}';
7597         return s;
7598 }
7599
7600 std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
7601 {
7602         s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
7603         s << "\tsType = " << value.sType << '\n';
7604         s << "\tpNext = " << value.pNext << '\n';
7605         s << "\thandleType = " << value.handleType << '\n';
7606         s << "\thandle = " << value.handle << '\n';
7607         s << '}';
7608         return s;
7609 }
7610
7611 std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
7612 {
7613         s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
7614         s << "\tsType = " << value.sType << '\n';
7615         s << "\tpNext = " << value.pNext << '\n';
7616         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7617         s << '}';
7618         return s;
7619 }
7620
7621 std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
7622 {
7623         s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
7624         s << "\tsType = " << value.sType << '\n';
7625         s << "\tpNext = " << value.pNext << '\n';
7626         s << "\tmemory = " << value.memory << '\n';
7627         s << "\thandleType = " << value.handleType << '\n';
7628         s << '}';
7629         return s;
7630 }
7631
7632 std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
7633 {
7634         s << "VkMemoryWin32HandlePropertiesKHR = {\n";
7635         s << "\tsType = " << value.sType << '\n';
7636         s << "\tpNext = " << value.pNext << '\n';
7637         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7638         s << '}';
7639         return s;
7640 }
7641
7642 std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
7643 {
7644         s << "VkMemoryGetWin32HandleInfoKHR = {\n";
7645         s << "\tsType = " << value.sType << '\n';
7646         s << "\tpNext = " << value.pNext << '\n';
7647         s << "\tmemory = " << value.memory << '\n';
7648         s << "\thandleType = " << value.handleType << '\n';
7649         s << '}';
7650         return s;
7651 }
7652
7653 std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
7654 {
7655         s << "VkImportMemoryFdInfoKHR = {\n";
7656         s << "\tsType = " << value.sType << '\n';
7657         s << "\tpNext = " << value.pNext << '\n';
7658         s << "\thandleType = " << value.handleType << '\n';
7659         s << "\tfd = " << value.fd << '\n';
7660         s << '}';
7661         return s;
7662 }
7663
7664 std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
7665 {
7666         s << "VkMemoryFdPropertiesKHR = {\n";
7667         s << "\tsType = " << value.sType << '\n';
7668         s << "\tpNext = " << value.pNext << '\n';
7669         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7670         s << '}';
7671         return s;
7672 }
7673
7674 std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
7675 {
7676         s << "VkMemoryGetFdInfoKHR = {\n";
7677         s << "\tsType = " << value.sType << '\n';
7678         s << "\tpNext = " << value.pNext << '\n';
7679         s << "\tmemory = " << value.memory << '\n';
7680         s << "\thandleType = " << value.handleType << '\n';
7681         s << '}';
7682         return s;
7683 }
7684
7685 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
7686 {
7687         s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
7688         s << "\tsType = " << value.sType << '\n';
7689         s << "\tpNext = " << value.pNext << '\n';
7690         s << "\tacquireCount = " << value.acquireCount << '\n';
7691         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
7692         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
7693         s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
7694         s << "\treleaseCount = " << value.releaseCount << '\n';
7695         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
7696         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
7697         s << '}';
7698         return s;
7699 }
7700
7701 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
7702 {
7703         s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
7704         s << "\tsType = " << value.sType << '\n';
7705         s << "\tpNext = " << value.pNext << '\n';
7706         s << "\thandleType = " << value.handleType << '\n';
7707         s << '}';
7708         return s;
7709 }
7710
7711 std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
7712 {
7713         s << "VkExternalSemaphoreProperties = {\n";
7714         s << "\tsType = " << value.sType << '\n';
7715         s << "\tpNext = " << value.pNext << '\n';
7716         s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7717         s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7718         s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
7719         s << '}';
7720         return s;
7721 }
7722
7723 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
7724 {
7725         s << "VkExportSemaphoreCreateInfo = {\n";
7726         s << "\tsType = " << value.sType << '\n';
7727         s << "\tpNext = " << value.pNext << '\n';
7728         s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
7729         s << '}';
7730         return s;
7731 }
7732
7733 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
7734 {
7735         s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
7736         s << "\tsType = " << value.sType << '\n';
7737         s << "\tpNext = " << value.pNext << '\n';
7738         s << "\tsemaphore = " << value.semaphore << '\n';
7739         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7740         s << "\thandleType = " << value.handleType << '\n';
7741         s << "\thandle = " << value.handle << '\n';
7742         s << "\tname = " << getWStr(value.name) << '\n';
7743         s << '}';
7744         return s;
7745 }
7746
7747 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
7748 {
7749         s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
7750         s << "\tsType = " << value.sType << '\n';
7751         s << "\tpNext = " << value.pNext << '\n';
7752         s << "\tpAttributes = " << value.pAttributes << '\n';
7753         s << "\tdwAccess = " << value.dwAccess << '\n';
7754         s << "\tname = " << getWStr(value.name) << '\n';
7755         s << '}';
7756         return s;
7757 }
7758
7759 std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
7760 {
7761         s << "VkD3D12FenceSubmitInfoKHR = {\n";
7762         s << "\tsType = " << value.sType << '\n';
7763         s << "\tpNext = " << value.pNext << '\n';
7764         s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
7765         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7766         s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
7767         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7768         s << '}';
7769         return s;
7770 }
7771
7772 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
7773 {
7774         s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
7775         s << "\tsType = " << value.sType << '\n';
7776         s << "\tpNext = " << value.pNext << '\n';
7777         s << "\tsemaphore = " << value.semaphore << '\n';
7778         s << "\thandleType = " << value.handleType << '\n';
7779         s << '}';
7780         return s;
7781 }
7782
7783 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
7784 {
7785         s << "VkImportSemaphoreFdInfoKHR = {\n";
7786         s << "\tsType = " << value.sType << '\n';
7787         s << "\tpNext = " << value.pNext << '\n';
7788         s << "\tsemaphore = " << value.semaphore << '\n';
7789         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7790         s << "\thandleType = " << value.handleType << '\n';
7791         s << "\tfd = " << value.fd << '\n';
7792         s << '}';
7793         return s;
7794 }
7795
7796 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
7797 {
7798         s << "VkSemaphoreGetFdInfoKHR = {\n";
7799         s << "\tsType = " << value.sType << '\n';
7800         s << "\tpNext = " << value.pNext << '\n';
7801         s << "\tsemaphore = " << value.semaphore << '\n';
7802         s << "\thandleType = " << value.handleType << '\n';
7803         s << '}';
7804         return s;
7805 }
7806
7807 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
7808 {
7809         s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
7810         s << "\tsType = " << value.sType << '\n';
7811         s << "\tpNext = " << value.pNext << '\n';
7812         s << "\tsemaphore = " << value.semaphore << '\n';
7813         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7814         s << "\thandleType = " << value.handleType << '\n';
7815         s << "\tzirconHandle = " << value.zirconHandle << '\n';
7816         s << '}';
7817         return s;
7818 }
7819
7820 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
7821 {
7822         s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
7823         s << "\tsType = " << value.sType << '\n';
7824         s << "\tpNext = " << value.pNext << '\n';
7825         s << "\tsemaphore = " << value.semaphore << '\n';
7826         s << "\thandleType = " << value.handleType << '\n';
7827         s << '}';
7828         return s;
7829 }
7830
7831 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
7832 {
7833         s << "VkPhysicalDeviceExternalFenceInfo = {\n";
7834         s << "\tsType = " << value.sType << '\n';
7835         s << "\tpNext = " << value.pNext << '\n';
7836         s << "\thandleType = " << value.handleType << '\n';
7837         s << '}';
7838         return s;
7839 }
7840
7841 std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
7842 {
7843         s << "VkExternalFenceProperties = {\n";
7844         s << "\tsType = " << value.sType << '\n';
7845         s << "\tpNext = " << value.pNext << '\n';
7846         s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7847         s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7848         s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
7849         s << '}';
7850         return s;
7851 }
7852
7853 std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
7854 {
7855         s << "VkExportFenceCreateInfo = {\n";
7856         s << "\tsType = " << value.sType << '\n';
7857         s << "\tpNext = " << value.pNext << '\n';
7858         s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
7859         s << '}';
7860         return s;
7861 }
7862
7863 std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
7864 {
7865         s << "VkImportFenceWin32HandleInfoKHR = {\n";
7866         s << "\tsType = " << value.sType << '\n';
7867         s << "\tpNext = " << value.pNext << '\n';
7868         s << "\tfence = " << value.fence << '\n';
7869         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7870         s << "\thandleType = " << value.handleType << '\n';
7871         s << "\thandle = " << value.handle << '\n';
7872         s << "\tname = " << getWStr(value.name) << '\n';
7873         s << '}';
7874         return s;
7875 }
7876
7877 std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
7878 {
7879         s << "VkExportFenceWin32HandleInfoKHR = {\n";
7880         s << "\tsType = " << value.sType << '\n';
7881         s << "\tpNext = " << value.pNext << '\n';
7882         s << "\tpAttributes = " << value.pAttributes << '\n';
7883         s << "\tdwAccess = " << value.dwAccess << '\n';
7884         s << "\tname = " << getWStr(value.name) << '\n';
7885         s << '}';
7886         return s;
7887 }
7888
7889 std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
7890 {
7891         s << "VkFenceGetWin32HandleInfoKHR = {\n";
7892         s << "\tsType = " << value.sType << '\n';
7893         s << "\tpNext = " << value.pNext << '\n';
7894         s << "\tfence = " << value.fence << '\n';
7895         s << "\thandleType = " << value.handleType << '\n';
7896         s << '}';
7897         return s;
7898 }
7899
7900 std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
7901 {
7902         s << "VkImportFenceFdInfoKHR = {\n";
7903         s << "\tsType = " << value.sType << '\n';
7904         s << "\tpNext = " << value.pNext << '\n';
7905         s << "\tfence = " << value.fence << '\n';
7906         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7907         s << "\thandleType = " << value.handleType << '\n';
7908         s << "\tfd = " << value.fd << '\n';
7909         s << '}';
7910         return s;
7911 }
7912
7913 std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
7914 {
7915         s << "VkFenceGetFdInfoKHR = {\n";
7916         s << "\tsType = " << value.sType << '\n';
7917         s << "\tpNext = " << value.pNext << '\n';
7918         s << "\tfence = " << value.fence << '\n';
7919         s << "\thandleType = " << value.handleType << '\n';
7920         s << '}';
7921         return s;
7922 }
7923
7924 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
7925 {
7926         s << "VkPhysicalDeviceMultiviewFeatures = {\n";
7927         s << "\tsType = " << value.sType << '\n';
7928         s << "\tpNext = " << value.pNext << '\n';
7929         s << "\tmultiview = " << value.multiview << '\n';
7930         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
7931         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
7932         s << '}';
7933         return s;
7934 }
7935
7936 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
7937 {
7938         s << "VkPhysicalDeviceMultiviewProperties = {\n";
7939         s << "\tsType = " << value.sType << '\n';
7940         s << "\tpNext = " << value.pNext << '\n';
7941         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
7942         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
7943         s << '}';
7944         return s;
7945 }
7946
7947 std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
7948 {
7949         s << "VkRenderPassMultiviewCreateInfo = {\n";
7950         s << "\tsType = " << value.sType << '\n';
7951         s << "\tpNext = " << value.pNext << '\n';
7952         s << "\tsubpassCount = " << value.subpassCount << '\n';
7953         s << "\tpViewMasks = " << value.pViewMasks << '\n';
7954         s << "\tdependencyCount = " << value.dependencyCount << '\n';
7955         s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
7956         s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
7957         s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
7958         s << '}';
7959         return s;
7960 }
7961
7962 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
7963 {
7964         s << "VkSurfaceCapabilities2EXT = {\n";
7965         s << "\tsType = " << value.sType << '\n';
7966         s << "\tpNext = " << value.pNext << '\n';
7967         s << "\tminImageCount = " << value.minImageCount << '\n';
7968         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7969         s << "\tcurrentExtent = " << value.currentExtent << '\n';
7970         s << "\tminImageExtent = " << value.minImageExtent << '\n';
7971         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7972         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7973         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7974         s << "\tcurrentTransform = " << value.currentTransform << '\n';
7975         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7976         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7977         s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
7978         s << '}';
7979         return s;
7980 }
7981
7982 std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
7983 {
7984         s << "VkDisplayPowerInfoEXT = {\n";
7985         s << "\tsType = " << value.sType << '\n';
7986         s << "\tpNext = " << value.pNext << '\n';
7987         s << "\tpowerState = " << value.powerState << '\n';
7988         s << '}';
7989         return s;
7990 }
7991
7992 std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
7993 {
7994         s << "VkDeviceEventInfoEXT = {\n";
7995         s << "\tsType = " << value.sType << '\n';
7996         s << "\tpNext = " << value.pNext << '\n';
7997         s << "\tdeviceEvent = " << value.deviceEvent << '\n';
7998         s << '}';
7999         return s;
8000 }
8001
8002 std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
8003 {
8004         s << "VkDisplayEventInfoEXT = {\n";
8005         s << "\tsType = " << value.sType << '\n';
8006         s << "\tpNext = " << value.pNext << '\n';
8007         s << "\tdisplayEvent = " << value.displayEvent << '\n';
8008         s << '}';
8009         return s;
8010 }
8011
8012 std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
8013 {
8014         s << "VkSwapchainCounterCreateInfoEXT = {\n";
8015         s << "\tsType = " << value.sType << '\n';
8016         s << "\tpNext = " << value.pNext << '\n';
8017         s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
8018         s << '}';
8019         return s;
8020 }
8021
8022 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
8023 {
8024         s << "VkPhysicalDeviceGroupProperties = {\n";
8025         s << "\tsType = " << value.sType << '\n';
8026         s << "\tpNext = " << value.pNext << '\n';
8027         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8028         s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
8029         s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
8030         s << '}';
8031         return s;
8032 }
8033
8034 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
8035 {
8036         s << "VkMemoryAllocateFlagsInfo = {\n";
8037         s << "\tsType = " << value.sType << '\n';
8038         s << "\tpNext = " << value.pNext << '\n';
8039         s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
8040         s << "\tdeviceMask = " << value.deviceMask << '\n';
8041         s << '}';
8042         return s;
8043 }
8044
8045 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
8046 {
8047         s << "VkBindBufferMemoryInfo = {\n";
8048         s << "\tsType = " << value.sType << '\n';
8049         s << "\tpNext = " << value.pNext << '\n';
8050         s << "\tbuffer = " << value.buffer << '\n';
8051         s << "\tmemory = " << value.memory << '\n';
8052         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8053         s << '}';
8054         return s;
8055 }
8056
8057 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
8058 {
8059         s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
8060         s << "\tsType = " << value.sType << '\n';
8061         s << "\tpNext = " << value.pNext << '\n';
8062         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8063         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8064         s << '}';
8065         return s;
8066 }
8067
8068 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
8069 {
8070         s << "VkBindImageMemoryInfo = {\n";
8071         s << "\tsType = " << value.sType << '\n';
8072         s << "\tpNext = " << value.pNext << '\n';
8073         s << "\timage = " << value.image << '\n';
8074         s << "\tmemory = " << value.memory << '\n';
8075         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
8076         s << '}';
8077         return s;
8078 }
8079
8080 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
8081 {
8082         s << "VkBindImageMemoryDeviceGroupInfo = {\n";
8083         s << "\tsType = " << value.sType << '\n';
8084         s << "\tpNext = " << value.pNext << '\n';
8085         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
8086         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
8087         s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
8088         s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
8089         s << '}';
8090         return s;
8091 }
8092
8093 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
8094 {
8095         s << "VkDeviceGroupRenderPassBeginInfo = {\n";
8096         s << "\tsType = " << value.sType << '\n';
8097         s << "\tpNext = " << value.pNext << '\n';
8098         s << "\tdeviceMask = " << value.deviceMask << '\n';
8099         s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
8100         s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
8101         s << '}';
8102         return s;
8103 }
8104
8105 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
8106 {
8107         s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
8108         s << "\tsType = " << value.sType << '\n';
8109         s << "\tpNext = " << value.pNext << '\n';
8110         s << "\tdeviceMask = " << value.deviceMask << '\n';
8111         s << '}';
8112         return s;
8113 }
8114
8115 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
8116 {
8117         s << "VkDeviceGroupSubmitInfo = {\n";
8118         s << "\tsType = " << value.sType << '\n';
8119         s << "\tpNext = " << value.pNext << '\n';
8120         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8121         s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
8122         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
8123         s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
8124         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
8125         s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
8126         s << '}';
8127         return s;
8128 }
8129
8130 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
8131 {
8132         s << "VkDeviceGroupBindSparseInfo = {\n";
8133         s << "\tsType = " << value.sType << '\n';
8134         s << "\tpNext = " << value.pNext << '\n';
8135         s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
8136         s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
8137         s << '}';
8138         return s;
8139 }
8140
8141 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
8142 {
8143         s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
8144         s << "\tsType = " << value.sType << '\n';
8145         s << "\tpNext = " << value.pNext << '\n';
8146         s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
8147         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8148         s << '}';
8149         return s;
8150 }
8151
8152 std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
8153 {
8154         s << "VkImageSwapchainCreateInfoKHR = {\n";
8155         s << "\tsType = " << value.sType << '\n';
8156         s << "\tpNext = " << value.pNext << '\n';
8157         s << "\tswapchain = " << value.swapchain << '\n';
8158         s << '}';
8159         return s;
8160 }
8161
8162 std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
8163 {
8164         s << "VkBindImageMemorySwapchainInfoKHR = {\n";
8165         s << "\tsType = " << value.sType << '\n';
8166         s << "\tpNext = " << value.pNext << '\n';
8167         s << "\tswapchain = " << value.swapchain << '\n';
8168         s << "\timageIndex = " << value.imageIndex << '\n';
8169         s << '}';
8170         return s;
8171 }
8172
8173 std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
8174 {
8175         s << "VkAcquireNextImageInfoKHR = {\n";
8176         s << "\tsType = " << value.sType << '\n';
8177         s << "\tpNext = " << value.pNext << '\n';
8178         s << "\tswapchain = " << value.swapchain << '\n';
8179         s << "\ttimeout = " << value.timeout << '\n';
8180         s << "\tsemaphore = " << value.semaphore << '\n';
8181         s << "\tfence = " << value.fence << '\n';
8182         s << "\tdeviceMask = " << value.deviceMask << '\n';
8183         s << '}';
8184         return s;
8185 }
8186
8187 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
8188 {
8189         s << "VkDeviceGroupPresentInfoKHR = {\n";
8190         s << "\tsType = " << value.sType << '\n';
8191         s << "\tpNext = " << value.pNext << '\n';
8192         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8193         s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
8194         s << "\tmode = " << value.mode << '\n';
8195         s << '}';
8196         return s;
8197 }
8198
8199 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
8200 {
8201         s << "VkDeviceGroupDeviceCreateInfo = {\n";
8202         s << "\tsType = " << value.sType << '\n';
8203         s << "\tpNext = " << value.pNext << '\n';
8204         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
8205         s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
8206         s << '}';
8207         return s;
8208 }
8209
8210 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
8211 {
8212         s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
8213         s << "\tsType = " << value.sType << '\n';
8214         s << "\tpNext = " << value.pNext << '\n';
8215         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8216         s << '}';
8217         return s;
8218 }
8219
8220 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
8221 {
8222         s << "VkDescriptorUpdateTemplateEntry = {\n";
8223         s << "\tdstBinding = " << value.dstBinding << '\n';
8224         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
8225         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
8226         s << "\tdescriptorType = " << value.descriptorType << '\n';
8227         s << "\toffset = " << value.offset << '\n';
8228         s << "\tstride = " << value.stride << '\n';
8229         s << '}';
8230         return s;
8231 }
8232
8233 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
8234 {
8235         s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
8236         s << "\tsType = " << value.sType << '\n';
8237         s << "\tpNext = " << value.pNext << '\n';
8238         s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
8239         s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
8240         s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
8241         s << "\ttemplateType = " << value.templateType << '\n';
8242         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
8243         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
8244         s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
8245         s << "\tset = " << value.set << '\n';
8246         s << '}';
8247         return s;
8248 }
8249
8250 std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
8251 {
8252         s << "VkXYColorEXT = {\n";
8253         s << "\tx = " << value.x << '\n';
8254         s << "\ty = " << value.y << '\n';
8255         s << '}';
8256         return s;
8257 }
8258
8259 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
8260 {
8261         s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
8262         s << "\tsType = " << value.sType << '\n';
8263         s << "\tpNext = " << value.pNext << '\n';
8264         s << "\tpresentId = " << value.presentId << '\n';
8265         s << '}';
8266         return s;
8267 }
8268
8269 std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
8270 {
8271         s << "VkPresentIdKHR = {\n";
8272         s << "\tsType = " << value.sType << '\n';
8273         s << "\tpNext = " << value.pNext << '\n';
8274         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8275         s << "\tpPresentIds = " << value.pPresentIds << '\n';
8276         s << '}';
8277         return s;
8278 }
8279
8280 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
8281 {
8282         s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
8283         s << "\tsType = " << value.sType << '\n';
8284         s << "\tpNext = " << value.pNext << '\n';
8285         s << "\tpresentWait = " << value.presentWait << '\n';
8286         s << '}';
8287         return s;
8288 }
8289
8290 std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
8291 {
8292         s << "VkHdrMetadataEXT = {\n";
8293         s << "\tsType = " << value.sType << '\n';
8294         s << "\tpNext = " << value.pNext << '\n';
8295         s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
8296         s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
8297         s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
8298         s << "\twhitePoint = " << value.whitePoint << '\n';
8299         s << "\tmaxLuminance = " << value.maxLuminance << '\n';
8300         s << "\tminLuminance = " << value.minLuminance << '\n';
8301         s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
8302         s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
8303         s << '}';
8304         return s;
8305 }
8306
8307 std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
8308 {
8309         s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
8310         s << "\tsType = " << value.sType << '\n';
8311         s << "\tpNext = " << value.pNext << '\n';
8312         s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
8313         s << '}';
8314         return s;
8315 }
8316
8317 std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
8318 {
8319         s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
8320         s << "\tsType = " << value.sType << '\n';
8321         s << "\tpNext = " << value.pNext << '\n';
8322         s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
8323         s << '}';
8324         return s;
8325 }
8326
8327 std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
8328 {
8329         s << "VkRefreshCycleDurationGOOGLE = {\n";
8330         s << "\trefreshDuration = " << value.refreshDuration << '\n';
8331         s << '}';
8332         return s;
8333 }
8334
8335 std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
8336 {
8337         s << "VkPastPresentationTimingGOOGLE = {\n";
8338         s << "\tpresentID = " << value.presentID << '\n';
8339         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8340         s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
8341         s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
8342         s << "\tpresentMargin = " << value.presentMargin << '\n';
8343         s << '}';
8344         return s;
8345 }
8346
8347 std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
8348 {
8349         s << "VkPresentTimesInfoGOOGLE = {\n";
8350         s << "\tsType = " << value.sType << '\n';
8351         s << "\tpNext = " << value.pNext << '\n';
8352         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8353         s << "\tpTimes = " << value.pTimes << '\n';
8354         s << '}';
8355         return s;
8356 }
8357
8358 std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
8359 {
8360         s << "VkPresentTimeGOOGLE = {\n";
8361         s << "\tpresentID = " << value.presentID << '\n';
8362         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
8363         s << '}';
8364         return s;
8365 }
8366
8367 std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
8368 {
8369         s << "VkIOSSurfaceCreateInfoMVK = {\n";
8370         s << "\tsType = " << value.sType << '\n';
8371         s << "\tpNext = " << value.pNext << '\n';
8372         s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8373         s << "\tpView = " << value.pView << '\n';
8374         s << '}';
8375         return s;
8376 }
8377
8378 std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
8379 {
8380         s << "VkMacOSSurfaceCreateInfoMVK = {\n";
8381         s << "\tsType = " << value.sType << '\n';
8382         s << "\tpNext = " << value.pNext << '\n';
8383         s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
8384         s << "\tpView = " << value.pView << '\n';
8385         s << '}';
8386         return s;
8387 }
8388
8389 std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
8390 {
8391         s << "VkMetalSurfaceCreateInfoEXT = {\n";
8392         s << "\tsType = " << value.sType << '\n';
8393         s << "\tpNext = " << value.pNext << '\n';
8394         s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
8395         s << "\tpLayer = " << value.pLayer << '\n';
8396         s << '}';
8397         return s;
8398 }
8399
8400 std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
8401 {
8402         s << "VkViewportWScalingNV = {\n";
8403         s << "\txcoeff = " << value.xcoeff << '\n';
8404         s << "\tycoeff = " << value.ycoeff << '\n';
8405         s << '}';
8406         return s;
8407 }
8408
8409 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
8410 {
8411         s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
8412         s << "\tsType = " << value.sType << '\n';
8413         s << "\tpNext = " << value.pNext << '\n';
8414         s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
8415         s << "\tviewportCount = " << value.viewportCount << '\n';
8416         s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
8417         s << '}';
8418         return s;
8419 }
8420
8421 std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
8422 {
8423         s << "VkViewportSwizzleNV = {\n";
8424         s << "\tx = " << value.x << '\n';
8425         s << "\ty = " << value.y << '\n';
8426         s << "\tz = " << value.z << '\n';
8427         s << "\tw = " << value.w << '\n';
8428         s << '}';
8429         return s;
8430 }
8431
8432 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
8433 {
8434         s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
8435         s << "\tsType = " << value.sType << '\n';
8436         s << "\tpNext = " << value.pNext << '\n';
8437         s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
8438         s << "\tviewportCount = " << value.viewportCount << '\n';
8439         s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
8440         s << '}';
8441         return s;
8442 }
8443
8444 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
8445 {
8446         s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
8447         s << "\tsType = " << value.sType << '\n';
8448         s << "\tpNext = " << value.pNext << '\n';
8449         s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
8450         s << '}';
8451         return s;
8452 }
8453
8454 std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
8455 {
8456         s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
8457         s << "\tsType = " << value.sType << '\n';
8458         s << "\tpNext = " << value.pNext << '\n';
8459         s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
8460         s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
8461         s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
8462         s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
8463         s << '}';
8464         return s;
8465 }
8466
8467 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
8468 {
8469         s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
8470         s << "\tsType = " << value.sType << '\n';
8471         s << "\tpNext = " << value.pNext << '\n';
8472         s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
8473         s << '}';
8474         return s;
8475 }
8476
8477 std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
8478 {
8479         s << "VkInputAttachmentAspectReference = {\n";
8480         s << "\tsubpass = " << value.subpass << '\n';
8481         s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
8482         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
8483         s << '}';
8484         return s;
8485 }
8486
8487 std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
8488 {
8489         s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
8490         s << "\tsType = " << value.sType << '\n';
8491         s << "\tpNext = " << value.pNext << '\n';
8492         s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
8493         s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
8494         s << '}';
8495         return s;
8496 }
8497
8498 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
8499 {
8500         s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
8501         s << "\tsType = " << value.sType << '\n';
8502         s << "\tpNext = " << value.pNext << '\n';
8503         s << "\tsurface = " << value.surface << '\n';
8504         s << '}';
8505         return s;
8506 }
8507
8508 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
8509 {
8510         s << "VkSurfaceCapabilities2KHR = {\n";
8511         s << "\tsType = " << value.sType << '\n';
8512         s << "\tpNext = " << value.pNext << '\n';
8513         s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
8514         s << '}';
8515         return s;
8516 }
8517
8518 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
8519 {
8520         s << "VkSurfaceFormat2KHR = {\n";
8521         s << "\tsType = " << value.sType << '\n';
8522         s << "\tpNext = " << value.pNext << '\n';
8523         s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
8524         s << '}';
8525         return s;
8526 }
8527
8528 std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
8529 {
8530         s << "VkDisplayProperties2KHR = {\n";
8531         s << "\tsType = " << value.sType << '\n';
8532         s << "\tpNext = " << value.pNext << '\n';
8533         s << "\tdisplayProperties = " << value.displayProperties << '\n';
8534         s << '}';
8535         return s;
8536 }
8537
8538 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
8539 {
8540         s << "VkDisplayPlaneProperties2KHR = {\n";
8541         s << "\tsType = " << value.sType << '\n';
8542         s << "\tpNext = " << value.pNext << '\n';
8543         s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
8544         s << '}';
8545         return s;
8546 }
8547
8548 std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
8549 {
8550         s << "VkDisplayModeProperties2KHR = {\n";
8551         s << "\tsType = " << value.sType << '\n';
8552         s << "\tpNext = " << value.pNext << '\n';
8553         s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
8554         s << '}';
8555         return s;
8556 }
8557
8558 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
8559 {
8560         s << "VkDisplayPlaneInfo2KHR = {\n";
8561         s << "\tsType = " << value.sType << '\n';
8562         s << "\tpNext = " << value.pNext << '\n';
8563         s << "\tmode = " << value.mode << '\n';
8564         s << "\tplaneIndex = " << value.planeIndex << '\n';
8565         s << '}';
8566         return s;
8567 }
8568
8569 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
8570 {
8571         s << "VkDisplayPlaneCapabilities2KHR = {\n";
8572         s << "\tsType = " << value.sType << '\n';
8573         s << "\tpNext = " << value.pNext << '\n';
8574         s << "\tcapabilities = " << value.capabilities << '\n';
8575         s << '}';
8576         return s;
8577 }
8578
8579 std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
8580 {
8581         s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
8582         s << "\tsType = " << value.sType << '\n';
8583         s << "\tpNext = " << value.pNext << '\n';
8584         s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
8585         s << '}';
8586         return s;
8587 }
8588
8589 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
8590 {
8591         s << "VkPhysicalDevice16BitStorageFeatures = {\n";
8592         s << "\tsType = " << value.sType << '\n';
8593         s << "\tpNext = " << value.pNext << '\n';
8594         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
8595         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
8596         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
8597         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
8598         s << '}';
8599         return s;
8600 }
8601
8602 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
8603 {
8604         s << "VkPhysicalDeviceSubgroupProperties = {\n";
8605         s << "\tsType = " << value.sType << '\n';
8606         s << "\tpNext = " << value.pNext << '\n';
8607         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
8608         s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
8609         s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
8610         s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
8611         s << '}';
8612         return s;
8613 }
8614
8615 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
8616 {
8617         s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
8618         s << "\tsType = " << value.sType << '\n';
8619         s << "\tpNext = " << value.pNext << '\n';
8620         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
8621         s << '}';
8622         return s;
8623 }
8624
8625 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
8626 {
8627         s << "VkBufferMemoryRequirementsInfo2 = {\n";
8628         s << "\tsType = " << value.sType << '\n';
8629         s << "\tpNext = " << value.pNext << '\n';
8630         s << "\tbuffer = " << value.buffer << '\n';
8631         s << '}';
8632         return s;
8633 }
8634
8635 std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
8636 {
8637         s << "VkDeviceBufferMemoryRequirements = {\n";
8638         s << "\tsType = " << value.sType << '\n';
8639         s << "\tpNext = " << value.pNext << '\n';
8640         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8641         s << '}';
8642         return s;
8643 }
8644
8645 std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
8646 {
8647         s << "VkImageMemoryRequirementsInfo2 = {\n";
8648         s << "\tsType = " << value.sType << '\n';
8649         s << "\tpNext = " << value.pNext << '\n';
8650         s << "\timage = " << value.image << '\n';
8651         s << '}';
8652         return s;
8653 }
8654
8655 std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
8656 {
8657         s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
8658         s << "\tsType = " << value.sType << '\n';
8659         s << "\tpNext = " << value.pNext << '\n';
8660         s << "\timage = " << value.image << '\n';
8661         s << '}';
8662         return s;
8663 }
8664
8665 std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
8666 {
8667         s << "VkDeviceImageMemoryRequirements = {\n";
8668         s << "\tsType = " << value.sType << '\n';
8669         s << "\tpNext = " << value.pNext << '\n';
8670         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8671         s << "\tplaneAspect = " << value.planeAspect << '\n';
8672         s << '}';
8673         return s;
8674 }
8675
8676 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
8677 {
8678         s << "VkMemoryRequirements2 = {\n";
8679         s << "\tsType = " << value.sType << '\n';
8680         s << "\tpNext = " << value.pNext << '\n';
8681         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8682         s << '}';
8683         return s;
8684 }
8685
8686 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
8687 {
8688         s << "VkSparseImageMemoryRequirements2 = {\n";
8689         s << "\tsType = " << value.sType << '\n';
8690         s << "\tpNext = " << value.pNext << '\n';
8691         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
8692         s << '}';
8693         return s;
8694 }
8695
8696 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
8697 {
8698         s << "VkPhysicalDevicePointClippingProperties = {\n";
8699         s << "\tsType = " << value.sType << '\n';
8700         s << "\tpNext = " << value.pNext << '\n';
8701         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
8702         s << '}';
8703         return s;
8704 }
8705
8706 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
8707 {
8708         s << "VkMemoryDedicatedRequirements = {\n";
8709         s << "\tsType = " << value.sType << '\n';
8710         s << "\tpNext = " << value.pNext << '\n';
8711         s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
8712         s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
8713         s << '}';
8714         return s;
8715 }
8716
8717 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
8718 {
8719         s << "VkMemoryDedicatedAllocateInfo = {\n";
8720         s << "\tsType = " << value.sType << '\n';
8721         s << "\tpNext = " << value.pNext << '\n';
8722         s << "\timage = " << value.image << '\n';
8723         s << "\tbuffer = " << value.buffer << '\n';
8724         s << '}';
8725         return s;
8726 }
8727
8728 std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
8729 {
8730         s << "VkImageViewUsageCreateInfo = {\n";
8731         s << "\tsType = " << value.sType << '\n';
8732         s << "\tpNext = " << value.pNext << '\n';
8733         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
8734         s << '}';
8735         return s;
8736 }
8737
8738 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
8739 {
8740         s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
8741         s << "\tsType = " << value.sType << '\n';
8742         s << "\tpNext = " << value.pNext << '\n';
8743         s << "\tdomainOrigin = " << value.domainOrigin << '\n';
8744         s << '}';
8745         return s;
8746 }
8747
8748 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
8749 {
8750         s << "VkSamplerYcbcrConversionInfo = {\n";
8751         s << "\tsType = " << value.sType << '\n';
8752         s << "\tpNext = " << value.pNext << '\n';
8753         s << "\tconversion = " << value.conversion << '\n';
8754         s << '}';
8755         return s;
8756 }
8757
8758 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
8759 {
8760         s << "VkSamplerYcbcrConversionCreateInfo = {\n";
8761         s << "\tsType = " << value.sType << '\n';
8762         s << "\tpNext = " << value.pNext << '\n';
8763         s << "\tformat = " << value.format << '\n';
8764         s << "\tycbcrModel = " << value.ycbcrModel << '\n';
8765         s << "\tycbcrRange = " << value.ycbcrRange << '\n';
8766         s << "\tcomponents = " << value.components << '\n';
8767         s << "\txChromaOffset = " << value.xChromaOffset << '\n';
8768         s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
8769         s << "\tchromaFilter = " << value.chromaFilter << '\n';
8770         s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
8771         s << '}';
8772         return s;
8773 }
8774
8775 std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
8776 {
8777         s << "VkBindImagePlaneMemoryInfo = {\n";
8778         s << "\tsType = " << value.sType << '\n';
8779         s << "\tpNext = " << value.pNext << '\n';
8780         s << "\tplaneAspect = " << value.planeAspect << '\n';
8781         s << '}';
8782         return s;
8783 }
8784
8785 std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
8786 {
8787         s << "VkImagePlaneMemoryRequirementsInfo = {\n";
8788         s << "\tsType = " << value.sType << '\n';
8789         s << "\tpNext = " << value.pNext << '\n';
8790         s << "\tplaneAspect = " << value.planeAspect << '\n';
8791         s << '}';
8792         return s;
8793 }
8794
8795 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
8796 {
8797         s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
8798         s << "\tsType = " << value.sType << '\n';
8799         s << "\tpNext = " << value.pNext << '\n';
8800         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
8801         s << '}';
8802         return s;
8803 }
8804
8805 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
8806 {
8807         s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
8808         s << "\tsType = " << value.sType << '\n';
8809         s << "\tpNext = " << value.pNext << '\n';
8810         s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
8811         s << '}';
8812         return s;
8813 }
8814
8815 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
8816 {
8817         s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
8818         s << "\tsType = " << value.sType << '\n';
8819         s << "\tpNext = " << value.pNext << '\n';
8820         s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
8821         s << '}';
8822         return s;
8823 }
8824
8825 std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
8826 {
8827         s << "VkConditionalRenderingBeginInfoEXT = {\n";
8828         s << "\tsType = " << value.sType << '\n';
8829         s << "\tpNext = " << value.pNext << '\n';
8830         s << "\tbuffer = " << value.buffer << '\n';
8831         s << "\toffset = " << value.offset << '\n';
8832         s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
8833         s << '}';
8834         return s;
8835 }
8836
8837 std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
8838 {
8839         s << "VkProtectedSubmitInfo = {\n";
8840         s << "\tsType = " << value.sType << '\n';
8841         s << "\tpNext = " << value.pNext << '\n';
8842         s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
8843         s << '}';
8844         return s;
8845 }
8846
8847 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
8848 {
8849         s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
8850         s << "\tsType = " << value.sType << '\n';
8851         s << "\tpNext = " << value.pNext << '\n';
8852         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
8853         s << '}';
8854         return s;
8855 }
8856
8857 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
8858 {
8859         s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
8860         s << "\tsType = " << value.sType << '\n';
8861         s << "\tpNext = " << value.pNext << '\n';
8862         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
8863         s << '}';
8864         return s;
8865 }
8866
8867 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
8868 {
8869         s << "VkDeviceQueueInfo2 = {\n";
8870         s << "\tsType = " << value.sType << '\n';
8871         s << "\tpNext = " << value.pNext << '\n';
8872         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
8873         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
8874         s << "\tqueueIndex = " << value.queueIndex << '\n';
8875         s << '}';
8876         return s;
8877 }
8878
8879 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
8880 {
8881         s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
8882         s << "\tsType = " << value.sType << '\n';
8883         s << "\tpNext = " << value.pNext << '\n';
8884         s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
8885         s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
8886         s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
8887         s << '}';
8888         return s;
8889 }
8890
8891 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
8892 {
8893         s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
8894         s << "\tsType = " << value.sType << '\n';
8895         s << "\tpNext = " << value.pNext << '\n';
8896         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
8897         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
8898         s << '}';
8899         return s;
8900 }
8901
8902 std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
8903 {
8904         s << "VkSampleLocationEXT = {\n";
8905         s << "\tx = " << value.x << '\n';
8906         s << "\ty = " << value.y << '\n';
8907         s << '}';
8908         return s;
8909 }
8910
8911 std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
8912 {
8913         s << "VkSampleLocationsInfoEXT = {\n";
8914         s << "\tsType = " << value.sType << '\n';
8915         s << "\tpNext = " << value.pNext << '\n';
8916         s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
8917         s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
8918         s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
8919         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
8920         s << '}';
8921         return s;
8922 }
8923
8924 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
8925 {
8926         s << "VkAttachmentSampleLocationsEXT = {\n";
8927         s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
8928         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8929         s << '}';
8930         return s;
8931 }
8932
8933 std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
8934 {
8935         s << "VkSubpassSampleLocationsEXT = {\n";
8936         s << "\tsubpassIndex = " << value.subpassIndex << '\n';
8937         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8938         s << '}';
8939         return s;
8940 }
8941
8942 std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
8943 {
8944         s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
8945         s << "\tsType = " << value.sType << '\n';
8946         s << "\tpNext = " << value.pNext << '\n';
8947         s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
8948         s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
8949         s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
8950         s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
8951         s << '}';
8952         return s;
8953 }
8954
8955 std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
8956 {
8957         s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
8958         s << "\tsType = " << value.sType << '\n';
8959         s << "\tpNext = " << value.pNext << '\n';
8960         s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
8961         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
8962         s << '}';
8963         return s;
8964 }
8965
8966 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
8967 {
8968         s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
8969         s << "\tsType = " << value.sType << '\n';
8970         s << "\tpNext = " << value.pNext << '\n';
8971         s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
8972         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
8973         s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
8974         s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
8975         s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
8976         s << '}';
8977         return s;
8978 }
8979
8980 std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
8981 {
8982         s << "VkMultisamplePropertiesEXT = {\n";
8983         s << "\tsType = " << value.sType << '\n';
8984         s << "\tpNext = " << value.pNext << '\n';
8985         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
8986         s << '}';
8987         return s;
8988 }
8989
8990 std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
8991 {
8992         s << "VkSamplerReductionModeCreateInfo = {\n";
8993         s << "\tsType = " << value.sType << '\n';
8994         s << "\tpNext = " << value.pNext << '\n';
8995         s << "\treductionMode = " << value.reductionMode << '\n';
8996         s << '}';
8997         return s;
8998 }
8999
9000 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
9001 {
9002         s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
9003         s << "\tsType = " << value.sType << '\n';
9004         s << "\tpNext = " << value.pNext << '\n';
9005         s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
9006         s << '}';
9007         return s;
9008 }
9009
9010 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
9011 {
9012         s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
9013         s << "\tsType = " << value.sType << '\n';
9014         s << "\tpNext = " << value.pNext << '\n';
9015         s << "\tmultiDraw = " << value.multiDraw << '\n';
9016         s << '}';
9017         return s;
9018 }
9019
9020 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
9021 {
9022         s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
9023         s << "\tsType = " << value.sType << '\n';
9024         s << "\tpNext = " << value.pNext << '\n';
9025         s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
9026         s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
9027         s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
9028         s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
9029         s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
9030         s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
9031         s << '}';
9032         return s;
9033 }
9034
9035 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
9036 {
9037         s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
9038         s << "\tsType = " << value.sType << '\n';
9039         s << "\tpNext = " << value.pNext << '\n';
9040         s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
9041         s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
9042         s << "\tblendOverlap = " << value.blendOverlap << '\n';
9043         s << '}';
9044         return s;
9045 }
9046
9047 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
9048 {
9049         s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
9050         s << "\tsType = " << value.sType << '\n';
9051         s << "\tpNext = " << value.pNext << '\n';
9052         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
9053         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
9054         s << '}';
9055         return s;
9056 }
9057
9058 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
9059 {
9060         s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
9061         s << "\tsType = " << value.sType << '\n';
9062         s << "\tpNext = " << value.pNext << '\n';
9063         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
9064         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
9065         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
9066         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
9067         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
9068         s << '}';
9069         return s;
9070 }
9071
9072 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
9073 {
9074         s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
9075         s << "\tsType = " << value.sType << '\n';
9076         s << "\tpNext = " << value.pNext << '\n';
9077         s << "\tdataSize = " << value.dataSize << '\n';
9078         s << "\tpData = " << value.pData << '\n';
9079         s << '}';
9080         return s;
9081 }
9082
9083 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
9084 {
9085         s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
9086         s << "\tsType = " << value.sType << '\n';
9087         s << "\tpNext = " << value.pNext << '\n';
9088         s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
9089         s << '}';
9090         return s;
9091 }
9092
9093 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
9094 {
9095         s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
9096         s << "\tsType = " << value.sType << '\n';
9097         s << "\tpNext = " << value.pNext << '\n';
9098         s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
9099         s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
9100         s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
9101         s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
9102         s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
9103         s << '}';
9104         return s;
9105 }
9106
9107 std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
9108 {
9109         s << "VkImageFormatListCreateInfo = {\n";
9110         s << "\tsType = " << value.sType << '\n';
9111         s << "\tpNext = " << value.pNext << '\n';
9112         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
9113         s << "\tpViewFormats = " << value.pViewFormats << '\n';
9114         s << '}';
9115         return s;
9116 }
9117
9118 std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
9119 {
9120         s << "VkValidationCacheCreateInfoEXT = {\n";
9121         s << "\tsType = " << value.sType << '\n';
9122         s << "\tpNext = " << value.pNext << '\n';
9123         s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
9124         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
9125         s << "\tpInitialData = " << value.pInitialData << '\n';
9126         s << '}';
9127         return s;
9128 }
9129
9130 std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
9131 {
9132         s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
9133         s << "\tsType = " << value.sType << '\n';
9134         s << "\tpNext = " << value.pNext << '\n';
9135         s << "\tvalidationCache = " << value.validationCache << '\n';
9136         s << '}';
9137         return s;
9138 }
9139
9140 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
9141 {
9142         s << "VkPhysicalDeviceMaintenance3Properties = {\n";
9143         s << "\tsType = " << value.sType << '\n';
9144         s << "\tpNext = " << value.pNext << '\n';
9145         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
9146         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
9147         s << '}';
9148         return s;
9149 }
9150
9151 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
9152 {
9153         s << "VkPhysicalDeviceMaintenance4Features = {\n";
9154         s << "\tsType = " << value.sType << '\n';
9155         s << "\tpNext = " << value.pNext << '\n';
9156         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
9157         s << '}';
9158         return s;
9159 }
9160
9161 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
9162 {
9163         s << "VkPhysicalDeviceMaintenance4Properties = {\n";
9164         s << "\tsType = " << value.sType << '\n';
9165         s << "\tpNext = " << value.pNext << '\n';
9166         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
9167         s << '}';
9168         return s;
9169 }
9170
9171 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
9172 {
9173         s << "VkDescriptorSetLayoutSupport = {\n";
9174         s << "\tsType = " << value.sType << '\n';
9175         s << "\tpNext = " << value.pNext << '\n';
9176         s << "\tsupported = " << value.supported << '\n';
9177         s << '}';
9178         return s;
9179 }
9180
9181 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
9182 {
9183         s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
9184         s << "\tsType = " << value.sType << '\n';
9185         s << "\tpNext = " << value.pNext << '\n';
9186         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
9187         s << '}';
9188         return s;
9189 }
9190
9191 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
9192 {
9193         s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
9194         s << "\tsType = " << value.sType << '\n';
9195         s << "\tpNext = " << value.pNext << '\n';
9196         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
9197         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
9198         s << '}';
9199         return s;
9200 }
9201
9202 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
9203 {
9204         s << "VkPhysicalDeviceFloatControlsProperties = {\n";
9205         s << "\tsType = " << value.sType << '\n';
9206         s << "\tpNext = " << value.pNext << '\n';
9207         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
9208         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
9209         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
9210         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
9211         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
9212         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
9213         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
9214         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
9215         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
9216         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
9217         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
9218         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
9219         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
9220         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
9221         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
9222         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
9223         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
9224         s << '}';
9225         return s;
9226 }
9227
9228 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
9229 {
9230         s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
9231         s << "\tsType = " << value.sType << '\n';
9232         s << "\tpNext = " << value.pNext << '\n';
9233         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
9234         s << '}';
9235         return s;
9236 }
9237
9238 std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
9239 {
9240         s << "VkShaderResourceUsageAMD = {\n";
9241         s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
9242         s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
9243         s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
9244         s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
9245         s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
9246         s << '}';
9247         return s;
9248 }
9249
9250 std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
9251 {
9252         s << "VkShaderStatisticsInfoAMD = {\n";
9253         s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
9254         s << "\tresourceUsage = " << value.resourceUsage << '\n';
9255         s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
9256         s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
9257         s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
9258         s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
9259         s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
9260         s << '}';
9261         return s;
9262 }
9263
9264 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
9265 {
9266         s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
9267         s << "\tsType = " << value.sType << '\n';
9268         s << "\tpNext = " << value.pNext << '\n';
9269         s << "\tglobalPriority = " << value.globalPriority << '\n';
9270         s << '}';
9271         return s;
9272 }
9273
9274 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
9275 {
9276         s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
9277         s << "\tsType = " << value.sType << '\n';
9278         s << "\tpNext = " << value.pNext << '\n';
9279         s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
9280         s << '}';
9281         return s;
9282 }
9283
9284 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
9285 {
9286         s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
9287         s << "\tsType = " << value.sType << '\n';
9288         s << "\tpNext = " << value.pNext << '\n';
9289         s << "\tpriorityCount = " << value.priorityCount << '\n';
9290         s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
9291         s << '}';
9292         return s;
9293 }
9294
9295 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
9296 {
9297         s << "VkDebugUtilsObjectNameInfoEXT = {\n";
9298         s << "\tsType = " << value.sType << '\n';
9299         s << "\tpNext = " << value.pNext << '\n';
9300         s << "\tobjectType = " << value.objectType << '\n';
9301         s << "\tobjectHandle = " << value.objectHandle << '\n';
9302         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9303         s << '}';
9304         return s;
9305 }
9306
9307 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
9308 {
9309         s << "VkDebugUtilsObjectTagInfoEXT = {\n";
9310         s << "\tsType = " << value.sType << '\n';
9311         s << "\tpNext = " << value.pNext << '\n';
9312         s << "\tobjectType = " << value.objectType << '\n';
9313         s << "\tobjectHandle = " << value.objectHandle << '\n';
9314         s << "\ttagName = " << value.tagName << '\n';
9315         s << "\ttagSize = " << value.tagSize << '\n';
9316         s << "\tpTag = " << value.pTag << '\n';
9317         s << '}';
9318         return s;
9319 }
9320
9321 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9322 {
9323         s << "VkDebugUtilsLabelEXT = {\n";
9324         s << "\tsType = " << value.sType << '\n';
9325         s << "\tpNext = " << value.pNext << '\n';
9326         s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9327         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9328         s << '}';
9329         return s;
9330 }
9331
9332 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9333 {
9334         s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9335         s << "\tsType = " << value.sType << '\n';
9336         s << "\tpNext = " << value.pNext << '\n';
9337         s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9338         s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9339         s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9340         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9341         s << "\tpUserData = " << value.pUserData << '\n';
9342         s << '}';
9343         return s;
9344 }
9345
9346 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9347 {
9348         s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9349         s << "\tsType = " << value.sType << '\n';
9350         s << "\tpNext = " << value.pNext << '\n';
9351         s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9352         s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9353         s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9354         s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9355         s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9356         s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9357         s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9358         s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9359         s << "\tobjectCount = " << value.objectCount << '\n';
9360         s << "\tpObjects = " << value.pObjects << '\n';
9361         s << '}';
9362         return s;
9363 }
9364
9365 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
9366 {
9367         s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
9368         s << "\tsType = " << value.sType << '\n';
9369         s << "\tpNext = " << value.pNext << '\n';
9370         s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
9371         s << '}';
9372         return s;
9373 }
9374
9375 std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
9376 {
9377         s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
9378         s << "\tsType = " << value.sType << '\n';
9379         s << "\tpNext = " << value.pNext << '\n';
9380         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9381         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9382         s << "\tpUserData = " << value.pUserData << '\n';
9383         s << '}';
9384         return s;
9385 }
9386
9387 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
9388 {
9389         s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
9390         s << "\tsType = " << value.sType << '\n';
9391         s << "\tpNext = " << value.pNext << '\n';
9392         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
9393         s << "\ttype = " << value.type << '\n';
9394         s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
9395         s << "\tsize = " << value.size << '\n';
9396         s << "\tobjectType = " << value.objectType << '\n';
9397         s << "\tobjectHandle = " << value.objectHandle << '\n';
9398         s << "\theapIndex = " << value.heapIndex << '\n';
9399         s << '}';
9400         return s;
9401 }
9402
9403 std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
9404 {
9405         s << "VkImportMemoryHostPointerInfoEXT = {\n";
9406         s << "\tsType = " << value.sType << '\n';
9407         s << "\tpNext = " << value.pNext << '\n';
9408         s << "\thandleType = " << value.handleType << '\n';
9409         s << "\tpHostPointer = " << value.pHostPointer << '\n';
9410         s << '}';
9411         return s;
9412 }
9413
9414 std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
9415 {
9416         s << "VkMemoryHostPointerPropertiesEXT = {\n";
9417         s << "\tsType = " << value.sType << '\n';
9418         s << "\tpNext = " << value.pNext << '\n';
9419         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9420         s << '}';
9421         return s;
9422 }
9423
9424 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
9425 {
9426         s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
9427         s << "\tsType = " << value.sType << '\n';
9428         s << "\tpNext = " << value.pNext << '\n';
9429         s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
9430         s << '}';
9431         return s;
9432 }
9433
9434 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
9435 {
9436         s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
9437         s << "\tsType = " << value.sType << '\n';
9438         s << "\tpNext = " << value.pNext << '\n';
9439         s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
9440         s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
9441         s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
9442         s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
9443         s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
9444         s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
9445         s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
9446         s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
9447         s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
9448         s << '}';
9449         return s;
9450 }
9451
9452 std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
9453 {
9454         s << "VkCalibratedTimestampInfoEXT = {\n";
9455         s << "\tsType = " << value.sType << '\n';
9456         s << "\tpNext = " << value.pNext << '\n';
9457         s << "\ttimeDomain = " << value.timeDomain << '\n';
9458         s << '}';
9459         return s;
9460 }
9461
9462 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
9463 {
9464         s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
9465         s << "\tsType = " << value.sType << '\n';
9466         s << "\tpNext = " << value.pNext << '\n';
9467         s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
9468         s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
9469         s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
9470         s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
9471         s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
9472         s << "\twavefrontSize = " << value.wavefrontSize << '\n';
9473         s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
9474         s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
9475         s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
9476         s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
9477         s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
9478         s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
9479         s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
9480         s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
9481         s << '}';
9482         return s;
9483 }
9484
9485 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
9486 {
9487         s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
9488         s << "\tsType = " << value.sType << '\n';
9489         s << "\tpNext = " << value.pNext << '\n';
9490         s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
9491         s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
9492         s << '}';
9493         return s;
9494 }
9495
9496 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
9497 {
9498         s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
9499         s << "\tsType = " << value.sType << '\n';
9500         s << "\tpNext = " << value.pNext << '\n';
9501         s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
9502         s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
9503         s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
9504         s << '}';
9505         return s;
9506 }
9507
9508 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
9509 {
9510         s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
9511         s << "\tsType = " << value.sType << '\n';
9512         s << "\tpNext = " << value.pNext << '\n';
9513         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
9514         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
9515         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
9516         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
9517         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
9518         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
9519         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
9520         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
9521         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
9522         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
9523         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
9524         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
9525         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
9526         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
9527         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
9528         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
9529         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
9530         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
9531         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
9532         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
9533         s << '}';
9534         return s;
9535 }
9536
9537 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
9538 {
9539         s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
9540         s << "\tsType = " << value.sType << '\n';
9541         s << "\tpNext = " << value.pNext << '\n';
9542         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
9543         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
9544         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
9545         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
9546         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
9547         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
9548         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
9549         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
9550         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
9551         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
9552         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
9553         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
9554         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
9555         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
9556         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
9557         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
9558         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
9559         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
9560         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
9561         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
9562         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
9563         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
9564         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
9565         s << '}';
9566         return s;
9567 }
9568
9569 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
9570 {
9571         s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
9572         s << "\tsType = " << value.sType << '\n';
9573         s << "\tpNext = " << value.pNext << '\n';
9574         s << "\tbindingCount = " << value.bindingCount << '\n';
9575         s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
9576         s << '}';
9577         return s;
9578 }
9579
9580 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
9581 {
9582         s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
9583         s << "\tsType = " << value.sType << '\n';
9584         s << "\tpNext = " << value.pNext << '\n';
9585         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
9586         s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
9587         s << '}';
9588         return s;
9589 }
9590
9591 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
9592 {
9593         s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
9594         s << "\tsType = " << value.sType << '\n';
9595         s << "\tpNext = " << value.pNext << '\n';
9596         s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
9597         s << '}';
9598         return s;
9599 }
9600
9601 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
9602 {
9603         s << "VkAttachmentDescription2 = {\n";
9604         s << "\tsType = " << value.sType << '\n';
9605         s << "\tpNext = " << value.pNext << '\n';
9606         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
9607         s << "\tformat = " << value.format << '\n';
9608         s << "\tsamples = " << value.samples << '\n';
9609         s << "\tloadOp = " << value.loadOp << '\n';
9610         s << "\tstoreOp = " << value.storeOp << '\n';
9611         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
9612         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
9613         s << "\tinitialLayout = " << value.initialLayout << '\n';
9614         s << "\tfinalLayout = " << value.finalLayout << '\n';
9615         s << '}';
9616         return s;
9617 }
9618
9619 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
9620 {
9621         s << "VkAttachmentReference2 = {\n";
9622         s << "\tsType = " << value.sType << '\n';
9623         s << "\tpNext = " << value.pNext << '\n';
9624         s << "\tattachment = " << value.attachment << '\n';
9625         s << "\tlayout = " << value.layout << '\n';
9626         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
9627         s << '}';
9628         return s;
9629 }
9630
9631 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
9632 {
9633         s << "VkSubpassDescription2 = {\n";
9634         s << "\tsType = " << value.sType << '\n';
9635         s << "\tpNext = " << value.pNext << '\n';
9636         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
9637         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
9638         s << "\tviewMask = " << value.viewMask << '\n';
9639         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
9640         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
9641         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
9642         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
9643         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
9644         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
9645         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
9646         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
9647         s << '}';
9648         return s;
9649 }
9650
9651 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
9652 {
9653         s << "VkSubpassDependency2 = {\n";
9654         s << "\tsType = " << value.sType << '\n';
9655         s << "\tpNext = " << value.pNext << '\n';
9656         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
9657         s << "\tdstSubpass = " << value.dstSubpass << '\n';
9658         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
9659         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
9660         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
9661         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
9662         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
9663         s << "\tviewOffset = " << value.viewOffset << '\n';
9664         s << '}';
9665         return s;
9666 }
9667
9668 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
9669 {
9670         s << "VkRenderPassCreateInfo2 = {\n";
9671         s << "\tsType = " << value.sType << '\n';
9672         s << "\tpNext = " << value.pNext << '\n';
9673         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
9674         s << "\tattachmentCount = " << value.attachmentCount << '\n';
9675         s << "\tpAttachments = " << value.pAttachments << '\n';
9676         s << "\tsubpassCount = " << value.subpassCount << '\n';
9677         s << "\tpSubpasses = " << value.pSubpasses << '\n';
9678         s << "\tdependencyCount = " << value.dependencyCount << '\n';
9679         s << "\tpDependencies = " << value.pDependencies << '\n';
9680         s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
9681         s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
9682         s << '}';
9683         return s;
9684 }
9685
9686 std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
9687 {
9688         s << "VkSubpassBeginInfo = {\n";
9689         s << "\tsType = " << value.sType << '\n';
9690         s << "\tpNext = " << value.pNext << '\n';
9691         s << "\tcontents = " << value.contents << '\n';
9692         s << '}';
9693         return s;
9694 }
9695
9696 std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
9697 {
9698         s << "VkSubpassEndInfo = {\n";
9699         s << "\tsType = " << value.sType << '\n';
9700         s << "\tpNext = " << value.pNext << '\n';
9701         s << '}';
9702         return s;
9703 }
9704
9705 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
9706 {
9707         s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
9708         s << "\tsType = " << value.sType << '\n';
9709         s << "\tpNext = " << value.pNext << '\n';
9710         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
9711         s << '}';
9712         return s;
9713 }
9714
9715 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
9716 {
9717         s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
9718         s << "\tsType = " << value.sType << '\n';
9719         s << "\tpNext = " << value.pNext << '\n';
9720         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
9721         s << '}';
9722         return s;
9723 }
9724
9725 std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
9726 {
9727         s << "VkSemaphoreTypeCreateInfo = {\n";
9728         s << "\tsType = " << value.sType << '\n';
9729         s << "\tpNext = " << value.pNext << '\n';
9730         s << "\tsemaphoreType = " << value.semaphoreType << '\n';
9731         s << "\tinitialValue = " << value.initialValue << '\n';
9732         s << '}';
9733         return s;
9734 }
9735
9736 std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
9737 {
9738         s << "VkTimelineSemaphoreSubmitInfo = {\n";
9739         s << "\tsType = " << value.sType << '\n';
9740         s << "\tpNext = " << value.pNext << '\n';
9741         s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
9742         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
9743         s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
9744         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
9745         s << '}';
9746         return s;
9747 }
9748
9749 std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
9750 {
9751         s << "VkSemaphoreWaitInfo = {\n";
9752         s << "\tsType = " << value.sType << '\n';
9753         s << "\tpNext = " << value.pNext << '\n';
9754         s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
9755         s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
9756         s << "\tpSemaphores = " << value.pSemaphores << '\n';
9757         s << "\tpValues = " << value.pValues << '\n';
9758         s << '}';
9759         return s;
9760 }
9761
9762 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
9763 {
9764         s << "VkSemaphoreSignalInfo = {\n";
9765         s << "\tsType = " << value.sType << '\n';
9766         s << "\tpNext = " << value.pNext << '\n';
9767         s << "\tsemaphore = " << value.semaphore << '\n';
9768         s << "\tvalue = " << value.value << '\n';
9769         s << '}';
9770         return s;
9771 }
9772
9773 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
9774 {
9775         s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
9776         s << "\tbinding = " << value.binding << '\n';
9777         s << "\tdivisor = " << value.divisor << '\n';
9778         s << '}';
9779         return s;
9780 }
9781
9782 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
9783 {
9784         s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
9785         s << "\tsType = " << value.sType << '\n';
9786         s << "\tpNext = " << value.pNext << '\n';
9787         s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
9788         s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
9789         s << '}';
9790         return s;
9791 }
9792
9793 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
9794 {
9795         s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
9796         s << "\tsType = " << value.sType << '\n';
9797         s << "\tpNext = " << value.pNext << '\n';
9798         s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
9799         s << '}';
9800         return s;
9801 }
9802
9803 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
9804 {
9805         s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
9806         s << "\tsType = " << value.sType << '\n';
9807         s << "\tpNext = " << value.pNext << '\n';
9808         s << "\tpciDomain = " << value.pciDomain << '\n';
9809         s << "\tpciBus = " << value.pciBus << '\n';
9810         s << "\tpciDevice = " << value.pciDevice << '\n';
9811         s << "\tpciFunction = " << value.pciFunction << '\n';
9812         s << '}';
9813         return s;
9814 }
9815
9816 std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
9817 {
9818         s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
9819         s << "\tsType = " << value.sType << '\n';
9820         s << "\tpNext = " << value.pNext << '\n';
9821         s << "\tbuffer = " << value.buffer << '\n';
9822         s << '}';
9823         return s;
9824 }
9825
9826 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
9827 {
9828         s << "VkAndroidHardwareBufferUsageANDROID = {\n";
9829         s << "\tsType = " << value.sType << '\n';
9830         s << "\tpNext = " << value.pNext << '\n';
9831         s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
9832         s << '}';
9833         return s;
9834 }
9835
9836 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
9837 {
9838         s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
9839         s << "\tsType = " << value.sType << '\n';
9840         s << "\tpNext = " << value.pNext << '\n';
9841         s << "\tallocationSize = " << value.allocationSize << '\n';
9842         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9843         s << '}';
9844         return s;
9845 }
9846
9847 std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
9848 {
9849         s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
9850         s << "\tsType = " << value.sType << '\n';
9851         s << "\tpNext = " << value.pNext << '\n';
9852         s << "\tmemory = " << value.memory << '\n';
9853         s << '}';
9854         return s;
9855 }
9856
9857 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
9858 {
9859         s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
9860         s << "\tsType = " << value.sType << '\n';
9861         s << "\tpNext = " << value.pNext << '\n';
9862         s << "\tformat = " << value.format << '\n';
9863         s << "\texternalFormat = " << value.externalFormat << '\n';
9864         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
9865         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
9866         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
9867         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
9868         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
9869         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
9870         s << '}';
9871         return s;
9872 }
9873
9874 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
9875 {
9876         s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
9877         s << "\tsType = " << value.sType << '\n';
9878         s << "\tpNext = " << value.pNext << '\n';
9879         s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
9880         s << '}';
9881         return s;
9882 }
9883
9884 std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
9885 {
9886         s << "VkExternalFormatANDROID = {\n";
9887         s << "\tsType = " << value.sType << '\n';
9888         s << "\tpNext = " << value.pNext << '\n';
9889         s << "\texternalFormat = " << value.externalFormat << '\n';
9890         s << '}';
9891         return s;
9892 }
9893
9894 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
9895 {
9896         s << "VkPhysicalDevice8BitStorageFeatures = {\n";
9897         s << "\tsType = " << value.sType << '\n';
9898         s << "\tpNext = " << value.pNext << '\n';
9899         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
9900         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
9901         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
9902         s << '}';
9903         return s;
9904 }
9905
9906 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
9907 {
9908         s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
9909         s << "\tsType = " << value.sType << '\n';
9910         s << "\tpNext = " << value.pNext << '\n';
9911         s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
9912         s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
9913         s << '}';
9914         return s;
9915 }
9916
9917 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
9918 {
9919         s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
9920         s << "\tsType = " << value.sType << '\n';
9921         s << "\tpNext = " << value.pNext << '\n';
9922         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
9923         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
9924         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
9925         s << '}';
9926         return s;
9927 }
9928
9929 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
9930 {
9931         s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
9932         s << "\tsType = " << value.sType << '\n';
9933         s << "\tpNext = " << value.pNext << '\n';
9934         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
9935         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
9936         s << '}';
9937         return s;
9938 }
9939
9940 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
9941 {
9942         s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
9943         s << "\tsType = " << value.sType << '\n';
9944         s << "\tpNext = " << value.pNext << '\n';
9945         s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
9946         s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
9947         s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
9948         s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
9949         s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
9950         s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
9951         s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
9952         s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
9953         s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
9954         s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
9955         s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
9956         s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
9957         s << '}';
9958         return s;
9959 }
9960
9961 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
9962 {
9963         s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
9964         s << "\tsType = " << value.sType << '\n';
9965         s << "\tpNext = " << value.pNext << '\n';
9966         s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
9967         s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
9968         s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
9969         s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
9970         s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
9971         s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
9972         s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
9973         s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
9974         s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
9975         s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
9976         s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
9977         s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
9978         s << '}';
9979         return s;
9980 }
9981
9982 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
9983 {
9984         s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
9985         s << "\tsType = " << value.sType << '\n';
9986         s << "\tpNext = " << value.pNext << '\n';
9987         s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
9988         s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
9989         s << '}';
9990         return s;
9991 }
9992
9993 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
9994 {
9995         s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
9996         s << "\tsType = " << value.sType << '\n';
9997         s << "\tpNext = " << value.pNext << '\n';
9998         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
9999         s << '}';
10000         return s;
10001 }
10002
10003 std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
10004 {
10005         s << "VkCheckpointDataNV = {\n";
10006         s << "\tsType = " << value.sType << '\n';
10007         s << "\tpNext = " << value.pNext << '\n';
10008         s << "\tstage = " << value.stage << '\n';
10009         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
10010         s << '}';
10011         return s;
10012 }
10013
10014 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
10015 {
10016         s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
10017         s << "\tsType = " << value.sType << '\n';
10018         s << "\tpNext = " << value.pNext << '\n';
10019         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
10020         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
10021         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
10022         s << "\tindependentResolve = " << value.independentResolve << '\n';
10023         s << '}';
10024         return s;
10025 }
10026
10027 std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
10028 {
10029         s << "VkSubpassDescriptionDepthStencilResolve = {\n";
10030         s << "\tsType = " << value.sType << '\n';
10031         s << "\tpNext = " << value.pNext << '\n';
10032         s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
10033         s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
10034         s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
10035         s << '}';
10036         return s;
10037 }
10038
10039 std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
10040 {
10041         s << "VkImageViewASTCDecodeModeEXT = {\n";
10042         s << "\tsType = " << value.sType << '\n';
10043         s << "\tpNext = " << value.pNext << '\n';
10044         s << "\tdecodeMode = " << value.decodeMode << '\n';
10045         s << '}';
10046         return s;
10047 }
10048
10049 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
10050 {
10051         s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
10052         s << "\tsType = " << value.sType << '\n';
10053         s << "\tpNext = " << value.pNext << '\n';
10054         s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
10055         s << '}';
10056         return s;
10057 }
10058
10059 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
10060 {
10061         s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
10062         s << "\tsType = " << value.sType << '\n';
10063         s << "\tpNext = " << value.pNext << '\n';
10064         s << "\ttransformFeedback = " << value.transformFeedback << '\n';
10065         s << "\tgeometryStreams = " << value.geometryStreams << '\n';
10066         s << '}';
10067         return s;
10068 }
10069
10070 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
10071 {
10072         s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
10073         s << "\tsType = " << value.sType << '\n';
10074         s << "\tpNext = " << value.pNext << '\n';
10075         s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
10076         s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
10077         s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
10078         s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
10079         s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
10080         s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
10081         s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
10082         s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
10083         s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
10084         s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
10085         s << '}';
10086         return s;
10087 }
10088
10089 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
10090 {
10091         s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
10092         s << "\tsType = " << value.sType << '\n';
10093         s << "\tpNext = " << value.pNext << '\n';
10094         s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
10095         s << "\trasterizationStream = " << value.rasterizationStream << '\n';
10096         s << '}';
10097         return s;
10098 }
10099
10100 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
10101 {
10102         s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
10103         s << "\tsType = " << value.sType << '\n';
10104         s << "\tpNext = " << value.pNext << '\n';
10105         s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
10106         s << '}';
10107         return s;
10108 }
10109
10110 std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
10111 {
10112         s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
10113         s << "\tsType = " << value.sType << '\n';
10114         s << "\tpNext = " << value.pNext << '\n';
10115         s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
10116         s << '}';
10117         return s;
10118 }
10119
10120 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
10121 {
10122         s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
10123         s << "\tsType = " << value.sType << '\n';
10124         s << "\tpNext = " << value.pNext << '\n';
10125         s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
10126         s << '}';
10127         return s;
10128 }
10129
10130 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
10131 {
10132         s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
10133         s << "\tsType = " << value.sType << '\n';
10134         s << "\tpNext = " << value.pNext << '\n';
10135         s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
10136         s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
10137         s << '}';
10138         return s;
10139 }
10140
10141 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
10142 {
10143         s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
10144         s << "\tsType = " << value.sType << '\n';
10145         s << "\tpNext = " << value.pNext << '\n';
10146         s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
10147         s << '}';
10148         return s;
10149 }
10150
10151 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10152 {
10153         s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10154         s << "\tsType = " << value.sType << '\n';
10155         s << "\tpNext = " << value.pNext << '\n';
10156         s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10157         s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10158         s << '}';
10159         return s;
10160 }
10161
10162 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
10163 {
10164         s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
10165         s << "\tsType = " << value.sType << '\n';
10166         s << "\tpNext = " << value.pNext << '\n';
10167         s << "\timageFootprint = " << value.imageFootprint << '\n';
10168         s << '}';
10169         return s;
10170 }
10171
10172 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
10173 {
10174         s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
10175         s << "\tsType = " << value.sType << '\n';
10176         s << "\tpNext = " << value.pNext << '\n';
10177         s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
10178         s << '}';
10179         return s;
10180 }
10181
10182 std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
10183 {
10184         s << "VkShadingRatePaletteNV = {\n";
10185         s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
10186         s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
10187         s << '}';
10188         return s;
10189 }
10190
10191 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
10192 {
10193         s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
10194         s << "\tsType = " << value.sType << '\n';
10195         s << "\tpNext = " << value.pNext << '\n';
10196         s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
10197         s << "\tviewportCount = " << value.viewportCount << '\n';
10198         s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
10199         s << '}';
10200         return s;
10201 }
10202
10203 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
10204 {
10205         s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
10206         s << "\tsType = " << value.sType << '\n';
10207         s << "\tpNext = " << value.pNext << '\n';
10208         s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
10209         s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
10210         s << '}';
10211         return s;
10212 }
10213
10214 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
10215 {
10216         s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
10217         s << "\tsType = " << value.sType << '\n';
10218         s << "\tpNext = " << value.pNext << '\n';
10219         s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
10220         s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
10221         s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
10222         s << '}';
10223         return s;
10224 }
10225
10226 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
10227 {
10228         s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
10229         s << "\tsType = " << value.sType << '\n';
10230         s << "\tpNext = " << value.pNext << '\n';
10231         s << "\tinvocationMask = " << value.invocationMask << '\n';
10232         s << '}';
10233         return s;
10234 }
10235
10236 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
10237 {
10238         s << "VkCoarseSampleLocationNV = {\n";
10239         s << "\tpixelX = " << value.pixelX << '\n';
10240         s << "\tpixelY = " << value.pixelY << '\n';
10241         s << "\tsample = " << value.sample << '\n';
10242         s << '}';
10243         return s;
10244 }
10245
10246 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
10247 {
10248         s << "VkCoarseSampleOrderCustomNV = {\n";
10249         s << "\tshadingRate = " << value.shadingRate << '\n';
10250         s << "\tsampleCount = " << value.sampleCount << '\n';
10251         s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
10252         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10253         s << '}';
10254         return s;
10255 }
10256
10257 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
10258 {
10259         s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
10260         s << "\tsType = " << value.sType << '\n';
10261         s << "\tpNext = " << value.pNext << '\n';
10262         s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
10263         s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
10264         s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
10265         s << '}';
10266         return s;
10267 }
10268
10269 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
10270 {
10271         s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
10272         s << "\tsType = " << value.sType << '\n';
10273         s << "\tpNext = " << value.pNext << '\n';
10274         s << "\ttaskShader = " << value.taskShader << '\n';
10275         s << "\tmeshShader = " << value.meshShader << '\n';
10276         s << '}';
10277         return s;
10278 }
10279
10280 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
10281 {
10282         s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
10283         s << "\tsType = " << value.sType << '\n';
10284         s << "\tpNext = " << value.pNext << '\n';
10285         s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
10286         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10287         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10288         s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
10289         s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
10290         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10291         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10292         s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
10293         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10294         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10295         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10296         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10297         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10298         s << '}';
10299         return s;
10300 }
10301
10302 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
10303 {
10304         s << "VkDrawMeshTasksIndirectCommandNV = {\n";
10305         s << "\ttaskCount = " << value.taskCount << '\n';
10306         s << "\tfirstTask = " << value.firstTask << '\n';
10307         s << '}';
10308         return s;
10309 }
10310
10311 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesEXT& value)
10312 {
10313         s << "VkPhysicalDeviceMeshShaderFeaturesEXT = {\n";
10314         s << "\tsType = " << value.sType << '\n';
10315         s << "\tpNext = " << value.pNext << '\n';
10316         s << "\ttaskShader = " << value.taskShader << '\n';
10317         s << "\tmeshShader = " << value.meshShader << '\n';
10318         s << "\tmultiviewMeshShader = " << value.multiviewMeshShader << '\n';
10319         s << "\tprimitiveFragmentShadingRateMeshShader = " << value.primitiveFragmentShadingRateMeshShader << '\n';
10320         s << "\tmeshShaderQueries = " << value.meshShaderQueries << '\n';
10321         s << '}';
10322         return s;
10323 }
10324
10325 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesEXT& value)
10326 {
10327         s << "VkPhysicalDeviceMeshShaderPropertiesEXT = {\n";
10328         s << "\tsType = " << value.sType << '\n';
10329         s << "\tpNext = " << value.pNext << '\n';
10330         s << "\tmaxTaskWorkGroupTotalCount = " << value.maxTaskWorkGroupTotalCount << '\n';
10331         s << "\tmaxTaskWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupCount), DE_ARRAY_END(value.maxTaskWorkGroupCount)) << '\n';
10332         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10333         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10334         s << "\tmaxTaskPayloadSize = " << value.maxTaskPayloadSize << '\n';
10335         s << "\tmaxTaskSharedMemorySize = " << value.maxTaskSharedMemorySize << '\n';
10336         s << "\tmaxTaskPayloadAndSharedMemorySize = " << value.maxTaskPayloadAndSharedMemorySize << '\n';
10337         s << "\tmaxMeshWorkGroupTotalCount = " << value.maxMeshWorkGroupTotalCount << '\n';
10338         s << "\tmaxMeshWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupCount), DE_ARRAY_END(value.maxMeshWorkGroupCount)) << '\n';
10339         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10340         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10341         s << "\tmaxMeshSharedMemorySize = " << value.maxMeshSharedMemorySize << '\n';
10342         s << "\tmaxMeshPayloadAndSharedMemorySize = " << value.maxMeshPayloadAndSharedMemorySize << '\n';
10343         s << "\tmaxMeshOutputMemorySize = " << value.maxMeshOutputMemorySize << '\n';
10344         s << "\tmaxMeshPayloadAndOutputMemorySize = " << value.maxMeshPayloadAndOutputMemorySize << '\n';
10345         s << "\tmaxMeshOutputComponents = " << value.maxMeshOutputComponents << '\n';
10346         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10347         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10348         s << "\tmaxMeshOutputLayers = " << value.maxMeshOutputLayers << '\n';
10349         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10350         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10351         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10352         s << "\tmaxPreferredTaskWorkGroupInvocations = " << value.maxPreferredTaskWorkGroupInvocations << '\n';
10353         s << "\tmaxPreferredMeshWorkGroupInvocations = " << value.maxPreferredMeshWorkGroupInvocations << '\n';
10354         s << "\tprefersLocalInvocationVertexOutput = " << value.prefersLocalInvocationVertexOutput << '\n';
10355         s << "\tprefersLocalInvocationPrimitiveOutput = " << value.prefersLocalInvocationPrimitiveOutput << '\n';
10356         s << "\tprefersCompactVertexOutput = " << value.prefersCompactVertexOutput << '\n';
10357         s << "\tprefersCompactPrimitiveOutput = " << value.prefersCompactPrimitiveOutput << '\n';
10358         s << '}';
10359         return s;
10360 }
10361
10362 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandEXT& value)
10363 {
10364         s << "VkDrawMeshTasksIndirectCommandEXT = {\n";
10365         s << "\tgroupCountX = " << value.groupCountX << '\n';
10366         s << "\tgroupCountY = " << value.groupCountY << '\n';
10367         s << "\tgroupCountZ = " << value.groupCountZ << '\n';
10368         s << '}';
10369         return s;
10370 }
10371
10372 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
10373 {
10374         s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
10375         s << "\tsType = " << value.sType << '\n';
10376         s << "\tpNext = " << value.pNext << '\n';
10377         s << "\ttype = " << value.type << '\n';
10378         s << "\tgeneralShader = " << value.generalShader << '\n';
10379         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10380         s << "\tanyHitShader = " << value.anyHitShader << '\n';
10381         s << "\tintersectionShader = " << value.intersectionShader << '\n';
10382         s << '}';
10383         return s;
10384 }
10385
10386 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
10387 {
10388         s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
10389         s << "\tsType = " << value.sType << '\n';
10390         s << "\tpNext = " << value.pNext << '\n';
10391         s << "\ttype = " << value.type << '\n';
10392         s << "\tgeneralShader = " << value.generalShader << '\n';
10393         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10394         s << "\tanyHitShader = " << value.anyHitShader << '\n';
10395         s << "\tintersectionShader = " << value.intersectionShader << '\n';
10396         s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
10397         s << '}';
10398         return s;
10399 }
10400
10401 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
10402 {
10403         s << "VkRayTracingPipelineCreateInfoNV = {\n";
10404         s << "\tsType = " << value.sType << '\n';
10405         s << "\tpNext = " << value.pNext << '\n';
10406         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10407         s << "\tstageCount = " << value.stageCount << '\n';
10408         s << "\tpStages = " << value.pStages << '\n';
10409         s << "\tgroupCount = " << value.groupCount << '\n';
10410         s << "\tpGroups = " << value.pGroups << '\n';
10411         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10412         s << "\tlayout = " << value.layout << '\n';
10413         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10414         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10415         s << '}';
10416         return s;
10417 }
10418
10419 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
10420 {
10421         s << "VkRayTracingPipelineCreateInfoKHR = {\n";
10422         s << "\tsType = " << value.sType << '\n';
10423         s << "\tpNext = " << value.pNext << '\n';
10424         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10425         s << "\tstageCount = " << value.stageCount << '\n';
10426         s << "\tpStages = " << value.pStages << '\n';
10427         s << "\tgroupCount = " << value.groupCount << '\n';
10428         s << "\tpGroups = " << value.pGroups << '\n';
10429         s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
10430         s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
10431         s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
10432         s << "\tpDynamicState = " << value.pDynamicState << '\n';
10433         s << "\tlayout = " << value.layout << '\n';
10434         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10435         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10436         s << '}';
10437         return s;
10438 }
10439
10440 std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
10441 {
10442         s << "VkGeometryTrianglesNV = {\n";
10443         s << "\tsType = " << value.sType << '\n';
10444         s << "\tpNext = " << value.pNext << '\n';
10445         s << "\tvertexData = " << value.vertexData << '\n';
10446         s << "\tvertexOffset = " << value.vertexOffset << '\n';
10447         s << "\tvertexCount = " << value.vertexCount << '\n';
10448         s << "\tvertexStride = " << value.vertexStride << '\n';
10449         s << "\tvertexFormat = " << value.vertexFormat << '\n';
10450         s << "\tindexData = " << value.indexData << '\n';
10451         s << "\tindexOffset = " << value.indexOffset << '\n';
10452         s << "\tindexCount = " << value.indexCount << '\n';
10453         s << "\tindexType = " << value.indexType << '\n';
10454         s << "\ttransformData = " << value.transformData << '\n';
10455         s << "\ttransformOffset = " << value.transformOffset << '\n';
10456         s << '}';
10457         return s;
10458 }
10459
10460 std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
10461 {
10462         s << "VkGeometryAABBNV = {\n";
10463         s << "\tsType = " << value.sType << '\n';
10464         s << "\tpNext = " << value.pNext << '\n';
10465         s << "\taabbData = " << value.aabbData << '\n';
10466         s << "\tnumAABBs = " << value.numAABBs << '\n';
10467         s << "\tstride = " << value.stride << '\n';
10468         s << "\toffset = " << value.offset << '\n';
10469         s << '}';
10470         return s;
10471 }
10472
10473 std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
10474 {
10475         s << "VkGeometryDataNV = {\n";
10476         s << "\ttriangles = " << value.triangles << '\n';
10477         s << "\taabbs = " << value.aabbs << '\n';
10478         s << '}';
10479         return s;
10480 }
10481
10482 std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
10483 {
10484         s << "VkGeometryNV = {\n";
10485         s << "\tsType = " << value.sType << '\n';
10486         s << "\tpNext = " << value.pNext << '\n';
10487         s << "\tgeometryType = " << value.geometryType << '\n';
10488         s << "\tgeometry = " << value.geometry << '\n';
10489         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
10490         s << '}';
10491         return s;
10492 }
10493
10494 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
10495 {
10496         s << "VkAccelerationStructureInfoNV = {\n";
10497         s << "\tsType = " << value.sType << '\n';
10498         s << "\tpNext = " << value.pNext << '\n';
10499         s << "\ttype = " << value.type << '\n';
10500         s << "\tflags = " << value.flags << '\n';
10501         s << "\tinstanceCount = " << value.instanceCount << '\n';
10502         s << "\tgeometryCount = " << value.geometryCount << '\n';
10503         s << "\tpGeometries = " << value.pGeometries << '\n';
10504         s << '}';
10505         return s;
10506 }
10507
10508 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
10509 {
10510         s << "VkAccelerationStructureCreateInfoNV = {\n";
10511         s << "\tsType = " << value.sType << '\n';
10512         s << "\tpNext = " << value.pNext << '\n';
10513         s << "\tcompactedSize = " << value.compactedSize << '\n';
10514         s << "\tinfo = " << value.info << '\n';
10515         s << '}';
10516         return s;
10517 }
10518
10519 std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
10520 {
10521         s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
10522         s << "\tsType = " << value.sType << '\n';
10523         s << "\tpNext = " << value.pNext << '\n';
10524         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10525         s << "\tmemory = " << value.memory << '\n';
10526         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
10527         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
10528         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
10529         s << '}';
10530         return s;
10531 }
10532
10533 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
10534 {
10535         s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
10536         s << "\tsType = " << value.sType << '\n';
10537         s << "\tpNext = " << value.pNext << '\n';
10538         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10539         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10540         s << '}';
10541         return s;
10542 }
10543
10544 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
10545 {
10546         s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
10547         s << "\tsType = " << value.sType << '\n';
10548         s << "\tpNext = " << value.pNext << '\n';
10549         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10550         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10551         s << '}';
10552         return s;
10553 }
10554
10555 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
10556 {
10557         s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
10558         s << "\tsType = " << value.sType << '\n';
10559         s << "\tpNext = " << value.pNext << '\n';
10560         s << "\ttype = " << value.type << '\n';
10561         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10562         s << '}';
10563         return s;
10564 }
10565
10566 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
10567 {
10568         s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
10569         s << "\tsType = " << value.sType << '\n';
10570         s << "\tpNext = " << value.pNext << '\n';
10571         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10572         s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
10573         s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
10574         s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
10575         s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
10576         s << '}';
10577         return s;
10578 }
10579
10580 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
10581 {
10582         s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
10583         s << "\tsType = " << value.sType << '\n';
10584         s << "\tpNext = " << value.pNext << '\n';
10585         s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
10586         s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
10587         s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
10588         s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
10589         s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
10590         s << '}';
10591         return s;
10592 }
10593
10594 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
10595 {
10596         s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
10597         s << "\tsType = " << value.sType << '\n';
10598         s << "\tpNext = " << value.pNext << '\n';
10599         s << "\trayQuery = " << value.rayQuery << '\n';
10600         s << '}';
10601         return s;
10602 }
10603
10604 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
10605 {
10606         s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
10607         s << "\tsType = " << value.sType << '\n';
10608         s << "\tpNext = " << value.pNext << '\n';
10609         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10610         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10611         s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
10612         s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
10613         s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
10614         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10615         s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
10616         s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
10617         s << '}';
10618         return s;
10619 }
10620
10621 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
10622 {
10623         s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
10624         s << "\tsType = " << value.sType << '\n';
10625         s << "\tpNext = " << value.pNext << '\n';
10626         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10627         s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
10628         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10629         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10630         s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
10631         s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
10632         s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
10633         s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
10634         s << '}';
10635         return s;
10636 }
10637
10638 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
10639 {
10640         s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
10641         s << "\tsType = " << value.sType << '\n';
10642         s << "\tpNext = " << value.pNext << '\n';
10643         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10644         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10645         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10646         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10647         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10648         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10649         s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
10650         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10651         s << '}';
10652         return s;
10653 }
10654
10655 std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
10656 {
10657         s << "VkStridedDeviceAddressRegionKHR = {\n";
10658         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10659         s << "\tstride = " << value.stride << '\n';
10660         s << "\tsize = " << value.size << '\n';
10661         s << '}';
10662         return s;
10663 }
10664
10665 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
10666 {
10667         s << "VkTraceRaysIndirectCommandKHR = {\n";
10668         s << "\twidth = " << value.width << '\n';
10669         s << "\theight = " << value.height << '\n';
10670         s << "\tdepth = " << value.depth << '\n';
10671         s << '}';
10672         return s;
10673 }
10674
10675 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
10676 {
10677         s << "VkTraceRaysIndirectCommand2KHR = {\n";
10678         s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
10679         s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
10680         s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
10681         s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
10682         s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
10683         s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
10684         s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
10685         s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
10686         s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
10687         s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
10688         s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
10689         s << "\twidth = " << value.width << '\n';
10690         s << "\theight = " << value.height << '\n';
10691         s << "\tdepth = " << value.depth << '\n';
10692         s << '}';
10693         return s;
10694 }
10695
10696 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
10697 {
10698         s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
10699         s << "\tsType = " << value.sType << '\n';
10700         s << "\tpNext = " << value.pNext << '\n';
10701         s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
10702         s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
10703         s << '}';
10704         return s;
10705 }
10706
10707 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
10708 {
10709         s << "VkDrmFormatModifierPropertiesListEXT = {\n";
10710         s << "\tsType = " << value.sType << '\n';
10711         s << "\tpNext = " << value.pNext << '\n';
10712         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10713         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10714         s << '}';
10715         return s;
10716 }
10717
10718 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
10719 {
10720         s << "VkDrmFormatModifierPropertiesEXT = {\n";
10721         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10722         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10723         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
10724         s << '}';
10725         return s;
10726 }
10727
10728 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
10729 {
10730         s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
10731         s << "\tsType = " << value.sType << '\n';
10732         s << "\tpNext = " << value.pNext << '\n';
10733         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10734         s << "\tsharingMode = " << value.sharingMode << '\n';
10735         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
10736         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
10737         s << '}';
10738         return s;
10739 }
10740
10741 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
10742 {
10743         s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
10744         s << "\tsType = " << value.sType << '\n';
10745         s << "\tpNext = " << value.pNext << '\n';
10746         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10747         s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
10748         s << '}';
10749         return s;
10750 }
10751
10752 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
10753 {
10754         s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
10755         s << "\tsType = " << value.sType << '\n';
10756         s << "\tpNext = " << value.pNext << '\n';
10757         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10758         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10759         s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
10760         s << '}';
10761         return s;
10762 }
10763
10764 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
10765 {
10766         s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
10767         s << "\tsType = " << value.sType << '\n';
10768         s << "\tpNext = " << value.pNext << '\n';
10769         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10770         s << '}';
10771         return s;
10772 }
10773
10774 std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
10775 {
10776         s << "VkImageStencilUsageCreateInfo = {\n";
10777         s << "\tsType = " << value.sType << '\n';
10778         s << "\tpNext = " << value.pNext << '\n';
10779         s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
10780         s << '}';
10781         return s;
10782 }
10783
10784 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
10785 {
10786         s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
10787         s << "\tsType = " << value.sType << '\n';
10788         s << "\tpNext = " << value.pNext << '\n';
10789         s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
10790         s << '}';
10791         return s;
10792 }
10793
10794 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
10795 {
10796         s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
10797         s << "\tsType = " << value.sType << '\n';
10798         s << "\tpNext = " << value.pNext << '\n';
10799         s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
10800         s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
10801         s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
10802         s << '}';
10803         return s;
10804 }
10805
10806 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
10807 {
10808         s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
10809         s << "\tsType = " << value.sType << '\n';
10810         s << "\tpNext = " << value.pNext << '\n';
10811         s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
10812         s << '}';
10813         return s;
10814 }
10815
10816 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
10817 {
10818         s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
10819         s << "\tsType = " << value.sType << '\n';
10820         s << "\tpNext = " << value.pNext << '\n';
10821         s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
10822         s << '}';
10823         return s;
10824 }
10825
10826 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
10827 {
10828         s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
10829         s << "\tsType = " << value.sType << '\n';
10830         s << "\tpNext = " << value.pNext << '\n';
10831         s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
10832         s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
10833         s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
10834         s << '}';
10835         return s;
10836 }
10837
10838 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
10839 {
10840         s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
10841         s << "\tsType = " << value.sType << '\n';
10842         s << "\tpNext = " << value.pNext << '\n';
10843         s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
10844         s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
10845         s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
10846         s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
10847         s << '}';
10848         return s;
10849 }
10850
10851 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
10852 {
10853         s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
10854         s << "\tsType = " << value.sType << '\n';
10855         s << "\tpNext = " << value.pNext << '\n';
10856         s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
10857         s << '}';
10858         return s;
10859 }
10860
10861 std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
10862 {
10863         s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
10864         s << "\tsType = " << value.sType << '\n';
10865         s << "\tpNext = " << value.pNext << '\n';
10866         s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
10867         s << '}';
10868         return s;
10869 }
10870
10871 std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
10872 {
10873         s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
10874         s << "\tsType = " << value.sType << '\n';
10875         s << "\tpNext = " << value.pNext << '\n';
10876         s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
10877         s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
10878         s << '}';
10879         return s;
10880 }
10881
10882 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
10883 {
10884         s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
10885         s << "\tsType = " << value.sType << '\n';
10886         s << "\tpNext = " << value.pNext << '\n';
10887         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
10888         s << '}';
10889         return s;
10890 }
10891
10892 std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
10893 {
10894         s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
10895         s << "\tsType = " << value.sType << '\n';
10896         s << "\tpNext = " << value.pNext << '\n';
10897         s << "\tsupportsProtected = " << value.supportsProtected << '\n';
10898         s << '}';
10899         return s;
10900 }
10901
10902 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
10903 {
10904         s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
10905         s << "\tsType = " << value.sType << '\n';
10906         s << "\tpNext = " << value.pNext << '\n';
10907         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
10908         s << '}';
10909         return s;
10910 }
10911
10912 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
10913 {
10914         s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
10915         s << "\tsType = " << value.sType << '\n';
10916         s << "\tpNext = " << value.pNext << '\n';
10917         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10918         s << '}';
10919         return s;
10920 }
10921
10922 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
10923 {
10924         s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
10925         s << "\tsType = " << value.sType << '\n';
10926         s << "\tpNext = " << value.pNext << '\n';
10927         s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
10928         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10929         s << '}';
10930         return s;
10931 }
10932
10933 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
10934 {
10935         s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
10936         s << "\tsType = " << value.sType << '\n';
10937         s << "\tpNext = " << value.pNext << '\n';
10938         s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
10939         s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
10940         s << '}';
10941         return s;
10942 }
10943
10944 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
10945 {
10946         s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
10947         s << "\tsType = " << value.sType << '\n';
10948         s << "\tpNext = " << value.pNext << '\n';
10949         s << "\tmemoryPriority = " << value.memoryPriority << '\n';
10950         s << '}';
10951         return s;
10952 }
10953
10954 std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
10955 {
10956         s << "VkMemoryPriorityAllocateInfoEXT = {\n";
10957         s << "\tsType = " << value.sType << '\n';
10958         s << "\tpNext = " << value.pNext << '\n';
10959         s << "\tpriority = " << value.priority << '\n';
10960         s << '}';
10961         return s;
10962 }
10963
10964 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
10965 {
10966         s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
10967         s << "\tsType = " << value.sType << '\n';
10968         s << "\tpNext = " << value.pNext << '\n';
10969         s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
10970         s << '}';
10971         return s;
10972 }
10973
10974 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
10975 {
10976         s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
10977         s << "\tsType = " << value.sType << '\n';
10978         s << "\tpNext = " << value.pNext << '\n';
10979         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10980         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10981         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10982         s << '}';
10983         return s;
10984 }
10985
10986 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
10987 {
10988         s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
10989         s << "\tsType = " << value.sType << '\n';
10990         s << "\tpNext = " << value.pNext << '\n';
10991         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10992         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10993         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10994         s << '}';
10995         return s;
10996 }
10997
10998 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
10999 {
11000         s << "VkBufferDeviceAddressInfo = {\n";
11001         s << "\tsType = " << value.sType << '\n';
11002         s << "\tpNext = " << value.pNext << '\n';
11003         s << "\tbuffer = " << value.buffer << '\n';
11004         s << '}';
11005         return s;
11006 }
11007
11008 std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
11009 {
11010         s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
11011         s << "\tsType = " << value.sType << '\n';
11012         s << "\tpNext = " << value.pNext << '\n';
11013         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
11014         s << '}';
11015         return s;
11016 }
11017
11018 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
11019 {
11020         s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
11021         s << "\tsType = " << value.sType << '\n';
11022         s << "\tpNext = " << value.pNext << '\n';
11023         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11024         s << '}';
11025         return s;
11026 }
11027
11028 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
11029 {
11030         s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
11031         s << "\tsType = " << value.sType << '\n';
11032         s << "\tpNext = " << value.pNext << '\n';
11033         s << "\timageViewType = " << value.imageViewType << '\n';
11034         s << '}';
11035         return s;
11036 }
11037
11038 std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
11039 {
11040         s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
11041         s << "\tsType = " << value.sType << '\n';
11042         s << "\tpNext = " << value.pNext << '\n';
11043         s << "\tfilterCubic = " << value.filterCubic << '\n';
11044         s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
11045         s << '}';
11046         return s;
11047 }
11048
11049 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
11050 {
11051         s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
11052         s << "\tsType = " << value.sType << '\n';
11053         s << "\tpNext = " << value.pNext << '\n';
11054         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
11055         s << '}';
11056         return s;
11057 }
11058
11059 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
11060 {
11061         s << "VkFramebufferAttachmentsCreateInfo = {\n";
11062         s << "\tsType = " << value.sType << '\n';
11063         s << "\tpNext = " << value.pNext << '\n';
11064         s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
11065         s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
11066         s << '}';
11067         return s;
11068 }
11069
11070 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
11071 {
11072         s << "VkFramebufferAttachmentImageInfo = {\n";
11073         s << "\tsType = " << value.sType << '\n';
11074         s << "\tpNext = " << value.pNext << '\n';
11075         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
11076         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
11077         s << "\twidth = " << value.width << '\n';
11078         s << "\theight = " << value.height << '\n';
11079         s << "\tlayerCount = " << value.layerCount << '\n';
11080         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
11081         s << "\tpViewFormats = " << value.pViewFormats << '\n';
11082         s << '}';
11083         return s;
11084 }
11085
11086 std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
11087 {
11088         s << "VkRenderPassAttachmentBeginInfo = {\n";
11089         s << "\tsType = " << value.sType << '\n';
11090         s << "\tpNext = " << value.pNext << '\n';
11091         s << "\tattachmentCount = " << value.attachmentCount << '\n';
11092         s << "\tpAttachments = " << value.pAttachments << '\n';
11093         s << '}';
11094         return s;
11095 }
11096
11097 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
11098 {
11099         s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
11100         s << "\tsType = " << value.sType << '\n';
11101         s << "\tpNext = " << value.pNext << '\n';
11102         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
11103         s << '}';
11104         return s;
11105 }
11106
11107 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
11108 {
11109         s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
11110         s << "\tsType = " << value.sType << '\n';
11111         s << "\tpNext = " << value.pNext << '\n';
11112         s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
11113         s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
11114         s << '}';
11115         return s;
11116 }
11117
11118 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
11119 {
11120         s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
11121         s << "\tsType = " << value.sType << '\n';
11122         s << "\tpNext = " << value.pNext << '\n';
11123         s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
11124         s << '}';
11125         return s;
11126 }
11127
11128 std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
11129 {
11130         s << "VkCooperativeMatrixPropertiesNV = {\n";
11131         s << "\tsType = " << value.sType << '\n';
11132         s << "\tpNext = " << value.pNext << '\n';
11133         s << "\tMSize = " << value.MSize << '\n';
11134         s << "\tNSize = " << value.NSize << '\n';
11135         s << "\tKSize = " << value.KSize << '\n';
11136         s << "\tAType = " << value.AType << '\n';
11137         s << "\tBType = " << value.BType << '\n';
11138         s << "\tCType = " << value.CType << '\n';
11139         s << "\tDType = " << value.DType << '\n';
11140         s << "\tscope = " << value.scope << '\n';
11141         s << '}';
11142         return s;
11143 }
11144
11145 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
11146 {
11147         s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
11148         s << "\tsType = " << value.sType << '\n';
11149         s << "\tpNext = " << value.pNext << '\n';
11150         s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
11151         s << '}';
11152         return s;
11153 }
11154
11155 std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
11156 {
11157         s << "VkImageViewHandleInfoNVX = {\n";
11158         s << "\tsType = " << value.sType << '\n';
11159         s << "\tpNext = " << value.pNext << '\n';
11160         s << "\timageView = " << value.imageView << '\n';
11161         s << "\tdescriptorType = " << value.descriptorType << '\n';
11162         s << "\tsampler = " << value.sampler << '\n';
11163         s << '}';
11164         return s;
11165 }
11166
11167 std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
11168 {
11169         s << "VkImageViewAddressPropertiesNVX = {\n";
11170         s << "\tsType = " << value.sType << '\n';
11171         s << "\tpNext = " << value.pNext << '\n';
11172         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11173         s << "\tsize = " << value.size << '\n';
11174         s << '}';
11175         return s;
11176 }
11177
11178 std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
11179 {
11180         s << "VkPresentFrameTokenGGP = {\n";
11181         s << "\tsType = " << value.sType << '\n';
11182         s << "\tpNext = " << value.pNext << '\n';
11183         s << "\tframeToken = " << value.frameToken << '\n';
11184         s << '}';
11185         return s;
11186 }
11187
11188 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
11189 {
11190         s << "VkPipelineCreationFeedback = {\n";
11191         s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
11192         s << "\tduration = " << value.duration << '\n';
11193         s << '}';
11194         return s;
11195 }
11196
11197 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
11198 {
11199         s << "VkPipelineCreationFeedbackCreateInfo = {\n";
11200         s << "\tsType = " << value.sType << '\n';
11201         s << "\tpNext = " << value.pNext << '\n';
11202         s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
11203         s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
11204         s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
11205         s << '}';
11206         return s;
11207 }
11208
11209 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
11210 {
11211         s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
11212         s << "\tsType = " << value.sType << '\n';
11213         s << "\tpNext = " << value.pNext << '\n';
11214         s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
11215         s << '}';
11216         return s;
11217 }
11218
11219 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
11220 {
11221         s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
11222         s << "\tsType = " << value.sType << '\n';
11223         s << "\tpNext = " << value.pNext << '\n';
11224         s << "\thmonitor = " << value.hmonitor << '\n';
11225         s << '}';
11226         return s;
11227 }
11228
11229 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
11230 {
11231         s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
11232         s << "\tsType = " << value.sType << '\n';
11233         s << "\tpNext = " << value.pNext << '\n';
11234         s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
11235         s << '}';
11236         return s;
11237 }
11238
11239 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentBarrierFeaturesNV& value)
11240 {
11241         s << "VkPhysicalDevicePresentBarrierFeaturesNV = {\n";
11242         s << "\tsType = " << value.sType << '\n';
11243         s << "\tpNext = " << value.pNext << '\n';
11244         s << "\tpresentBarrier = " << value.presentBarrier << '\n';
11245         s << '}';
11246         return s;
11247 }
11248
11249 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesPresentBarrierNV& value)
11250 {
11251         s << "VkSurfaceCapabilitiesPresentBarrierNV = {\n";
11252         s << "\tsType = " << value.sType << '\n';
11253         s << "\tpNext = " << value.pNext << '\n';
11254         s << "\tpresentBarrierSupported = " << value.presentBarrierSupported << '\n';
11255         s << '}';
11256         return s;
11257 }
11258
11259 std::ostream& operator<< (std::ostream& s, const VkSwapchainPresentBarrierCreateInfoNV& value)
11260 {
11261         s << "VkSwapchainPresentBarrierCreateInfoNV = {\n";
11262         s << "\tsType = " << value.sType << '\n';
11263         s << "\tpNext = " << value.pNext << '\n';
11264         s << "\tpresentBarrierEnable = " << value.presentBarrierEnable << '\n';
11265         s << '}';
11266         return s;
11267 }
11268
11269 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
11270 {
11271         s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
11272         s << "\tsType = " << value.sType << '\n';
11273         s << "\tpNext = " << value.pNext << '\n';
11274         s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
11275         s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
11276         s << '}';
11277         return s;
11278 }
11279
11280 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
11281 {
11282         s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
11283         s << "\tsType = " << value.sType << '\n';
11284         s << "\tpNext = " << value.pNext << '\n';
11285         s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
11286         s << '}';
11287         return s;
11288 }
11289
11290 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
11291 {
11292         s << "VkPerformanceCounterKHR = {\n";
11293         s << "\tsType = " << value.sType << '\n';
11294         s << "\tpNext = " << value.pNext << '\n';
11295         s << "\tunit = " << value.unit << '\n';
11296         s << "\tscope = " << value.scope << '\n';
11297         s << "\tstorage = " << value.storage << '\n';
11298         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';
11299         s << '}';
11300         return s;
11301 }
11302
11303 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
11304 {
11305         s << "VkPerformanceCounterDescriptionKHR = {\n";
11306         s << "\tsType = " << value.sType << '\n';
11307         s << "\tpNext = " << value.pNext << '\n';
11308         s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
11309         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11310         s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
11311         s << "\tdescription = " << (const char*)value.description << '\n';
11312         s << '}';
11313         return s;
11314 }
11315
11316 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
11317 {
11318         s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
11319         s << "\tsType = " << value.sType << '\n';
11320         s << "\tpNext = " << value.pNext << '\n';
11321         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
11322         s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
11323         s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
11324         s << '}';
11325         return s;
11326 }
11327
11328 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
11329 {
11330         s << "VkPerformanceCounterResultKHR = {\n";
11331         s << "\tint32 = " << value.int32 << '\n';
11332         s << "\tint64 = " << value.int64 << '\n';
11333         s << "\tuint32 = " << value.uint32 << '\n';
11334         s << "\tuint64 = " << value.uint64 << '\n';
11335         s << "\tfloat32 = " << value.float32 << '\n';
11336         s << "\tfloat64 = " << value.float64 << '\n';
11337         s << '}';
11338         return s;
11339 }
11340
11341 std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
11342 {
11343         s << "VkAcquireProfilingLockInfoKHR = {\n";
11344         s << "\tsType = " << value.sType << '\n';
11345         s << "\tpNext = " << value.pNext << '\n';
11346         s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
11347         s << "\ttimeout = " << value.timeout << '\n';
11348         s << '}';
11349         return s;
11350 }
11351
11352 std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
11353 {
11354         s << "VkPerformanceQuerySubmitInfoKHR = {\n";
11355         s << "\tsType = " << value.sType << '\n';
11356         s << "\tpNext = " << value.pNext << '\n';
11357         s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
11358         s << '}';
11359         return s;
11360 }
11361
11362 std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
11363 {
11364         s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
11365         s << "\tsType = " << value.sType << '\n';
11366         s << "\tpNext = " << value.pNext << '\n';
11367         s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
11368         s << '}';
11369         return s;
11370 }
11371
11372 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
11373 {
11374         s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
11375         s << "\tsType = " << value.sType << '\n';
11376         s << "\tpNext = " << value.pNext << '\n';
11377         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11378         s << '}';
11379         return s;
11380 }
11381
11382 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
11383 {
11384         s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
11385         s << "\tsType = " << value.sType << '\n';
11386         s << "\tpNext = " << value.pNext << '\n';
11387         s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
11388         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11389         s << '}';
11390         return s;
11391 }
11392
11393 std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
11394 {
11395         s << "VkFramebufferMixedSamplesCombinationNV = {\n";
11396         s << "\tsType = " << value.sType << '\n';
11397         s << "\tpNext = " << value.pNext << '\n';
11398         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11399         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
11400         s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
11401         s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
11402         s << '}';
11403         return s;
11404 }
11405
11406 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
11407 {
11408         s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
11409         s << "\tsType = " << value.sType << '\n';
11410         s << "\tpNext = " << value.pNext << '\n';
11411         s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
11412         s << '}';
11413         return s;
11414 }
11415
11416 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
11417 {
11418         s << "VkPerformanceValueDataINTEL = {\n";
11419         s << "\tvalue32 = " << value.value32 << '\n';
11420         s << "\tvalue64 = " << value.value64 << '\n';
11421         s << "\tvalueFloat = " << value.valueFloat << '\n';
11422         s << "\tvalueBool = " << value.valueBool << '\n';
11423         s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
11424         s << '}';
11425         return s;
11426 }
11427
11428 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
11429 {
11430         s << "VkPerformanceValueINTEL = {\n";
11431         s << "\ttype = " << value.type << '\n';
11432         s << "\tdata = " << value.data << '\n';
11433         s << '}';
11434         return s;
11435 }
11436
11437 std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
11438 {
11439         s << "VkInitializePerformanceApiInfoINTEL = {\n";
11440         s << "\tsType = " << value.sType << '\n';
11441         s << "\tpNext = " << value.pNext << '\n';
11442         s << "\tpUserData = " << value.pUserData << '\n';
11443         s << '}';
11444         return s;
11445 }
11446
11447 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
11448 {
11449         s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
11450         s << "\tsType = " << value.sType << '\n';
11451         s << "\tpNext = " << value.pNext << '\n';
11452         s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
11453         s << '}';
11454         return s;
11455 }
11456
11457 std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
11458 {
11459         s << "VkPerformanceMarkerInfoINTEL = {\n";
11460         s << "\tsType = " << value.sType << '\n';
11461         s << "\tpNext = " << value.pNext << '\n';
11462         s << "\tmarker = " << value.marker << '\n';
11463         s << '}';
11464         return s;
11465 }
11466
11467 std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
11468 {
11469         s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
11470         s << "\tsType = " << value.sType << '\n';
11471         s << "\tpNext = " << value.pNext << '\n';
11472         s << "\tmarker = " << value.marker << '\n';
11473         s << '}';
11474         return s;
11475 }
11476
11477 std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
11478 {
11479         s << "VkPerformanceOverrideInfoINTEL = {\n";
11480         s << "\tsType = " << value.sType << '\n';
11481         s << "\tpNext = " << value.pNext << '\n';
11482         s << "\ttype = " << value.type << '\n';
11483         s << "\tenable = " << value.enable << '\n';
11484         s << "\tparameter = " << value.parameter << '\n';
11485         s << '}';
11486         return s;
11487 }
11488
11489 std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
11490 {
11491         s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
11492         s << "\tsType = " << value.sType << '\n';
11493         s << "\tpNext = " << value.pNext << '\n';
11494         s << "\ttype = " << value.type << '\n';
11495         s << '}';
11496         return s;
11497 }
11498
11499 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
11500 {
11501         s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
11502         s << "\tsType = " << value.sType << '\n';
11503         s << "\tpNext = " << value.pNext << '\n';
11504         s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
11505         s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
11506         s << '}';
11507         return s;
11508 }
11509
11510 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
11511 {
11512         s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
11513         s << "\tsType = " << value.sType << '\n';
11514         s << "\tpNext = " << value.pNext << '\n';
11515         s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
11516         s << '}';
11517         return s;
11518 }
11519
11520 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
11521 {
11522         s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
11523         s << "\tsType = " << value.sType << '\n';
11524         s << "\tpNext = " << value.pNext << '\n';
11525         s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
11526         s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
11527         s << '}';
11528         return s;
11529 }
11530
11531 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
11532 {
11533         s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
11534         s << "\tsType = " << value.sType << '\n';
11535         s << "\tpNext = " << value.pNext << '\n';
11536         s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
11537         s << '}';
11538         return s;
11539 }
11540
11541 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
11542 {
11543         s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
11544         s << "\tsType = " << value.sType << '\n';
11545         s << "\tpNext = " << value.pNext << '\n';
11546         s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
11547         s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
11548         s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
11549         s << '}';
11550         return s;
11551 }
11552
11553 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
11554 {
11555         s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
11556         s << "\tsType = " << value.sType << '\n';
11557         s << "\tpNext = " << value.pNext << '\n';
11558         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
11559         s << '}';
11560         return s;
11561 }
11562
11563 std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
11564 {
11565         s << "VkAttachmentReferenceStencilLayout = {\n";
11566         s << "\tsType = " << value.sType << '\n';
11567         s << "\tpNext = " << value.pNext << '\n';
11568         s << "\tstencilLayout = " << value.stencilLayout << '\n';
11569         s << '}';
11570         return s;
11571 }
11572
11573 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
11574 {
11575         s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
11576         s << "\tsType = " << value.sType << '\n';
11577         s << "\tpNext = " << value.pNext << '\n';
11578         s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
11579         s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
11580         s << '}';
11581         return s;
11582 }
11583
11584 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
11585 {
11586         s << "VkAttachmentDescriptionStencilLayout = {\n";
11587         s << "\tsType = " << value.sType << '\n';
11588         s << "\tpNext = " << value.pNext << '\n';
11589         s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
11590         s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
11591         s << '}';
11592         return s;
11593 }
11594
11595 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
11596 {
11597         s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
11598         s << "\tsType = " << value.sType << '\n';
11599         s << "\tpNext = " << value.pNext << '\n';
11600         s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
11601         s << '}';
11602         return s;
11603 }
11604
11605 std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
11606 {
11607         s << "VkPipelineInfoKHR = {\n";
11608         s << "\tsType = " << value.sType << '\n';
11609         s << "\tpNext = " << value.pNext << '\n';
11610         s << "\tpipeline = " << value.pipeline << '\n';
11611         s << '}';
11612         return s;
11613 }
11614
11615 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
11616 {
11617         s << "VkPipelineExecutablePropertiesKHR = {\n";
11618         s << "\tsType = " << value.sType << '\n';
11619         s << "\tpNext = " << value.pNext << '\n';
11620         s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
11621         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11622         s << "\tdescription = " << (const char*)value.description << '\n';
11623         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
11624         s << '}';
11625         return s;
11626 }
11627
11628 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
11629 {
11630         s << "VkPipelineExecutableInfoKHR = {\n";
11631         s << "\tsType = " << value.sType << '\n';
11632         s << "\tpNext = " << value.pNext << '\n';
11633         s << "\tpipeline = " << value.pipeline << '\n';
11634         s << "\texecutableIndex = " << value.executableIndex << '\n';
11635         s << '}';
11636         return s;
11637 }
11638
11639 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
11640 {
11641         s << "VkPipelineExecutableStatisticValueKHR = {\n";
11642         s << "\tb32 = " << value.b32 << '\n';
11643         s << "\ti64 = " << value.i64 << '\n';
11644         s << "\tu64 = " << value.u64 << '\n';
11645         s << "\tf64 = " << value.f64 << '\n';
11646         s << '}';
11647         return s;
11648 }
11649
11650 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
11651 {
11652         s << "VkPipelineExecutableStatisticKHR = {\n";
11653         s << "\tsType = " << value.sType << '\n';
11654         s << "\tpNext = " << value.pNext << '\n';
11655         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11656         s << "\tdescription = " << (const char*)value.description << '\n';
11657         s << "\tformat = " << value.format << '\n';
11658         s << "\tvalue = " << value.value << '\n';
11659         s << '}';
11660         return s;
11661 }
11662
11663 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
11664 {
11665         s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
11666         s << "\tsType = " << value.sType << '\n';
11667         s << "\tpNext = " << value.pNext << '\n';
11668         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
11669         s << "\tdescription = " << (const char*)value.description << '\n';
11670         s << "\tisText = " << value.isText << '\n';
11671         s << "\tdataSize = " << value.dataSize << '\n';
11672         s << "\tpData = " << value.pData << '\n';
11673         s << '}';
11674         return s;
11675 }
11676
11677 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
11678 {
11679         s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
11680         s << "\tsType = " << value.sType << '\n';
11681         s << "\tpNext = " << value.pNext << '\n';
11682         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
11683         s << '}';
11684         return s;
11685 }
11686
11687 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
11688 {
11689         s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
11690         s << "\tsType = " << value.sType << '\n';
11691         s << "\tpNext = " << value.pNext << '\n';
11692         s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
11693         s << '}';
11694         return s;
11695 }
11696
11697 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
11698 {
11699         s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
11700         s << "\tsType = " << value.sType << '\n';
11701         s << "\tpNext = " << value.pNext << '\n';
11702         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
11703         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
11704         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
11705         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
11706         s << '}';
11707         return s;
11708 }
11709
11710 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
11711 {
11712         s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
11713         s << "\tsType = " << value.sType << '\n';
11714         s << "\tpNext = " << value.pNext << '\n';
11715         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
11716         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
11717         s << '}';
11718         return s;
11719 }
11720
11721 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
11722 {
11723         s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
11724         s << "\tsType = " << value.sType << '\n';
11725         s << "\tpNext = " << value.pNext << '\n';
11726         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
11727         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
11728         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
11729         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
11730         s << '}';
11731         return s;
11732 }
11733
11734 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
11735 {
11736         s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
11737         s << "\tsType = " << value.sType << '\n';
11738         s << "\tpNext = " << value.pNext << '\n';
11739         s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
11740         s << '}';
11741         return s;
11742 }
11743
11744 std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
11745 {
11746         s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
11747         s << "\tsType = " << value.sType << '\n';
11748         s << "\tpNext = " << value.pNext << '\n';
11749         s << "\trenderPass = " << value.renderPass << '\n';
11750         s << "\tsubpass = " << value.subpass << '\n';
11751         s << '}';
11752         return s;
11753 }
11754
11755 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
11756 {
11757         s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
11758         s << "\tsType = " << value.sType << '\n';
11759         s << "\tpNext = " << value.pNext << '\n';
11760         s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
11761         s << '}';
11762         return s;
11763 }
11764
11765 std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
11766 {
11767         s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
11768         s << "\tsType = " << value.sType << '\n';
11769         s << "\tpNext = " << value.pNext << '\n';
11770         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
11771         s << '}';
11772         return s;
11773 }
11774
11775 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
11776 {
11777         s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
11778         s << "\tsType = " << value.sType << '\n';
11779         s << "\tpNext = " << value.pNext << '\n';
11780         s << "\tmemory = " << value.memory << '\n';
11781         s << '}';
11782         return s;
11783 }
11784
11785 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
11786 {
11787         s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
11788         s << "\tsType = " << value.sType << '\n';
11789         s << "\tpNext = " << value.pNext << '\n';
11790         s << "\trectangularLines = " << value.rectangularLines << '\n';
11791         s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
11792         s << "\tsmoothLines = " << value.smoothLines << '\n';
11793         s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
11794         s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
11795         s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
11796         s << '}';
11797         return s;
11798 }
11799
11800 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
11801 {
11802         s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
11803         s << "\tsType = " << value.sType << '\n';
11804         s << "\tpNext = " << value.pNext << '\n';
11805         s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
11806         s << '}';
11807         return s;
11808 }
11809
11810 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
11811 {
11812         s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
11813         s << "\tsType = " << value.sType << '\n';
11814         s << "\tpNext = " << value.pNext << '\n';
11815         s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
11816         s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
11817         s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
11818         s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
11819         s << '}';
11820         return s;
11821 }
11822
11823 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
11824 {
11825         s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
11826         s << "\tsType = " << value.sType << '\n';
11827         s << "\tpNext = " << value.pNext << '\n';
11828         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
11829         s << '}';
11830         return s;
11831 }
11832
11833 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
11834 {
11835         s << "VkPhysicalDeviceVulkan11Features = {\n";
11836         s << "\tsType = " << value.sType << '\n';
11837         s << "\tpNext = " << value.pNext << '\n';
11838         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
11839         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
11840         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
11841         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
11842         s << "\tmultiview = " << value.multiview << '\n';
11843         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
11844         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
11845         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
11846         s << "\tvariablePointers = " << value.variablePointers << '\n';
11847         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
11848         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
11849         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
11850         s << '}';
11851         return s;
11852 }
11853
11854 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
11855 {
11856         s << "VkPhysicalDeviceVulkan11Properties = {\n";
11857         s << "\tsType = " << value.sType << '\n';
11858         s << "\tpNext = " << value.pNext << '\n';
11859         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';
11860         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';
11861         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';
11862         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
11863         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
11864         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
11865         s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
11866         s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
11867         s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
11868         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
11869         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
11870         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
11871         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
11872         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
11873         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
11874         s << '}';
11875         return s;
11876 }
11877
11878 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
11879 {
11880         s << "VkPhysicalDeviceVulkan12Features = {\n";
11881         s << "\tsType = " << value.sType << '\n';
11882         s << "\tpNext = " << value.pNext << '\n';
11883         s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
11884         s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
11885         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
11886         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
11887         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
11888         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
11889         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
11890         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
11891         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
11892         s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
11893         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
11894         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
11895         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
11896         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
11897         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
11898         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
11899         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
11900         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
11901         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
11902         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
11903         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
11904         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
11905         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
11906         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
11907         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
11908         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
11909         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
11910         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
11911         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
11912         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
11913         s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
11914         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
11915         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
11916         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
11917         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
11918         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
11919         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
11920         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
11921         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11922         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11923         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11924         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
11925         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
11926         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
11927         s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
11928         s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
11929         s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
11930         s << '}';
11931         return s;
11932 }
11933
11934 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
11935 {
11936         s << "VkPhysicalDeviceVulkan12Properties = {\n";
11937         s << "\tsType = " << value.sType << '\n';
11938         s << "\tpNext = " << value.pNext << '\n';
11939         s << "\tdriverID = " << value.driverID << '\n';
11940         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
11941         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
11942         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
11943         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
11944         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
11945         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
11946         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
11947         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
11948         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
11949         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
11950         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
11951         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
11952         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
11953         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
11954         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
11955         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
11956         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
11957         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
11958         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
11959         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
11960         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
11961         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
11962         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
11963         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
11964         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
11965         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
11966         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
11967         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
11968         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
11969         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
11970         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
11971         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
11972         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
11973         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
11974         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
11975         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
11976         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
11977         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
11978         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
11979         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
11980         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
11981         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
11982         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
11983         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
11984         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
11985         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
11986         s << "\tindependentResolve = " << value.independentResolve << '\n';
11987         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
11988         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
11989         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
11990         s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
11991         s << '}';
11992         return s;
11993 }
11994
11995 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
11996 {
11997         s << "VkPhysicalDeviceVulkan13Features = {\n";
11998         s << "\tsType = " << value.sType << '\n';
11999         s << "\tpNext = " << value.pNext << '\n';
12000         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12001         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
12002         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
12003         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
12004         s << "\tprivateData = " << value.privateData << '\n';
12005         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
12006         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
12007         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
12008         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
12009         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
12010         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
12011         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12012         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
12013         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
12014         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
12015         s << '}';
12016         return s;
12017 }
12018
12019 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
12020 {
12021         s << "VkPhysicalDeviceVulkan13Properties = {\n";
12022         s << "\tsType = " << value.sType << '\n';
12023         s << "\tpNext = " << value.pNext << '\n';
12024         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
12025         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
12026         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
12027         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
12028         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
12029         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
12030         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
12031         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
12032         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
12033         s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
12034         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
12035         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
12036         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
12037         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
12038         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
12039         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
12040         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
12041         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
12042         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
12043         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
12044         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
12045         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
12046         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
12047         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
12048         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
12049         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
12050         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
12051         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
12052         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
12053         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
12054         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
12055         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
12056         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
12057         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
12058         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
12059         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
12060         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
12061         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
12062         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
12063         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
12064         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
12065         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
12066         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
12067         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
12068         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
12069         s << '}';
12070         return s;
12071 }
12072
12073 std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
12074 {
12075         s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
12076         s << "\tsType = " << value.sType << '\n';
12077         s << "\tpNext = " << value.pNext << '\n';
12078         s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
12079         s << '}';
12080         return s;
12081 }
12082
12083 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
12084 {
12085         s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
12086         s << "\tsType = " << value.sType << '\n';
12087         s << "\tpNext = " << value.pNext << '\n';
12088         s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
12089         s << '}';
12090         return s;
12091 }
12092
12093 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
12094 {
12095         s << "VkPhysicalDeviceToolProperties = {\n";
12096         s << "\tsType = " << value.sType << '\n';
12097         s << "\tpNext = " << value.pNext << '\n';
12098         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
12099         s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
12100         s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
12101         s << "\tdescription = " << (const char*)value.description << '\n';
12102         s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
12103         s << '}';
12104         return s;
12105 }
12106
12107 std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
12108 {
12109         s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
12110         s << "\tsType = " << value.sType << '\n';
12111         s << "\tpNext = " << value.pNext << '\n';
12112         s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
12113         s << "\tformat = " << value.format << '\n';
12114         s << '}';
12115         return s;
12116 }
12117
12118 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
12119 {
12120         s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
12121         s << "\tsType = " << value.sType << '\n';
12122         s << "\tpNext = " << value.pNext << '\n';
12123         s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
12124         s << '}';
12125         return s;
12126 }
12127
12128 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
12129 {
12130         s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
12131         s << "\tsType = " << value.sType << '\n';
12132         s << "\tpNext = " << value.pNext << '\n';
12133         s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
12134         s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
12135         s << '}';
12136         return s;
12137 }
12138
12139 std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
12140 {
12141         s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
12142         s << "\tsType = " << value.sType << '\n';
12143         s << "\tpNext = " << value.pNext << '\n';
12144         s << "\tcomponents = " << value.components << '\n';
12145         s << "\tsrgb = " << value.srgb << '\n';
12146         s << '}';
12147         return s;
12148 }
12149
12150 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
12151 {
12152         s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
12153         s << "\tsType = " << value.sType << '\n';
12154         s << "\tpNext = " << value.pNext << '\n';
12155         s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
12156         s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
12157         s << '}';
12158         return s;
12159 }
12160
12161 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
12162 {
12163         s << "VkDeviceOrHostAddressKHR = {\n";
12164         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12165         s << "\thostAddress = " << value.hostAddress << '\n';
12166         s << '}';
12167         return s;
12168 }
12169
12170 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
12171 {
12172         s << "VkDeviceOrHostAddressConstKHR = {\n";
12173         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12174         s << "\thostAddress = " << value.hostAddress << '\n';
12175         s << '}';
12176         return s;
12177 }
12178
12179 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
12180 {
12181         s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
12182         s << "\tsType = " << value.sType << '\n';
12183         s << "\tpNext = " << value.pNext << '\n';
12184         s << "\tvertexFormat = " << value.vertexFormat << '\n';
12185         s << "\tvertexData = " << value.vertexData << '\n';
12186         s << "\tvertexStride = " << value.vertexStride << '\n';
12187         s << "\tmaxVertex = " << value.maxVertex << '\n';
12188         s << "\tindexType = " << value.indexType << '\n';
12189         s << "\tindexData = " << value.indexData << '\n';
12190         s << "\ttransformData = " << value.transformData << '\n';
12191         s << '}';
12192         return s;
12193 }
12194
12195 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
12196 {
12197         s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
12198         s << "\tsType = " << value.sType << '\n';
12199         s << "\tpNext = " << value.pNext << '\n';
12200         s << "\tdata = " << value.data << '\n';
12201         s << "\tstride = " << value.stride << '\n';
12202         s << '}';
12203         return s;
12204 }
12205
12206 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
12207 {
12208         s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
12209         s << "\tsType = " << value.sType << '\n';
12210         s << "\tpNext = " << value.pNext << '\n';
12211         s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
12212         s << "\tdata = " << value.data << '\n';
12213         s << '}';
12214         return s;
12215 }
12216
12217 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
12218 {
12219         s << "VkAccelerationStructureGeometryDataKHR = {\n";
12220         s << "\ttriangles = " << value.triangles << '\n';
12221         s << "\taabbs = " << value.aabbs << '\n';
12222         s << "\tinstances = " << value.instances << '\n';
12223         s << '}';
12224         return s;
12225 }
12226
12227 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
12228 {
12229         s << "VkAccelerationStructureGeometryKHR = {\n";
12230         s << "\tsType = " << value.sType << '\n';
12231         s << "\tpNext = " << value.pNext << '\n';
12232         s << "\tgeometryType = " << value.geometryType << '\n';
12233         s << "\tgeometry = " << value.geometry << '\n';
12234         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
12235         s << '}';
12236         return s;
12237 }
12238
12239 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
12240 {
12241         s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
12242         s << "\tsType = " << value.sType << '\n';
12243         s << "\tpNext = " << value.pNext << '\n';
12244         s << "\ttype = " << value.type << '\n';
12245         s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
12246         s << "\tmode = " << value.mode << '\n';
12247         s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
12248         s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
12249         s << "\tgeometryCount = " << value.geometryCount << '\n';
12250         s << "\tpGeometries = " << value.pGeometries << '\n';
12251         s << "\tppGeometries = " << value.ppGeometries << '\n';
12252         s << "\tscratchData = " << value.scratchData << '\n';
12253         s << '}';
12254         return s;
12255 }
12256
12257 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
12258 {
12259         s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
12260         s << "\tprimitiveCount = " << value.primitiveCount << '\n';
12261         s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
12262         s << "\tfirstVertex = " << value.firstVertex << '\n';
12263         s << "\ttransformOffset = " << value.transformOffset << '\n';
12264         s << '}';
12265         return s;
12266 }
12267
12268 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
12269 {
12270         s << "VkAccelerationStructureCreateInfoKHR = {\n";
12271         s << "\tsType = " << value.sType << '\n';
12272         s << "\tpNext = " << value.pNext << '\n';
12273         s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
12274         s << "\tbuffer = " << value.buffer << '\n';
12275         s << "\toffset = " << value.offset << '\n';
12276         s << "\tsize = " << value.size << '\n';
12277         s << "\ttype = " << value.type << '\n';
12278         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12279         s << '}';
12280         return s;
12281 }
12282
12283 std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
12284 {
12285         s << "VkAabbPositionsKHR = {\n";
12286         s << "\tminX = " << value.minX << '\n';
12287         s << "\tminY = " << value.minY << '\n';
12288         s << "\tminZ = " << value.minZ << '\n';
12289         s << "\tmaxX = " << value.maxX << '\n';
12290         s << "\tmaxY = " << value.maxY << '\n';
12291         s << "\tmaxZ = " << value.maxZ << '\n';
12292         s << '}';
12293         return s;
12294 }
12295
12296 std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
12297 {
12298         s << "VkTransformMatrixKHR = {\n";
12299         s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
12300         s << '}';
12301         return s;
12302 }
12303
12304 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
12305 {
12306         s << "VkAccelerationStructureInstanceKHR = {\n";
12307         s << "\ttransform = " << value.transform << '\n';
12308         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
12309         s << "\tmask = " << value.mask << '\n';
12310         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
12311         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
12312         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
12313         s << '}';
12314         return s;
12315 }
12316
12317 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
12318 {
12319         s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
12320         s << "\tsType = " << value.sType << '\n';
12321         s << "\tpNext = " << value.pNext << '\n';
12322         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12323         s << '}';
12324         return s;
12325 }
12326
12327 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
12328 {
12329         s << "VkAccelerationStructureVersionInfoKHR = {\n";
12330         s << "\tsType = " << value.sType << '\n';
12331         s << "\tpNext = " << value.pNext << '\n';
12332         s << "\tpVersionData = " << value.pVersionData << '\n';
12333         s << '}';
12334         return s;
12335 }
12336
12337 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
12338 {
12339         s << "VkCopyAccelerationStructureInfoKHR = {\n";
12340         s << "\tsType = " << value.sType << '\n';
12341         s << "\tpNext = " << value.pNext << '\n';
12342         s << "\tsrc = " << value.src << '\n';
12343         s << "\tdst = " << value.dst << '\n';
12344         s << "\tmode = " << value.mode << '\n';
12345         s << '}';
12346         return s;
12347 }
12348
12349 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
12350 {
12351         s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
12352         s << "\tsType = " << value.sType << '\n';
12353         s << "\tpNext = " << value.pNext << '\n';
12354         s << "\tsrc = " << value.src << '\n';
12355         s << "\tdst = " << value.dst << '\n';
12356         s << "\tmode = " << value.mode << '\n';
12357         s << '}';
12358         return s;
12359 }
12360
12361 std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
12362 {
12363         s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
12364         s << "\tsType = " << value.sType << '\n';
12365         s << "\tpNext = " << value.pNext << '\n';
12366         s << "\tsrc = " << value.src << '\n';
12367         s << "\tdst = " << value.dst << '\n';
12368         s << "\tmode = " << value.mode << '\n';
12369         s << '}';
12370         return s;
12371 }
12372
12373 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
12374 {
12375         s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
12376         s << "\tsType = " << value.sType << '\n';
12377         s << "\tpNext = " << value.pNext << '\n';
12378         s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
12379         s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
12380         s << '}';
12381         return s;
12382 }
12383
12384 std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
12385 {
12386         s << "VkPipelineLibraryCreateInfoKHR = {\n";
12387         s << "\tsType = " << value.sType << '\n';
12388         s << "\tpNext = " << value.pNext << '\n';
12389         s << "\tlibraryCount = " << value.libraryCount << '\n';
12390         s << "\tpLibraries = " << value.pLibraries << '\n';
12391         s << '}';
12392         return s;
12393 }
12394
12395 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
12396 {
12397         s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
12398         s << "\tsType = " << value.sType << '\n';
12399         s << "\tpNext = " << value.pNext << '\n';
12400         s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
12401         s << '}';
12402         return s;
12403 }
12404
12405 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
12406 {
12407         s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
12408         s << "\tsType = " << value.sType << '\n';
12409         s << "\tpNext = " << value.pNext << '\n';
12410         s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
12411         s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
12412         s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
12413         s << '}';
12414         return s;
12415 }
12416
12417 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT& value)
12418 {
12419         s << "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT = {\n";
12420         s << "\tsType = " << value.sType << '\n';
12421         s << "\tpNext = " << value.pNext << '\n';
12422         s << "\textendedDynamicState3TessellationDomainOrigin = " << value.extendedDynamicState3TessellationDomainOrigin << '\n';
12423         s << "\textendedDynamicState3DepthClampEnable = " << value.extendedDynamicState3DepthClampEnable << '\n';
12424         s << "\textendedDynamicState3PolygonMode = " << value.extendedDynamicState3PolygonMode << '\n';
12425         s << "\textendedDynamicState3RasterizationSamples = " << value.extendedDynamicState3RasterizationSamples << '\n';
12426         s << "\textendedDynamicState3SampleMask = " << value.extendedDynamicState3SampleMask << '\n';
12427         s << "\textendedDynamicState3AlphaToCoverageEnable = " << value.extendedDynamicState3AlphaToCoverageEnable << '\n';
12428         s << "\textendedDynamicState3AlphaToOneEnable = " << value.extendedDynamicState3AlphaToOneEnable << '\n';
12429         s << "\textendedDynamicState3LogicOpEnable = " << value.extendedDynamicState3LogicOpEnable << '\n';
12430         s << "\textendedDynamicState3ColorBlendEnable = " << value.extendedDynamicState3ColorBlendEnable << '\n';
12431         s << "\textendedDynamicState3ColorBlendEquation = " << value.extendedDynamicState3ColorBlendEquation << '\n';
12432         s << "\textendedDynamicState3ColorWriteMask = " << value.extendedDynamicState3ColorWriteMask << '\n';
12433         s << "\textendedDynamicState3RasterizationStream = " << value.extendedDynamicState3RasterizationStream << '\n';
12434         s << "\textendedDynamicState3ConservativeRasterizationMode = " << value.extendedDynamicState3ConservativeRasterizationMode << '\n';
12435         s << "\textendedDynamicState3ExtraPrimitiveOverestimationSize = " << value.extendedDynamicState3ExtraPrimitiveOverestimationSize << '\n';
12436         s << "\textendedDynamicState3DepthClipEnable = " << value.extendedDynamicState3DepthClipEnable << '\n';
12437         s << "\textendedDynamicState3SampleLocationsEnable = " << value.extendedDynamicState3SampleLocationsEnable << '\n';
12438         s << "\textendedDynamicState3ColorBlendAdvanced = " << value.extendedDynamicState3ColorBlendAdvanced << '\n';
12439         s << "\textendedDynamicState3ProvokingVertexMode = " << value.extendedDynamicState3ProvokingVertexMode << '\n';
12440         s << "\textendedDynamicState3LineRasterizationMode = " << value.extendedDynamicState3LineRasterizationMode << '\n';
12441         s << "\textendedDynamicState3LineStippleEnable = " << value.extendedDynamicState3LineStippleEnable << '\n';
12442         s << "\textendedDynamicState3DepthClipNegativeOneToOne = " << value.extendedDynamicState3DepthClipNegativeOneToOne << '\n';
12443         s << "\textendedDynamicState3ViewportWScalingEnable = " << value.extendedDynamicState3ViewportWScalingEnable << '\n';
12444         s << "\textendedDynamicState3ViewportSwizzle = " << value.extendedDynamicState3ViewportSwizzle << '\n';
12445         s << "\textendedDynamicState3CoverageToColorEnable = " << value.extendedDynamicState3CoverageToColorEnable << '\n';
12446         s << "\textendedDynamicState3CoverageToColorLocation = " << value.extendedDynamicState3CoverageToColorLocation << '\n';
12447         s << "\textendedDynamicState3CoverageModulationMode = " << value.extendedDynamicState3CoverageModulationMode << '\n';
12448         s << "\textendedDynamicState3CoverageModulationTableEnable = " << value.extendedDynamicState3CoverageModulationTableEnable << '\n';
12449         s << "\textendedDynamicState3CoverageModulationTable = " << value.extendedDynamicState3CoverageModulationTable << '\n';
12450         s << "\textendedDynamicState3CoverageReductionMode = " << value.extendedDynamicState3CoverageReductionMode << '\n';
12451         s << "\textendedDynamicState3RepresentativeFragmentTestEnable = " << value.extendedDynamicState3RepresentativeFragmentTestEnable << '\n';
12452         s << "\textendedDynamicState3ShadingRateImageEnable = " << value.extendedDynamicState3ShadingRateImageEnable << '\n';
12453         s << '}';
12454         return s;
12455 }
12456
12457 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT& value)
12458 {
12459         s << "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT = {\n";
12460         s << "\tsType = " << value.sType << '\n';
12461         s << "\tpNext = " << value.pNext << '\n';
12462         s << "\tdynamicPrimitiveTopologyUnrestricted = " << value.dynamicPrimitiveTopologyUnrestricted << '\n';
12463         s << '}';
12464         return s;
12465 }
12466
12467 std::ostream& operator<< (std::ostream& s, const VkColorBlendEquationEXT& value)
12468 {
12469         s << "VkColorBlendEquationEXT = {\n";
12470         s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
12471         s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
12472         s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
12473         s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
12474         s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
12475         s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
12476         s << '}';
12477         return s;
12478 }
12479
12480 std::ostream& operator<< (std::ostream& s, const VkColorBlendAdvancedEXT& value)
12481 {
12482         s << "VkColorBlendAdvancedEXT = {\n";
12483         s << "\tadvancedBlendOp = " << value.advancedBlendOp << '\n';
12484         s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
12485         s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
12486         s << "\tblendOverlap = " << value.blendOverlap << '\n';
12487         s << "\tclampResults = " << value.clampResults << '\n';
12488         s << '}';
12489         return s;
12490 }
12491
12492 std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
12493 {
12494         s << "VkRenderPassTransformBeginInfoQCOM = {\n";
12495         s << "\tsType = " << value.sType << '\n';
12496         s << "\tpNext = " << value.pNext << '\n';
12497         s << "\ttransform = " << value.transform << '\n';
12498         s << '}';
12499         return s;
12500 }
12501
12502 std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
12503 {
12504         s << "VkCopyCommandTransformInfoQCOM = {\n";
12505         s << "\tsType = " << value.sType << '\n';
12506         s << "\tpNext = " << value.pNext << '\n';
12507         s << "\ttransform = " << value.transform << '\n';
12508         s << '}';
12509         return s;
12510 }
12511
12512 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
12513 {
12514         s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
12515         s << "\tsType = " << value.sType << '\n';
12516         s << "\tpNext = " << value.pNext << '\n';
12517         s << "\ttransform = " << value.transform << '\n';
12518         s << "\trenderArea = " << value.renderArea << '\n';
12519         s << '}';
12520         return s;
12521 }
12522
12523 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
12524 {
12525         s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
12526         s << "\tsType = " << value.sType << '\n';
12527         s << "\tpNext = " << value.pNext << '\n';
12528         s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
12529         s << '}';
12530         return s;
12531 }
12532
12533 std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
12534 {
12535         s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
12536         s << "\tsType = " << value.sType << '\n';
12537         s << "\tpNext = " << value.pNext << '\n';
12538         s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
12539         s << '}';
12540         return s;
12541 }
12542
12543 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
12544 {
12545         s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
12546         s << "\tsType = " << value.sType << '\n';
12547         s << "\tpNext = " << value.pNext << '\n';
12548         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
12549         s << '}';
12550         return s;
12551 }
12552
12553 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
12554 {
12555         s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
12556         s << "\tsType = " << value.sType << '\n';
12557         s << "\tpNext = " << value.pNext << '\n';
12558         s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
12559         s << '}';
12560         return s;
12561 }
12562
12563 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
12564 {
12565         s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
12566         s << "\tsType = " << value.sType << '\n';
12567         s << "\tpNext = " << value.pNext << '\n';
12568         s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
12569         s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
12570         s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
12571         s << '}';
12572         return s;
12573 }
12574
12575 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
12576 {
12577         s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
12578         s << "\tsType = " << value.sType << '\n';
12579         s << "\tpNext = " << value.pNext << '\n';
12580         s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
12581         s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
12582         s << '}';
12583         return s;
12584 }
12585
12586 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
12587 {
12588         s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
12589         s << "\tsType = " << value.sType << '\n';
12590         s << "\tpNext = " << value.pNext << '\n';
12591         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
12592         s << '}';
12593         return s;
12594 }
12595
12596 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
12597 {
12598         s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
12599         s << "\tsType = " << value.sType << '\n';
12600         s << "\tpNext = " << value.pNext << '\n';
12601         s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
12602         s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
12603         s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
12604         s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
12605         s << '}';
12606         return s;
12607 }
12608
12609 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
12610 {
12611         s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
12612         s << "\tsType = " << value.sType << '\n';
12613         s << "\tpNext = " << value.pNext << '\n';
12614         s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
12615         s << "\tevents = " << value.events << '\n';
12616         s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
12617         s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
12618         s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
12619         s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
12620         s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
12621         s << "\tpointPolygons = " << value.pointPolygons << '\n';
12622         s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
12623         s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
12624         s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
12625         s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
12626         s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
12627         s << "\ttriangleFans = " << value.triangleFans << '\n';
12628         s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
12629         s << '}';
12630         return s;
12631 }
12632
12633 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
12634 {
12635         s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
12636         s << "\tsType = " << value.sType << '\n';
12637         s << "\tpNext = " << value.pNext << '\n';
12638         s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
12639         s << '}';
12640         return s;
12641 }
12642
12643 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
12644 {
12645         s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
12646         s << "\tsType = " << value.sType << '\n';
12647         s << "\tpNext = " << value.pNext << '\n';
12648         s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
12649         s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
12650         s << '}';
12651         return s;
12652 }
12653
12654 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
12655 {
12656         s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
12657         s << "\tsType = " << value.sType << '\n';
12658         s << "\tpNext = " << value.pNext << '\n';
12659         s << "\tsubpassShading = " << value.subpassShading << '\n';
12660         s << '}';
12661         return s;
12662 }
12663
12664 std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
12665 {
12666         s << "VkBufferCopy2 = {\n";
12667         s << "\tsType = " << value.sType << '\n';
12668         s << "\tpNext = " << value.pNext << '\n';
12669         s << "\tsrcOffset = " << value.srcOffset << '\n';
12670         s << "\tdstOffset = " << value.dstOffset << '\n';
12671         s << "\tsize = " << value.size << '\n';
12672         s << '}';
12673         return s;
12674 }
12675
12676 std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
12677 {
12678         s << "VkImageCopy2 = {\n";
12679         s << "\tsType = " << value.sType << '\n';
12680         s << "\tpNext = " << value.pNext << '\n';
12681         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12682         s << "\tsrcOffset = " << value.srcOffset << '\n';
12683         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12684         s << "\tdstOffset = " << value.dstOffset << '\n';
12685         s << "\textent = " << value.extent << '\n';
12686         s << '}';
12687         return s;
12688 }
12689
12690 std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
12691 {
12692         s << "VkImageBlit2 = {\n";
12693         s << "\tsType = " << value.sType << '\n';
12694         s << "\tpNext = " << value.pNext << '\n';
12695         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12696         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
12697         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12698         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
12699         s << '}';
12700         return s;
12701 }
12702
12703 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
12704 {
12705         s << "VkBufferImageCopy2 = {\n";
12706         s << "\tsType = " << value.sType << '\n';
12707         s << "\tpNext = " << value.pNext << '\n';
12708         s << "\tbufferOffset = " << value.bufferOffset << '\n';
12709         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
12710         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
12711         s << "\timageSubresource = " << value.imageSubresource << '\n';
12712         s << "\timageOffset = " << value.imageOffset << '\n';
12713         s << "\timageExtent = " << value.imageExtent << '\n';
12714         s << '}';
12715         return s;
12716 }
12717
12718 std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
12719 {
12720         s << "VkImageResolve2 = {\n";
12721         s << "\tsType = " << value.sType << '\n';
12722         s << "\tpNext = " << value.pNext << '\n';
12723         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
12724         s << "\tsrcOffset = " << value.srcOffset << '\n';
12725         s << "\tdstSubresource = " << value.dstSubresource << '\n';
12726         s << "\tdstOffset = " << value.dstOffset << '\n';
12727         s << "\textent = " << value.extent << '\n';
12728         s << '}';
12729         return s;
12730 }
12731
12732 std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
12733 {
12734         s << "VkCopyBufferInfo2 = {\n";
12735         s << "\tsType = " << value.sType << '\n';
12736         s << "\tpNext = " << value.pNext << '\n';
12737         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12738         s << "\tdstBuffer = " << value.dstBuffer << '\n';
12739         s << "\tregionCount = " << value.regionCount << '\n';
12740         s << "\tpRegions = " << value.pRegions << '\n';
12741         s << '}';
12742         return s;
12743 }
12744
12745 std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
12746 {
12747         s << "VkCopyImageInfo2 = {\n";
12748         s << "\tsType = " << value.sType << '\n';
12749         s << "\tpNext = " << value.pNext << '\n';
12750         s << "\tsrcImage = " << value.srcImage << '\n';
12751         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12752         s << "\tdstImage = " << value.dstImage << '\n';
12753         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12754         s << "\tregionCount = " << value.regionCount << '\n';
12755         s << "\tpRegions = " << value.pRegions << '\n';
12756         s << '}';
12757         return s;
12758 }
12759
12760 std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
12761 {
12762         s << "VkBlitImageInfo2 = {\n";
12763         s << "\tsType = " << value.sType << '\n';
12764         s << "\tpNext = " << value.pNext << '\n';
12765         s << "\tsrcImage = " << value.srcImage << '\n';
12766         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12767         s << "\tdstImage = " << value.dstImage << '\n';
12768         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12769         s << "\tregionCount = " << value.regionCount << '\n';
12770         s << "\tpRegions = " << value.pRegions << '\n';
12771         s << "\tfilter = " << value.filter << '\n';
12772         s << '}';
12773         return s;
12774 }
12775
12776 std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
12777 {
12778         s << "VkCopyBufferToImageInfo2 = {\n";
12779         s << "\tsType = " << value.sType << '\n';
12780         s << "\tpNext = " << value.pNext << '\n';
12781         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12782         s << "\tdstImage = " << value.dstImage << '\n';
12783         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12784         s << "\tregionCount = " << value.regionCount << '\n';
12785         s << "\tpRegions = " << value.pRegions << '\n';
12786         s << '}';
12787         return s;
12788 }
12789
12790 std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
12791 {
12792         s << "VkCopyImageToBufferInfo2 = {\n";
12793         s << "\tsType = " << value.sType << '\n';
12794         s << "\tpNext = " << value.pNext << '\n';
12795         s << "\tsrcImage = " << value.srcImage << '\n';
12796         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12797         s << "\tdstBuffer = " << value.dstBuffer << '\n';
12798         s << "\tregionCount = " << value.regionCount << '\n';
12799         s << "\tpRegions = " << value.pRegions << '\n';
12800         s << '}';
12801         return s;
12802 }
12803
12804 std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
12805 {
12806         s << "VkResolveImageInfo2 = {\n";
12807         s << "\tsType = " << value.sType << '\n';
12808         s << "\tpNext = " << value.pNext << '\n';
12809         s << "\tsrcImage = " << value.srcImage << '\n';
12810         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
12811         s << "\tdstImage = " << value.dstImage << '\n';
12812         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
12813         s << "\tregionCount = " << value.regionCount << '\n';
12814         s << "\tpRegions = " << value.pRegions << '\n';
12815         s << '}';
12816         return s;
12817 }
12818
12819 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
12820 {
12821         s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
12822         s << "\tsType = " << value.sType << '\n';
12823         s << "\tpNext = " << value.pNext << '\n';
12824         s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
12825         s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
12826         s << '}';
12827         return s;
12828 }
12829
12830 std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
12831 {
12832         s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
12833         s << "\tsType = " << value.sType << '\n';
12834         s << "\tpNext = " << value.pNext << '\n';
12835         s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
12836         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
12837         s << '}';
12838         return s;
12839 }
12840
12841 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
12842 {
12843         s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
12844         s << "\tsType = " << value.sType << '\n';
12845         s << "\tpNext = " << value.pNext << '\n';
12846         s << "\tfragmentSize = " << value.fragmentSize << '\n';
12847         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
12848         s << '}';
12849         return s;
12850 }
12851
12852 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
12853 {
12854         s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
12855         s << "\tsType = " << value.sType << '\n';
12856         s << "\tpNext = " << value.pNext << '\n';
12857         s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
12858         s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
12859         s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
12860         s << '}';
12861         return s;
12862 }
12863
12864 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
12865 {
12866         s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
12867         s << "\tsType = " << value.sType << '\n';
12868         s << "\tpNext = " << value.pNext << '\n';
12869         s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
12870         s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
12871         s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
12872         s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
12873         s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
12874         s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
12875         s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
12876         s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
12877         s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
12878         s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
12879         s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
12880         s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
12881         s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
12882         s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
12883         s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
12884         s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
12885         s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
12886         s << '}';
12887         return s;
12888 }
12889
12890 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
12891 {
12892         s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
12893         s << "\tsType = " << value.sType << '\n';
12894         s << "\tpNext = " << value.pNext << '\n';
12895         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
12896         s << "\tfragmentSize = " << value.fragmentSize << '\n';
12897         s << '}';
12898         return s;
12899 }
12900
12901 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
12902 {
12903         s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
12904         s << "\tsType = " << value.sType << '\n';
12905         s << "\tpNext = " << value.pNext << '\n';
12906         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
12907         s << '}';
12908         return s;
12909 }
12910
12911 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
12912 {
12913         s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
12914         s << "\tsType = " << value.sType << '\n';
12915         s << "\tpNext = " << value.pNext << '\n';
12916         s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
12917         s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
12918         s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
12919         s << '}';
12920         return s;
12921 }
12922
12923 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
12924 {
12925         s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
12926         s << "\tsType = " << value.sType << '\n';
12927         s << "\tpNext = " << value.pNext << '\n';
12928         s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
12929         s << '}';
12930         return s;
12931 }
12932
12933 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
12934 {
12935         s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
12936         s << "\tsType = " << value.sType << '\n';
12937         s << "\tpNext = " << value.pNext << '\n';
12938         s << "\tshadingRateType = " << value.shadingRateType << '\n';
12939         s << "\tshadingRate = " << value.shadingRate << '\n';
12940         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
12941         s << '}';
12942         return s;
12943 }
12944
12945 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
12946 {
12947         s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
12948         s << "\tsType = " << value.sType << '\n';
12949         s << "\tpNext = " << value.pNext << '\n';
12950         s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
12951         s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
12952         s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
12953         s << '}';
12954         return s;
12955 }
12956
12957 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
12958 {
12959         s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
12960         s << "\tsType = " << value.sType << '\n';
12961         s << "\tpNext = " << value.pNext << '\n';
12962         s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
12963         s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
12964         s << '}';
12965         return s;
12966 }
12967
12968 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT& value)
12969 {
12970         s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT = {\n";
12971         s << "\tsType = " << value.sType << '\n';
12972         s << "\tpNext = " << value.pNext << '\n';
12973         s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
12974         s << '}';
12975         return s;
12976 }
12977
12978 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListEXT& value)
12979 {
12980         s << "VkMutableDescriptorTypeListEXT = {\n";
12981         s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
12982         s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
12983         s << '}';
12984         return s;
12985 }
12986
12987 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoEXT& value)
12988 {
12989         s << "VkMutableDescriptorTypeCreateInfoEXT = {\n";
12990         s << "\tsType = " << value.sType << '\n';
12991         s << "\tpNext = " << value.pNext << '\n';
12992         s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
12993         s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
12994         s << '}';
12995         return s;
12996 }
12997
12998 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
12999 {
13000         s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
13001         s << "\tsType = " << value.sType << '\n';
13002         s << "\tpNext = " << value.pNext << '\n';
13003         s << "\tdepthClipControl = " << value.depthClipControl << '\n';
13004         s << '}';
13005         return s;
13006 }
13007
13008 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
13009 {
13010         s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
13011         s << "\tsType = " << value.sType << '\n';
13012         s << "\tpNext = " << value.pNext << '\n';
13013         s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
13014         s << '}';
13015         return s;
13016 }
13017
13018 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
13019 {
13020         s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
13021         s << "\tsType = " << value.sType << '\n';
13022         s << "\tpNext = " << value.pNext << '\n';
13023         s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
13024         s << '}';
13025         return s;
13026 }
13027
13028 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
13029 {
13030         s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
13031         s << "\tsType = " << value.sType << '\n';
13032         s << "\tpNext = " << value.pNext << '\n';
13033         s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
13034         s << '}';
13035         return s;
13036 }
13037
13038 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
13039 {
13040         s << "VkVertexInputBindingDescription2EXT = {\n";
13041         s << "\tsType = " << value.sType << '\n';
13042         s << "\tpNext = " << value.pNext << '\n';
13043         s << "\tbinding = " << value.binding << '\n';
13044         s << "\tstride = " << value.stride << '\n';
13045         s << "\tinputRate = " << value.inputRate << '\n';
13046         s << "\tdivisor = " << value.divisor << '\n';
13047         s << '}';
13048         return s;
13049 }
13050
13051 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
13052 {
13053         s << "VkVertexInputAttributeDescription2EXT = {\n";
13054         s << "\tsType = " << value.sType << '\n';
13055         s << "\tpNext = " << value.pNext << '\n';
13056         s << "\tlocation = " << value.location << '\n';
13057         s << "\tbinding = " << value.binding << '\n';
13058         s << "\tformat = " << value.format << '\n';
13059         s << "\toffset = " << value.offset << '\n';
13060         s << '}';
13061         return s;
13062 }
13063
13064 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
13065 {
13066         s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
13067         s << "\tsType = " << value.sType << '\n';
13068         s << "\tpNext = " << value.pNext << '\n';
13069         s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
13070         s << '}';
13071         return s;
13072 }
13073
13074 std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
13075 {
13076         s << "VkPipelineColorWriteCreateInfoEXT = {\n";
13077         s << "\tsType = " << value.sType << '\n';
13078         s << "\tpNext = " << value.pNext << '\n';
13079         s << "\tattachmentCount = " << value.attachmentCount << '\n';
13080         s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
13081         s << '}';
13082         return s;
13083 }
13084
13085 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
13086 {
13087         s << "VkMemoryBarrier2 = {\n";
13088         s << "\tsType = " << value.sType << '\n';
13089         s << "\tpNext = " << value.pNext << '\n';
13090         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13091         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13092         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13093         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13094         s << '}';
13095         return s;
13096 }
13097
13098 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
13099 {
13100         s << "VkImageMemoryBarrier2 = {\n";
13101         s << "\tsType = " << value.sType << '\n';
13102         s << "\tpNext = " << value.pNext << '\n';
13103         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13104         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13105         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13106         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13107         s << "\toldLayout = " << value.oldLayout << '\n';
13108         s << "\tnewLayout = " << value.newLayout << '\n';
13109         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
13110         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
13111         s << "\timage = " << value.image << '\n';
13112         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
13113         s << '}';
13114         return s;
13115 }
13116
13117 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
13118 {
13119         s << "VkBufferMemoryBarrier2 = {\n";
13120         s << "\tsType = " << value.sType << '\n';
13121         s << "\tpNext = " << value.pNext << '\n';
13122         s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
13123         s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
13124         s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
13125         s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
13126         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
13127         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
13128         s << "\tbuffer = " << value.buffer << '\n';
13129         s << "\toffset = " << value.offset << '\n';
13130         s << "\tsize = " << value.size << '\n';
13131         s << '}';
13132         return s;
13133 }
13134
13135 std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
13136 {
13137         s << "VkDependencyInfo = {\n";
13138         s << "\tsType = " << value.sType << '\n';
13139         s << "\tpNext = " << value.pNext << '\n';
13140         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
13141         s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
13142         s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
13143         s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
13144         s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
13145         s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
13146         s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
13147         s << '}';
13148         return s;
13149 }
13150
13151 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
13152 {
13153         s << "VkSemaphoreSubmitInfo = {\n";
13154         s << "\tsType = " << value.sType << '\n';
13155         s << "\tpNext = " << value.pNext << '\n';
13156         s << "\tsemaphore = " << value.semaphore << '\n';
13157         s << "\tvalue = " << value.value << '\n';
13158         s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
13159         s << "\tdeviceIndex = " << value.deviceIndex << '\n';
13160         s << '}';
13161         return s;
13162 }
13163
13164 std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
13165 {
13166         s << "VkCommandBufferSubmitInfo = {\n";
13167         s << "\tsType = " << value.sType << '\n';
13168         s << "\tpNext = " << value.pNext << '\n';
13169         s << "\tcommandBuffer = " << value.commandBuffer << '\n';
13170         s << "\tdeviceMask = " << value.deviceMask << '\n';
13171         s << '}';
13172         return s;
13173 }
13174
13175 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
13176 {
13177         s << "VkSubmitInfo2 = {\n";
13178         s << "\tsType = " << value.sType << '\n';
13179         s << "\tpNext = " << value.pNext << '\n';
13180         s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
13181         s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
13182         s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
13183         s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
13184         s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
13185         s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
13186         s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
13187         s << '}';
13188         return s;
13189 }
13190
13191 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
13192 {
13193         s << "VkQueueFamilyCheckpointProperties2NV = {\n";
13194         s << "\tsType = " << value.sType << '\n';
13195         s << "\tpNext = " << value.pNext << '\n';
13196         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
13197         s << '}';
13198         return s;
13199 }
13200
13201 std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
13202 {
13203         s << "VkCheckpointData2NV = {\n";
13204         s << "\tsType = " << value.sType << '\n';
13205         s << "\tpNext = " << value.pNext << '\n';
13206         s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
13207         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
13208         s << '}';
13209         return s;
13210 }
13211
13212 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
13213 {
13214         s << "VkPhysicalDeviceSynchronization2Features = {\n";
13215         s << "\tsType = " << value.sType << '\n';
13216         s << "\tpNext = " << value.pNext << '\n';
13217         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
13218         s << '}';
13219         return s;
13220 }
13221
13222 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
13223 {
13224         s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
13225         s << "\tsType = " << value.sType << '\n';
13226         s << "\tpNext = " << value.pNext << '\n';
13227         s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
13228         s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
13229         s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
13230         s << '}';
13231         return s;
13232 }
13233
13234 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLegacyDitheringFeaturesEXT& value)
13235 {
13236         s << "VkPhysicalDeviceLegacyDitheringFeaturesEXT = {\n";
13237         s << "\tsType = " << value.sType << '\n';
13238         s << "\tpNext = " << value.pNext << '\n';
13239         s << "\tlegacyDithering = " << value.legacyDithering << '\n';
13240         s << '}';
13241         return s;
13242 }
13243
13244 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
13245 {
13246         s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
13247         s << "\tsType = " << value.sType << '\n';
13248         s << "\tpNext = " << value.pNext << '\n';
13249         s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
13250         s << '}';
13251         return s;
13252 }
13253
13254 std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
13255 {
13256         s << "VkSubpassResolvePerformanceQueryEXT = {\n";
13257         s << "\tsType = " << value.sType << '\n';
13258         s << "\tpNext = " << value.pNext << '\n';
13259         s << "\toptimal = " << value.optimal << '\n';
13260         s << '}';
13261         return s;
13262 }
13263
13264 std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
13265 {
13266         s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
13267         s << "\tsType = " << value.sType << '\n';
13268         s << "\tpNext = " << value.pNext << '\n';
13269         s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
13270         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
13271         s << '}';
13272         return s;
13273 }
13274
13275 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT& value)
13276 {
13277         s << "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT = {\n";
13278         s << "\tsType = " << value.sType << '\n';
13279         s << "\tpNext = " << value.pNext << '\n';
13280         s << "\tpipelineProtectedAccess = " << value.pipelineProtectedAccess << '\n';
13281         s << '}';
13282         return s;
13283 }
13284
13285 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyVideoPropertiesKHR& value)
13286 {
13287         s << "VkQueueFamilyVideoPropertiesKHR = {\n";
13288         s << "\tsType = " << value.sType << '\n';
13289         s << "\tpNext = " << value.pNext << '\n';
13290         s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
13291         s << '}';
13292         return s;
13293 }
13294
13295 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusPropertiesKHR& value)
13296 {
13297         s << "VkQueueFamilyQueryResultStatusPropertiesKHR = {\n";
13298         s << "\tsType = " << value.sType << '\n';
13299         s << "\tpNext = " << value.pNext << '\n';
13300         s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
13301         s << '}';
13302         return s;
13303 }
13304
13305 std::ostream& operator<< (std::ostream& s, const VkVideoProfileListInfoKHR& value)
13306 {
13307         s << "VkVideoProfileListInfoKHR = {\n";
13308         s << "\tsType = " << value.sType << '\n';
13309         s << "\tpNext = " << value.pNext << '\n';
13310         s << "\tprofileCount = " << value.profileCount << '\n';
13311         s << "\tpProfiles = " << value.pProfiles << '\n';
13312         s << '}';
13313         return s;
13314 }
13315
13316 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
13317 {
13318         s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
13319         s << "\tsType = " << value.sType << '\n';
13320         s << "\tpNext = " << value.pNext << '\n';
13321         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
13322         s << '}';
13323         return s;
13324 }
13325
13326 std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
13327 {
13328         s << "VkVideoFormatPropertiesKHR = {\n";
13329         s << "\tsType = " << value.sType << '\n';
13330         s << "\tpNext = " << value.pNext << '\n';
13331         s << "\tformat = " << value.format << '\n';
13332         s << "\tcomponentMapping = " << value.componentMapping << '\n';
13333         s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
13334         s << "\timageType = " << value.imageType << '\n';
13335         s << "\timageTiling = " << value.imageTiling << '\n';
13336         s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
13337         s << '}';
13338         return s;
13339 }
13340
13341 std::ostream& operator<< (std::ostream& s, const VkVideoProfileInfoKHR& value)
13342 {
13343         s << "VkVideoProfileInfoKHR = {\n";
13344         s << "\tsType = " << value.sType << '\n';
13345         s << "\tpNext = " << value.pNext << '\n';
13346         s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
13347         s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
13348         s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
13349         s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
13350         s << '}';
13351         return s;
13352 }
13353
13354 std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
13355 {
13356         s << "VkVideoCapabilitiesKHR = {\n";
13357         s << "\tsType = " << value.sType << '\n';
13358         s << "\tpNext = " << value.pNext << '\n';
13359         s << "\tflags = " << getVideoCapabilityFlagsKHRStr(value.flags) << '\n';
13360         s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
13361         s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
13362         s << "\tpictureAccessGranularity = " << value.pictureAccessGranularity << '\n';
13363         s << "\tminCodedExtent = " << value.minCodedExtent << '\n';
13364         s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13365         s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
13366         s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
13367         s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
13368         s << '}';
13369         return s;
13370 }
13371
13372 std::ostream& operator<< (std::ostream& s, const VkVideoSessionMemoryRequirementsKHR& value)
13373 {
13374         s << "VkVideoSessionMemoryRequirementsKHR = {\n";
13375         s << "\tsType = " << value.sType << '\n';
13376         s << "\tpNext = " << value.pNext << '\n';
13377         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13378         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
13379         s << '}';
13380         return s;
13381 }
13382
13383 std::ostream& operator<< (std::ostream& s, const VkBindVideoSessionMemoryInfoKHR& value)
13384 {
13385         s << "VkBindVideoSessionMemoryInfoKHR = {\n";
13386         s << "\tsType = " << value.sType << '\n';
13387         s << "\tpNext = " << value.pNext << '\n';
13388         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13389         s << "\tmemory = " << value.memory << '\n';
13390         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
13391         s << "\tmemorySize = " << value.memorySize << '\n';
13392         s << '}';
13393         return s;
13394 }
13395
13396 std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceInfoKHR& value)
13397 {
13398         s << "VkVideoPictureResourceInfoKHR = {\n";
13399         s << "\tsType = " << value.sType << '\n';
13400         s << "\tpNext = " << value.pNext << '\n';
13401         s << "\tcodedOffset = " << value.codedOffset << '\n';
13402         s << "\tcodedExtent = " << value.codedExtent << '\n';
13403         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
13404         s << "\timageViewBinding = " << value.imageViewBinding << '\n';
13405         s << '}';
13406         return s;
13407 }
13408
13409 std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotInfoKHR& value)
13410 {
13411         s << "VkVideoReferenceSlotInfoKHR = {\n";
13412         s << "\tsType = " << value.sType << '\n';
13413         s << "\tpNext = " << value.pNext << '\n';
13414         s << "\tslotIndex = " << value.slotIndex << '\n';
13415         s << "\tpPictureResource = " << value.pPictureResource << '\n';
13416         s << '}';
13417         return s;
13418 }
13419
13420 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
13421 {
13422         s << "VkVideoDecodeCapabilitiesKHR = {\n";
13423         s << "\tsType = " << value.sType << '\n';
13424         s << "\tpNext = " << value.pNext << '\n';
13425         s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
13426         s << '}';
13427         return s;
13428 }
13429
13430 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeUsageInfoKHR& value)
13431 {
13432         s << "VkVideoDecodeUsageInfoKHR = {\n";
13433         s << "\tsType = " << value.sType << '\n';
13434         s << "\tpNext = " << value.pNext << '\n';
13435         s << "\tvideoUsageHints = " << getVideoDecodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13436         s << '}';
13437         return s;
13438 }
13439
13440 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
13441 {
13442         s << "VkVideoDecodeInfoKHR = {\n";
13443         s << "\tsType = " << value.sType << '\n';
13444         s << "\tpNext = " << value.pNext << '\n';
13445         s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
13446         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13447         s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
13448         s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
13449         s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
13450         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13451         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13452         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13453         s << '}';
13454         return s;
13455 }
13456
13457 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileInfoEXT& value)
13458 {
13459         s << "VkVideoDecodeH264ProfileInfoEXT = {\n";
13460         s << "\tsType = " << value.sType << '\n';
13461         s << "\tpNext = " << value.pNext << '\n';
13462         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13463         s << "\tpictureLayout = " << value.pictureLayout << '\n';
13464         s << '}';
13465         return s;
13466 }
13467
13468 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
13469 {
13470         s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
13471         s << "\tsType = " << value.sType << '\n';
13472         s << "\tpNext = " << value.pNext << '\n';
13473         s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
13474         s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
13475         s << '}';
13476         return s;
13477 }
13478
13479 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
13480 {
13481         s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
13482         s << "\tsType = " << value.sType << '\n';
13483         s << "\tpNext = " << value.pNext << '\n';
13484         s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13485         s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13486         s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13487         s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13488         s << '}';
13489         return s;
13490 }
13491
13492 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
13493 {
13494         s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
13495         s << "\tsType = " << value.sType << '\n';
13496         s << "\tpNext = " << value.pNext << '\n';
13497         s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13498         s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13499         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13500         s << '}';
13501         return s;
13502 }
13503
13504 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
13505 {
13506         s << "VkVideoDecodeH264PictureInfoEXT = {\n";
13507         s << "\tsType = " << value.sType << '\n';
13508         s << "\tpNext = " << value.pNext << '\n';
13509         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13510         s << "\tsliceCount = " << value.sliceCount << '\n';
13511         s << "\tpSliceOffsets = " << value.pSliceOffsets << '\n';
13512         s << '}';
13513         return s;
13514 }
13515
13516 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
13517 {
13518         s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
13519         s << "\tsType = " << value.sType << '\n';
13520         s << "\tpNext = " << value.pNext << '\n';
13521         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13522         s << '}';
13523         return s;
13524 }
13525
13526 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileInfoEXT& value)
13527 {
13528         s << "VkVideoDecodeH265ProfileInfoEXT = {\n";
13529         s << "\tsType = " << value.sType << '\n';
13530         s << "\tpNext = " << value.pNext << '\n';
13531         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13532         s << '}';
13533         return s;
13534 }
13535
13536 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
13537 {
13538         s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
13539         s << "\tsType = " << value.sType << '\n';
13540         s << "\tpNext = " << value.pNext << '\n';
13541         s << "\tmaxLevelIdc = " << value.maxLevelIdc << '\n';
13542         s << '}';
13543         return s;
13544 }
13545
13546 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
13547 {
13548         s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
13549         s << "\tsType = " << value.sType << '\n';
13550         s << "\tpNext = " << value.pNext << '\n';
13551         s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
13552         s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
13553         s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13554         s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13555         s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13556         s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13557         s << '}';
13558         return s;
13559 }
13560
13561 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
13562 {
13563         s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
13564         s << "\tsType = " << value.sType << '\n';
13565         s << "\tpNext = " << value.pNext << '\n';
13566         s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
13567         s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13568         s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13569         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13570         s << '}';
13571         return s;
13572 }
13573
13574 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
13575 {
13576         s << "VkVideoDecodeH265PictureInfoEXT = {\n";
13577         s << "\tsType = " << value.sType << '\n';
13578         s << "\tpNext = " << value.pNext << '\n';
13579         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13580         s << "\tsliceCount = " << value.sliceCount << '\n';
13581         s << "\tpSliceOffsets = " << value.pSliceOffsets << '\n';
13582         s << '}';
13583         return s;
13584 }
13585
13586 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
13587 {
13588         s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
13589         s << "\tsType = " << value.sType << '\n';
13590         s << "\tpNext = " << value.pNext << '\n';
13591         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13592         s << '}';
13593         return s;
13594 }
13595
13596 std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
13597 {
13598         s << "VkVideoSessionCreateInfoKHR = {\n";
13599         s << "\tsType = " << value.sType << '\n';
13600         s << "\tpNext = " << value.pNext << '\n';
13601         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
13602         s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
13603         s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
13604         s << "\tpictureFormat = " << value.pictureFormat << '\n';
13605         s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13606         s << "\treferencePictureFormat = " << value.referencePictureFormat << '\n';
13607         s << "\tmaxDpbSlots = " << value.maxDpbSlots << '\n';
13608         s << "\tmaxActiveReferencePictures = " << value.maxActiveReferencePictures << '\n';
13609         s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
13610         s << '}';
13611         return s;
13612 }
13613
13614 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
13615 {
13616         s << "VkVideoSessionParametersCreateInfoKHR = {\n";
13617         s << "\tsType = " << value.sType << '\n';
13618         s << "\tpNext = " << value.pNext << '\n';
13619         s << "\tflags = " << getVideoSessionParametersCreateFlagsKHRStr(value.flags) << '\n';
13620         s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
13621         s << "\tvideoSession = " << value.videoSession << '\n';
13622         s << '}';
13623         return s;
13624 }
13625
13626 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
13627 {
13628         s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
13629         s << "\tsType = " << value.sType << '\n';
13630         s << "\tpNext = " << value.pNext << '\n';
13631         s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
13632         s << '}';
13633         return s;
13634 }
13635
13636 std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
13637 {
13638         s << "VkVideoBeginCodingInfoKHR = {\n";
13639         s << "\tsType = " << value.sType << '\n';
13640         s << "\tpNext = " << value.pNext << '\n';
13641         s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
13642         s << "\tvideoSession = " << value.videoSession << '\n';
13643         s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
13644         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13645         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13646         s << '}';
13647         return s;
13648 }
13649
13650 std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
13651 {
13652         s << "VkVideoEndCodingInfoKHR = {\n";
13653         s << "\tsType = " << value.sType << '\n';
13654         s << "\tpNext = " << value.pNext << '\n';
13655         s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
13656         s << '}';
13657         return s;
13658 }
13659
13660 std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
13661 {
13662         s << "VkVideoCodingControlInfoKHR = {\n";
13663         s << "\tsType = " << value.sType << '\n';
13664         s << "\tpNext = " << value.pNext << '\n';
13665         s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
13666         s << '}';
13667         return s;
13668 }
13669
13670 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeUsageInfoKHR& value)
13671 {
13672         s << "VkVideoEncodeUsageInfoKHR = {\n";
13673         s << "\tsType = " << value.sType << '\n';
13674         s << "\tpNext = " << value.pNext << '\n';
13675         s << "\tvideoUsageHints = " << getVideoEncodeUsageFlagsKHRStr(value.videoUsageHints) << '\n';
13676         s << "\tvideoContentHints = " << getVideoEncodeContentFlagsKHRStr(value.videoContentHints) << '\n';
13677         s << "\ttuningMode = " << value.tuningMode << '\n';
13678         s << '}';
13679         return s;
13680 }
13681
13682 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
13683 {
13684         s << "VkVideoEncodeInfoKHR = {\n";
13685         s << "\tsType = " << value.sType << '\n';
13686         s << "\tpNext = " << value.pNext << '\n';
13687         s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
13688         s << "\tqualityLevel = " << value.qualityLevel << '\n';
13689         s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
13690         s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
13691         s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
13692         s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
13693         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13694         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13695         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13696         s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
13697         s << '}';
13698         return s;
13699 }
13700
13701 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
13702 {
13703         s << "VkVideoEncodeRateControlInfoKHR = {\n";
13704         s << "\tsType = " << value.sType << '\n';
13705         s << "\tpNext = " << value.pNext << '\n';
13706         s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
13707         s << "\trateControlMode = " << value.rateControlMode << '\n';
13708         s << "\tlayerCount = " << value.layerCount << '\n';
13709         s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
13710         s << '}';
13711         return s;
13712 }
13713
13714 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
13715 {
13716         s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
13717         s << "\tsType = " << value.sType << '\n';
13718         s << "\tpNext = " << value.pNext << '\n';
13719         s << "\taverageBitrate = " << value.averageBitrate << '\n';
13720         s << "\tmaxBitrate = " << value.maxBitrate << '\n';
13721         s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
13722         s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
13723         s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
13724         s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
13725         s << '}';
13726         return s;
13727 }
13728
13729 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
13730 {
13731         s << "VkVideoEncodeCapabilitiesKHR = {\n";
13732         s << "\tsType = " << value.sType << '\n';
13733         s << "\tpNext = " << value.pNext << '\n';
13734         s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
13735         s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
13736         s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
13737         s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
13738         s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
13739         s << '}';
13740         return s;
13741 }
13742
13743 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
13744 {
13745         s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
13746         s << "\tsType = " << value.sType << '\n';
13747         s << "\tpNext = " << value.pNext << '\n';
13748         s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
13749         s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13750         s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13751         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
13752         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
13753         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
13754         s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
13755         s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
13756         s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
13757         s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
13758         s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
13759         s << '}';
13760         return s;
13761 }
13762
13763 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
13764 {
13765         s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
13766         s << "\tsType = " << value.sType << '\n';
13767         s << "\tpNext = " << value.pNext << '\n';
13768         s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13769         s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13770         s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13771         s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13772         s << '}';
13773         return s;
13774 }
13775
13776 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
13777 {
13778         s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
13779         s << "\tsType = " << value.sType << '\n';
13780         s << "\tpNext = " << value.pNext << '\n';
13781         s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13782         s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13783         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13784         s << '}';
13785         return s;
13786 }
13787
13788 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
13789 {
13790         s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
13791         s << "\tsType = " << value.sType << '\n';
13792         s << "\tpNext = " << value.pNext << '\n';
13793         s << "\tslotIndex = " << value.slotIndex << '\n';
13794         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13795         s << '}';
13796         return s;
13797 }
13798
13799 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
13800 {
13801         s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
13802         s << "\tsType = " << value.sType << '\n';
13803         s << "\tpNext = " << value.pNext << '\n';
13804         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13805         s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
13806         s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
13807         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13808         s << '}';
13809         return s;
13810 }
13811
13812 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsInfoEXT& value)
13813 {
13814         s << "VkVideoEncodeH264ReferenceListsInfoEXT = {\n";
13815         s << "\tsType = " << value.sType << '\n';
13816         s << "\tpNext = " << value.pNext << '\n';
13817         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
13818         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
13819         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
13820         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
13821         s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
13822         s << '}';
13823         return s;
13824 }
13825
13826 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersInfoEXT& value)
13827 {
13828         s << "VkVideoEncodeH264EmitPictureParametersInfoEXT = {\n";
13829         s << "\tsType = " << value.sType << '\n';
13830         s << "\tpNext = " << value.pNext << '\n';
13831         s << "\tspsId = " << value.spsId << '\n';
13832         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13833         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13834         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13835         s << '}';
13836         return s;
13837 }
13838
13839 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileInfoEXT& value)
13840 {
13841         s << "VkVideoEncodeH264ProfileInfoEXT = {\n";
13842         s << "\tsType = " << value.sType << '\n';
13843         s << "\tpNext = " << value.pNext << '\n';
13844         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13845         s << '}';
13846         return s;
13847 }
13848
13849 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceInfoEXT& value)
13850 {
13851         s << "VkVideoEncodeH264NaluSliceInfoEXT = {\n";
13852         s << "\tsType = " << value.sType << '\n';
13853         s << "\tpNext = " << value.pNext << '\n';
13854         s << "\tmbCount = " << value.mbCount << '\n';
13855         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13856         s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
13857         s << '}';
13858         return s;
13859 }
13860
13861 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
13862 {
13863         s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
13864         s << "\tsType = " << value.sType << '\n';
13865         s << "\tpNext = " << value.pNext << '\n';
13866         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13867         s << "\tidrPeriod = " << value.idrPeriod << '\n';
13868         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13869         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
13870         s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
13871         s << '}';
13872         return s;
13873 }
13874
13875 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
13876 {
13877         s << "VkVideoEncodeH264QpEXT = {\n";
13878         s << "\tqpI = " << value.qpI << '\n';
13879         s << "\tqpP = " << value.qpP << '\n';
13880         s << "\tqpB = " << value.qpB << '\n';
13881         s << '}';
13882         return s;
13883 }
13884
13885 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
13886 {
13887         s << "VkVideoEncodeH264FrameSizeEXT = {\n";
13888         s << "\tframeISize = " << value.frameISize << '\n';
13889         s << "\tframePSize = " << value.framePSize << '\n';
13890         s << "\tframeBSize = " << value.frameBSize << '\n';
13891         s << '}';
13892         return s;
13893 }
13894
13895 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
13896 {
13897         s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
13898         s << "\tsType = " << value.sType << '\n';
13899         s << "\tpNext = " << value.pNext << '\n';
13900         s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
13901         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
13902         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
13903         s << "\tuseMinQp = " << value.useMinQp << '\n';
13904         s << "\tminQp = " << value.minQp << '\n';
13905         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
13906         s << "\tmaxQp = " << value.maxQp << '\n';
13907         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
13908         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
13909         s << '}';
13910         return s;
13911 }
13912
13913 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
13914 {
13915         s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
13916         s << "\tsType = " << value.sType << '\n';
13917         s << "\tpNext = " << value.pNext << '\n';
13918         s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
13919         s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13920         s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13921         s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
13922         s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
13923         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
13924         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
13925         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
13926         s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
13927         s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
13928         s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
13929         s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
13930         s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
13931         s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
13932         s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
13933         s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
13934         s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
13935         s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
13936         s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
13937         s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
13938         s << '}';
13939         return s;
13940 }
13941
13942 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
13943 {
13944         s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
13945         s << "\tsType = " << value.sType << '\n';
13946         s << "\tpNext = " << value.pNext << '\n';
13947         s << "\tstdVPSCount = " << value.stdVPSCount << '\n';
13948         s << "\tpStdVPSs = " << value.pStdVPSs << '\n';
13949         s << "\tstdSPSCount = " << value.stdSPSCount << '\n';
13950         s << "\tpStdSPSs = " << value.pStdSPSs << '\n';
13951         s << "\tstdPPSCount = " << value.stdPPSCount << '\n';
13952         s << "\tpStdPPSs = " << value.pStdPPSs << '\n';
13953         s << '}';
13954         return s;
13955 }
13956
13957 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
13958 {
13959         s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
13960         s << "\tsType = " << value.sType << '\n';
13961         s << "\tpNext = " << value.pNext << '\n';
13962         s << "\tmaxStdVPSCount = " << value.maxStdVPSCount << '\n';
13963         s << "\tmaxStdSPSCount = " << value.maxStdSPSCount << '\n';
13964         s << "\tmaxStdPPSCount = " << value.maxStdPPSCount << '\n';
13965         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13966         s << '}';
13967         return s;
13968 }
13969
13970 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
13971 {
13972         s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
13973         s << "\tsType = " << value.sType << '\n';
13974         s << "\tpNext = " << value.pNext << '\n';
13975         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13976         s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
13977         s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
13978         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13979         s << '}';
13980         return s;
13981 }
13982
13983 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersInfoEXT& value)
13984 {
13985         s << "VkVideoEncodeH265EmitPictureParametersInfoEXT = {\n";
13986         s << "\tsType = " << value.sType << '\n';
13987         s << "\tpNext = " << value.pNext << '\n';
13988         s << "\tvpsId = " << value.vpsId << '\n';
13989         s << "\tspsId = " << value.spsId << '\n';
13990         s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
13991         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13992         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13993         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13994         s << '}';
13995         return s;
13996 }
13997
13998 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentInfoEXT& value)
13999 {
14000         s << "VkVideoEncodeH265NaluSliceSegmentInfoEXT = {\n";
14001         s << "\tsType = " << value.sType << '\n';
14002         s << "\tpNext = " << value.pNext << '\n';
14003         s << "\tctbCount = " << value.ctbCount << '\n';
14004         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14005         s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
14006         s << '}';
14007         return s;
14008 }
14009
14010 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
14011 {
14012         s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
14013         s << "\tsType = " << value.sType << '\n';
14014         s << "\tpNext = " << value.pNext << '\n';
14015         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
14016         s << "\tidrPeriod = " << value.idrPeriod << '\n';
14017         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
14018         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
14019         s << "\tsubLayerCount = " << value.subLayerCount << '\n';
14020         s << '}';
14021         return s;
14022 }
14023
14024 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
14025 {
14026         s << "VkVideoEncodeH265QpEXT = {\n";
14027         s << "\tqpI = " << value.qpI << '\n';
14028         s << "\tqpP = " << value.qpP << '\n';
14029         s << "\tqpB = " << value.qpB << '\n';
14030         s << '}';
14031         return s;
14032 }
14033
14034 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
14035 {
14036         s << "VkVideoEncodeH265FrameSizeEXT = {\n";
14037         s << "\tframeISize = " << value.frameISize << '\n';
14038         s << "\tframePSize = " << value.framePSize << '\n';
14039         s << "\tframeBSize = " << value.frameBSize << '\n';
14040         s << '}';
14041         return s;
14042 }
14043
14044 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
14045 {
14046         s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
14047         s << "\tsType = " << value.sType << '\n';
14048         s << "\tpNext = " << value.pNext << '\n';
14049         s << "\ttemporalId = " << value.temporalId << '\n';
14050         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
14051         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
14052         s << "\tuseMinQp = " << value.useMinQp << '\n';
14053         s << "\tminQp = " << value.minQp << '\n';
14054         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
14055         s << "\tmaxQp = " << value.maxQp << '\n';
14056         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
14057         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
14058         s << '}';
14059         return s;
14060 }
14061
14062 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileInfoEXT& value)
14063 {
14064         s << "VkVideoEncodeH265ProfileInfoEXT = {\n";
14065         s << "\tsType = " << value.sType << '\n';
14066         s << "\tpNext = " << value.pNext << '\n';
14067         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14068         s << '}';
14069         return s;
14070 }
14071
14072 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
14073 {
14074         s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
14075         s << "\tsType = " << value.sType << '\n';
14076         s << "\tpNext = " << value.pNext << '\n';
14077         s << "\tslotIndex = " << value.slotIndex << '\n';
14078         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14079         s << '}';
14080         return s;
14081 }
14082
14083 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsInfoEXT& value)
14084 {
14085         s << "VkVideoEncodeH265ReferenceListsInfoEXT = {\n";
14086         s << "\tsType = " << value.sType << '\n';
14087         s << "\tpNext = " << value.pNext << '\n';
14088         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
14089         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
14090         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
14091         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
14092         s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
14093         s << '}';
14094         return s;
14095 }
14096
14097 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
14098 {
14099         s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
14100         s << "\tsType = " << value.sType << '\n';
14101         s << "\tpNext = " << value.pNext << '\n';
14102         s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
14103         s << '}';
14104         return s;
14105 }
14106
14107 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
14108 {
14109         s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
14110         s << "\tsType = " << value.sType << '\n';
14111         s << "\tpNext = " << value.pNext << '\n';
14112         s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
14113         s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
14114         s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
14115         s << '}';
14116         return s;
14117 }
14118
14119 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
14120 {
14121         s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
14122         s << "\tsType = " << value.sType << '\n';
14123         s << "\tpNext = " << value.pNext << '\n';
14124         s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
14125         s << '}';
14126         return s;
14127 }
14128
14129 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
14130 {
14131         s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
14132         s << "\tsType = " << value.sType << '\n';
14133         s << "\tpNext = " << value.pNext << '\n';
14134         s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
14135         s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
14136         s << '}';
14137         return s;
14138 }
14139
14140 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
14141 {
14142         s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
14143         s << "\tsType = " << value.sType << '\n';
14144         s << "\tpNext = " << value.pNext << '\n';
14145         s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
14146         s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
14147         s << '}';
14148         return s;
14149 }
14150
14151 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
14152 {
14153         s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
14154         s << "\tsType = " << value.sType << '\n';
14155         s << "\tpNext = " << value.pNext << '\n';
14156         s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
14157         s << '}';
14158         return s;
14159 }
14160
14161 std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
14162 {
14163         s << "VkCuModuleCreateInfoNVX = {\n";
14164         s << "\tsType = " << value.sType << '\n';
14165         s << "\tpNext = " << value.pNext << '\n';
14166         s << "\tdataSize = " << value.dataSize << '\n';
14167         s << "\tpData = " << value.pData << '\n';
14168         s << '}';
14169         return s;
14170 }
14171
14172 std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
14173 {
14174         s << "VkCuFunctionCreateInfoNVX = {\n";
14175         s << "\tsType = " << value.sType << '\n';
14176         s << "\tpNext = " << value.pNext << '\n';
14177         s << "\tmodule = " << value.module << '\n';
14178         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
14179         s << '}';
14180         return s;
14181 }
14182
14183 std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
14184 {
14185         s << "VkCuLaunchInfoNVX = {\n";
14186         s << "\tsType = " << value.sType << '\n';
14187         s << "\tpNext = " << value.pNext << '\n';
14188         s << "\tfunction = " << value.function << '\n';
14189         s << "\tgridDimX = " << value.gridDimX << '\n';
14190         s << "\tgridDimY = " << value.gridDimY << '\n';
14191         s << "\tgridDimZ = " << value.gridDimZ << '\n';
14192         s << "\tblockDimX = " << value.blockDimX << '\n';
14193         s << "\tblockDimY = " << value.blockDimY << '\n';
14194         s << "\tblockDimZ = " << value.blockDimZ << '\n';
14195         s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
14196         s << "\tparamCount = " << value.paramCount << '\n';
14197         s << "\tpParams = " << value.pParams << '\n';
14198         s << "\textraCount = " << value.extraCount << '\n';
14199         s << "\tpExtras = " << value.pExtras << '\n';
14200         s << '}';
14201         return s;
14202 }
14203
14204 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
14205 {
14206         s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
14207         s << "\tsType = " << value.sType << '\n';
14208         s << "\tpNext = " << value.pNext << '\n';
14209         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
14210         s << '}';
14211         return s;
14212 }
14213
14214 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
14215 {
14216         s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
14217         s << "\tsType = " << value.sType << '\n';
14218         s << "\tpNext = " << value.pNext << '\n';
14219         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
14220         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
14221         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
14222         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
14223         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
14224         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
14225         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
14226         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
14227         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
14228         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
14229         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
14230         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
14231         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
14232         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
14233         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
14234         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
14235         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
14236         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
14237         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
14238         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
14239         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
14240         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
14241         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
14242         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
14243         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
14244         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
14245         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
14246         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
14247         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
14248         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
14249         s << '}';
14250         return s;
14251 }
14252
14253 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
14254 {
14255         s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
14256         s << "\tsType = " << value.sType << '\n';
14257         s << "\tpNext = " << value.pNext << '\n';
14258         s << "\thasPrimary = " << value.hasPrimary << '\n';
14259         s << "\thasRender = " << value.hasRender << '\n';
14260         s << "\tprimaryMajor = " << value.primaryMajor << '\n';
14261         s << "\tprimaryMinor = " << value.primaryMinor << '\n';
14262         s << "\trenderMajor = " << value.renderMajor << '\n';
14263         s << "\trenderMinor = " << value.renderMinor << '\n';
14264         s << '}';
14265         return s;
14266 }
14267
14268 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
14269 {
14270         s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
14271         s << "\tsType = " << value.sType << '\n';
14272         s << "\tpNext = " << value.pNext << '\n';
14273         s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
14274         s << '}';
14275         return s;
14276 }
14277
14278 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
14279 {
14280         s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
14281         s << "\tsType = " << value.sType << '\n';
14282         s << "\tpNext = " << value.pNext << '\n';
14283         s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
14284         s << '}';
14285         return s;
14286 }
14287
14288 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
14289 {
14290         s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
14291         s << "\tsType = " << value.sType << '\n';
14292         s << "\tpNext = " << value.pNext << '\n';
14293         s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
14294         s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
14295         s << '}';
14296         return s;
14297 }
14298
14299 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
14300 {
14301         s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
14302         s << "\tsType = " << value.sType << '\n';
14303         s << "\tpNext = " << value.pNext << '\n';
14304         s << "\tvertexData = " << value.vertexData << '\n';
14305         s << '}';
14306         return s;
14307 }
14308
14309 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
14310 {
14311         s << "VkAccelerationStructureMotionInfoNV = {\n";
14312         s << "\tsType = " << value.sType << '\n';
14313         s << "\tpNext = " << value.pNext << '\n';
14314         s << "\tmaxInstances = " << value.maxInstances << '\n';
14315         s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
14316         s << '}';
14317         return s;
14318 }
14319
14320 std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
14321 {
14322         s << "VkSRTDataNV = {\n";
14323         s << "\tsx = " << value.sx << '\n';
14324         s << "\ta = " << value.a << '\n';
14325         s << "\tb = " << value.b << '\n';
14326         s << "\tpvx = " << value.pvx << '\n';
14327         s << "\tsy = " << value.sy << '\n';
14328         s << "\tc = " << value.c << '\n';
14329         s << "\tpvy = " << value.pvy << '\n';
14330         s << "\tsz = " << value.sz << '\n';
14331         s << "\tpvz = " << value.pvz << '\n';
14332         s << "\tqx = " << value.qx << '\n';
14333         s << "\tqy = " << value.qy << '\n';
14334         s << "\tqz = " << value.qz << '\n';
14335         s << "\tqw = " << value.qw << '\n';
14336         s << "\ttx = " << value.tx << '\n';
14337         s << "\tty = " << value.ty << '\n';
14338         s << "\ttz = " << value.tz << '\n';
14339         s << '}';
14340         return s;
14341 }
14342
14343 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
14344 {
14345         s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
14346         s << "\ttransformT0 = " << value.transformT0 << '\n';
14347         s << "\ttransformT1 = " << value.transformT1 << '\n';
14348         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
14349         s << "\tmask = " << value.mask << '\n';
14350         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
14351         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
14352         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
14353         s << '}';
14354         return s;
14355 }
14356
14357 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
14358 {
14359         s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
14360         s << "\ttransformT0 = " << value.transformT0 << '\n';
14361         s << "\ttransformT1 = " << value.transformT1 << '\n';
14362         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
14363         s << "\tmask = " << value.mask << '\n';
14364         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
14365         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
14366         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
14367         s << '}';
14368         return s;
14369 }
14370
14371 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
14372 {
14373         s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
14374         s << "\tstaticInstance = " << value.staticInstance << '\n';
14375         s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
14376         s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
14377         s << '}';
14378         return s;
14379 }
14380
14381 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
14382 {
14383         s << "VkAccelerationStructureMotionInstanceNV = {\n";
14384         s << "\ttype = " << value.type << '\n';
14385         s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
14386         s << "\tdata = " << value.data << '\n';
14387         s << '}';
14388         return s;
14389 }
14390
14391 std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
14392 {
14393         s << "VkMemoryGetRemoteAddressInfoNV = {\n";
14394         s << "\tsType = " << value.sType << '\n';
14395         s << "\tpNext = " << value.pNext << '\n';
14396         s << "\tmemory = " << value.memory << '\n';
14397         s << "\thandleType = " << value.handleType << '\n';
14398         s << '}';
14399         return s;
14400 }
14401
14402 std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
14403 {
14404         s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
14405         s << "\tsType = " << value.sType << '\n';
14406         s << "\tpNext = " << value.pNext << '\n';
14407         s << "\tcollection = " << value.collection << '\n';
14408         s << "\tindex = " << value.index << '\n';
14409         s << '}';
14410         return s;
14411 }
14412
14413 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
14414 {
14415         s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
14416         s << "\tsType = " << value.sType << '\n';
14417         s << "\tpNext = " << value.pNext << '\n';
14418         s << "\tcollection = " << value.collection << '\n';
14419         s << "\tindex = " << value.index << '\n';
14420         s << '}';
14421         return s;
14422 }
14423
14424 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
14425 {
14426         s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
14427         s << "\tsType = " << value.sType << '\n';
14428         s << "\tpNext = " << value.pNext << '\n';
14429         s << "\tcollection = " << value.collection << '\n';
14430         s << "\tindex = " << value.index << '\n';
14431         s << '}';
14432         return s;
14433 }
14434
14435 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
14436 {
14437         s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
14438         s << "\tsType = " << value.sType << '\n';
14439         s << "\tpNext = " << value.pNext << '\n';
14440         s << "\tcollectionToken = " << value.collectionToken << '\n';
14441         s << '}';
14442         return s;
14443 }
14444
14445 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
14446 {
14447         s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
14448         s << "\tsType = " << value.sType << '\n';
14449         s << "\tpNext = " << value.pNext << '\n';
14450         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14451         s << "\tbufferCount = " << value.bufferCount << '\n';
14452         s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
14453         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14454         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
14455         s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
14456         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14457         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14458         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14459         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14460         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14461         s << '}';
14462         return s;
14463 }
14464
14465 std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
14466 {
14467         s << "VkBufferConstraintsInfoFUCHSIA = {\n";
14468         s << "\tsType = " << value.sType << '\n';
14469         s << "\tpNext = " << value.pNext << '\n';
14470         s << "\tcreateInfo = " << value.createInfo << '\n';
14471         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14472         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14473         s << '}';
14474         return s;
14475 }
14476
14477 std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
14478 {
14479         s << "VkSysmemColorSpaceFUCHSIA = {\n";
14480         s << "\tsType = " << value.sType << '\n';
14481         s << "\tpNext = " << value.pNext << '\n';
14482         s << "\tcolorSpace = " << value.colorSpace << '\n';
14483         s << '}';
14484         return s;
14485 }
14486
14487 std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
14488 {
14489         s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
14490         s << "\tsType = " << value.sType << '\n';
14491         s << "\tpNext = " << value.pNext << '\n';
14492         s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
14493         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14494         s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
14495         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
14496         s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
14497         s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
14498         s << '}';
14499         return s;
14500 }
14501
14502 std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
14503 {
14504         s << "VkImageConstraintsInfoFUCHSIA = {\n";
14505         s << "\tsType = " << value.sType << '\n';
14506         s << "\tpNext = " << value.pNext << '\n';
14507         s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
14508         s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
14509         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14510         s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
14511         s << '}';
14512         return s;
14513 }
14514
14515 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
14516 {
14517         s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
14518         s << "\tsType = " << value.sType << '\n';
14519         s << "\tpNext = " << value.pNext << '\n';
14520         s << "\tminBufferCount = " << value.minBufferCount << '\n';
14521         s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
14522         s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
14523         s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
14524         s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
14525         s << '}';
14526         return s;
14527 }
14528
14529 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
14530 {
14531         s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
14532         s << "\tsType = " << value.sType << '\n';
14533         s << "\tpNext = " << value.pNext << '\n';
14534         s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
14535         s << '}';
14536         return s;
14537 }
14538
14539 std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
14540 {
14541         s << "VkFormatProperties3 = {\n";
14542         s << "\tsType = " << value.sType << '\n';
14543         s << "\tpNext = " << value.pNext << '\n';
14544         s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
14545         s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
14546         s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
14547         s << '}';
14548         return s;
14549 }
14550
14551 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
14552 {
14553         s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
14554         s << "\tsType = " << value.sType << '\n';
14555         s << "\tpNext = " << value.pNext << '\n';
14556         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
14557         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
14558         s << '}';
14559         return s;
14560 }
14561
14562 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
14563 {
14564         s << "VkDrmFormatModifierProperties2EXT = {\n";
14565         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
14566         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
14567         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
14568         s << '}';
14569         return s;
14570 }
14571
14572 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
14573 {
14574         s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
14575         s << "\tsType = " << value.sType << '\n';
14576         s << "\tpNext = " << value.pNext << '\n';
14577         s << "\tformat = " << value.format << '\n';
14578         s << "\texternalFormat = " << value.externalFormat << '\n';
14579         s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
14580         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
14581         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
14582         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
14583         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
14584         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
14585         s << '}';
14586         return s;
14587 }
14588
14589 std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
14590 {
14591         s << "VkPipelineRenderingCreateInfo = {\n";
14592         s << "\tsType = " << value.sType << '\n';
14593         s << "\tpNext = " << value.pNext << '\n';
14594         s << "\tviewMask = " << value.viewMask << '\n';
14595         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14596         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
14597         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
14598         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
14599         s << '}';
14600         return s;
14601 }
14602
14603 std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
14604 {
14605         s << "VkRenderingInfo = {\n";
14606         s << "\tsType = " << value.sType << '\n';
14607         s << "\tpNext = " << value.pNext << '\n';
14608         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
14609         s << "\trenderArea = " << value.renderArea << '\n';
14610         s << "\tlayerCount = " << value.layerCount << '\n';
14611         s << "\tviewMask = " << value.viewMask << '\n';
14612         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14613         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
14614         s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
14615         s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
14616         s << '}';
14617         return s;
14618 }
14619
14620 std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
14621 {
14622         s << "VkRenderingAttachmentInfo = {\n";
14623         s << "\tsType = " << value.sType << '\n';
14624         s << "\tpNext = " << value.pNext << '\n';
14625         s << "\timageView = " << value.imageView << '\n';
14626         s << "\timageLayout = " << value.imageLayout << '\n';
14627         s << "\tresolveMode = " << value.resolveMode << '\n';
14628         s << "\tresolveImageView = " << value.resolveImageView << '\n';
14629         s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
14630         s << "\tloadOp = " << value.loadOp << '\n';
14631         s << "\tstoreOp = " << value.storeOp << '\n';
14632         s << "\tclearValue = " << value.clearValue << '\n';
14633         s << '}';
14634         return s;
14635 }
14636
14637 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
14638 {
14639         s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
14640         s << "\tsType = " << value.sType << '\n';
14641         s << "\tpNext = " << value.pNext << '\n';
14642         s << "\timageView = " << value.imageView << '\n';
14643         s << "\timageLayout = " << value.imageLayout << '\n';
14644         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
14645         s << '}';
14646         return s;
14647 }
14648
14649 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
14650 {
14651         s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
14652         s << "\tsType = " << value.sType << '\n';
14653         s << "\tpNext = " << value.pNext << '\n';
14654         s << "\timageView = " << value.imageView << '\n';
14655         s << "\timageLayout = " << value.imageLayout << '\n';
14656         s << '}';
14657         return s;
14658 }
14659
14660 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
14661 {
14662         s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
14663         s << "\tsType = " << value.sType << '\n';
14664         s << "\tpNext = " << value.pNext << '\n';
14665         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
14666         s << '}';
14667         return s;
14668 }
14669
14670 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
14671 {
14672         s << "VkCommandBufferInheritanceRenderingInfo = {\n";
14673         s << "\tsType = " << value.sType << '\n';
14674         s << "\tpNext = " << value.pNext << '\n';
14675         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
14676         s << "\tviewMask = " << value.viewMask << '\n';
14677         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14678         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
14679         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
14680         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
14681         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
14682         s << '}';
14683         return s;
14684 }
14685
14686 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
14687 {
14688         s << "VkAttachmentSampleCountInfoAMD = {\n";
14689         s << "\tsType = " << value.sType << '\n';
14690         s << "\tpNext = " << value.pNext << '\n';
14691         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
14692         s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
14693         s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
14694         s << '}';
14695         return s;
14696 }
14697
14698 std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
14699 {
14700         s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
14701         s << "\tsType = " << value.sType << '\n';
14702         s << "\tpNext = " << value.pNext << '\n';
14703         s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
14704         s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
14705         s << '}';
14706         return s;
14707 }
14708
14709 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
14710 {
14711         s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
14712         s << "\tsType = " << value.sType << '\n';
14713         s << "\tpNext = " << value.pNext << '\n';
14714         s << "\tminLod = " << value.minLod << '\n';
14715         s << '}';
14716         return s;
14717 }
14718
14719 std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
14720 {
14721         s << "VkImageViewMinLodCreateInfoEXT = {\n";
14722         s << "\tsType = " << value.sType << '\n';
14723         s << "\tpNext = " << value.pNext << '\n';
14724         s << "\tminLod = " << value.minLod << '\n';
14725         s << '}';
14726         return s;
14727 }
14728
14729 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT& value)
14730 {
14731         s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT = {\n";
14732         s << "\tsType = " << value.sType << '\n';
14733         s << "\tpNext = " << value.pNext << '\n';
14734         s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
14735         s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
14736         s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
14737         s << '}';
14738         return s;
14739 }
14740
14741 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
14742 {
14743         s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
14744         s << "\tsType = " << value.sType << '\n';
14745         s << "\tpNext = " << value.pNext << '\n';
14746         s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
14747         s << '}';
14748         return s;
14749 }
14750
14751 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
14752 {
14753         s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
14754         s << "\tsType = " << value.sType << '\n';
14755         s << "\tpNext = " << value.pNext << '\n';
14756         s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
14757         s << '}';
14758         return s;
14759 }
14760
14761 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
14762 {
14763         s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
14764         s << "\tsType = " << value.sType << '\n';
14765         s << "\tpNext = " << value.pNext << '\n';
14766         s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
14767         s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
14768         s << '}';
14769         return s;
14770 }
14771
14772 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
14773 {
14774         s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
14775         s << "\tsType = " << value.sType << '\n';
14776         s << "\tpNext = " << value.pNext << '\n';
14777         s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
14778         s << '}';
14779         return s;
14780 }
14781
14782 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
14783 {
14784         s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
14785         s << "\tsType = " << value.sType << '\n';
14786         s << "\tpNext = " << value.pNext << '\n';
14787         s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
14788         s << '}';
14789         return s;
14790 }
14791
14792 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
14793 {
14794         s << "VkDescriptorSetBindingReferenceVALVE = {\n";
14795         s << "\tsType = " << value.sType << '\n';
14796         s << "\tpNext = " << value.pNext << '\n';
14797         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
14798         s << "\tbinding = " << value.binding << '\n';
14799         s << '}';
14800         return s;
14801 }
14802
14803 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
14804 {
14805         s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
14806         s << "\tsType = " << value.sType << '\n';
14807         s << "\tpNext = " << value.pNext << '\n';
14808         s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
14809         s << "\tdescriptorSize = " << value.descriptorSize << '\n';
14810         s << '}';
14811         return s;
14812 }
14813
14814 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
14815 {
14816         s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
14817         s << "\tsType = " << value.sType << '\n';
14818         s << "\tpNext = " << value.pNext << '\n';
14819         s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
14820         s << '}';
14821         return s;
14822 }
14823
14824 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
14825 {
14826         s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
14827         s << "\tsType = " << value.sType << '\n';
14828         s << "\tpNext = " << value.pNext << '\n';
14829         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';
14830         s << '}';
14831         return s;
14832 }
14833
14834 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
14835 {
14836         s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
14837         s << "\tsType = " << value.sType << '\n';
14838         s << "\tpNext = " << value.pNext << '\n';
14839         s << "\tidentifierSize = " << value.identifierSize << '\n';
14840         s << "\tpIdentifier = " << value.pIdentifier << '\n';
14841         s << '}';
14842         return s;
14843 }
14844
14845 std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
14846 {
14847         s << "VkShaderModuleIdentifierEXT = {\n";
14848         s << "\tsType = " << value.sType << '\n';
14849         s << "\tpNext = " << value.pNext << '\n';
14850         s << "\tidentifierSize = " << value.identifierSize << '\n';
14851         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';
14852         s << '}';
14853         return s;
14854 }
14855
14856 std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
14857 {
14858         s << "VkImageCompressionControlEXT = {\n";
14859         s << "\tsType = " << value.sType << '\n';
14860         s << "\tpNext = " << value.pNext << '\n';
14861         s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
14862         s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
14863         s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
14864         s << '}';
14865         return s;
14866 }
14867
14868 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
14869 {
14870         s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
14871         s << "\tsType = " << value.sType << '\n';
14872         s << "\tpNext = " << value.pNext << '\n';
14873         s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
14874         s << '}';
14875         return s;
14876 }
14877
14878 std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
14879 {
14880         s << "VkImageCompressionPropertiesEXT = {\n";
14881         s << "\tsType = " << value.sType << '\n';
14882         s << "\tpNext = " << value.pNext << '\n';
14883         s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
14884         s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
14885         s << '}';
14886         return s;
14887 }
14888
14889 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
14890 {
14891         s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
14892         s << "\tsType = " << value.sType << '\n';
14893         s << "\tpNext = " << value.pNext << '\n';
14894         s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
14895         s << '}';
14896         return s;
14897 }
14898
14899 std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
14900 {
14901         s << "VkImageSubresource2EXT = {\n";
14902         s << "\tsType = " << value.sType << '\n';
14903         s << "\tpNext = " << value.pNext << '\n';
14904         s << "\timageSubresource = " << value.imageSubresource << '\n';
14905         s << '}';
14906         return s;
14907 }
14908
14909 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
14910 {
14911         s << "VkSubresourceLayout2EXT = {\n";
14912         s << "\tsType = " << value.sType << '\n';
14913         s << "\tpNext = " << value.pNext << '\n';
14914         s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
14915         s << '}';
14916         return s;
14917 }
14918
14919 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
14920 {
14921         s << "VkRenderPassCreationControlEXT = {\n";
14922         s << "\tsType = " << value.sType << '\n';
14923         s << "\tpNext = " << value.pNext << '\n';
14924         s << "\tdisallowMerging = " << value.disallowMerging << '\n';
14925         s << '}';
14926         return s;
14927 }
14928
14929 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
14930 {
14931         s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
14932         s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
14933         s << '}';
14934         return s;
14935 }
14936
14937 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
14938 {
14939         s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
14940         s << "\tsType = " << value.sType << '\n';
14941         s << "\tpNext = " << value.pNext << '\n';
14942         s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
14943         s << '}';
14944         return s;
14945 }
14946
14947 std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
14948 {
14949         s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
14950         s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
14951         s << "\tdescription = " << (const char*)value.description << '\n';
14952         s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
14953         s << '}';
14954         return s;
14955 }
14956
14957 std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
14958 {
14959         s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
14960         s << "\tsType = " << value.sType << '\n';
14961         s << "\tpNext = " << value.pNext << '\n';
14962         s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
14963         s << '}';
14964         return s;
14965 }
14966
14967 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
14968 {
14969         s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
14970         s << "\tsType = " << value.sType << '\n';
14971         s << "\tpNext = " << value.pNext << '\n';
14972         s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
14973         s << '}';
14974         return s;
14975 }
14976
14977 std::ostream& operator<< (std::ostream& s, const VkMicromapBuildInfoEXT& value)
14978 {
14979         s << "VkMicromapBuildInfoEXT = {\n";
14980         s << "\tsType = " << value.sType << '\n';
14981         s << "\tpNext = " << value.pNext << '\n';
14982         s << "\ttype = " << value.type << '\n';
14983         s << "\tflags = " << getBuildMicromapFlagsEXTStr(value.flags) << '\n';
14984         s << "\tmode = " << value.mode << '\n';
14985         s << "\tdstMicromap = " << value.dstMicromap << '\n';
14986         s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
14987         s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
14988         s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
14989         s << "\tdata = " << value.data << '\n';
14990         s << "\tscratchData = " << value.scratchData << '\n';
14991         s << "\ttriangleArray = " << value.triangleArray << '\n';
14992         s << "\ttriangleArrayStride = " << value.triangleArrayStride << '\n';
14993         s << '}';
14994         return s;
14995 }
14996
14997 std::ostream& operator<< (std::ostream& s, const VkMicromapCreateInfoEXT& value)
14998 {
14999         s << "VkMicromapCreateInfoEXT = {\n";
15000         s << "\tsType = " << value.sType << '\n';
15001         s << "\tpNext = " << value.pNext << '\n';
15002         s << "\tcreateFlags = " << getMicromapCreateFlagsEXTStr(value.createFlags) << '\n';
15003         s << "\tbuffer = " << value.buffer << '\n';
15004         s << "\toffset = " << value.offset << '\n';
15005         s << "\tsize = " << value.size << '\n';
15006         s << "\ttype = " << value.type << '\n';
15007         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
15008         s << '}';
15009         return s;
15010 }
15011
15012 std::ostream& operator<< (std::ostream& s, const VkMicromapVersionInfoEXT& value)
15013 {
15014         s << "VkMicromapVersionInfoEXT = {\n";
15015         s << "\tsType = " << value.sType << '\n';
15016         s << "\tpNext = " << value.pNext << '\n';
15017         s << "\tpVersionData = " << value.pVersionData << '\n';
15018         s << '}';
15019         return s;
15020 }
15021
15022 std::ostream& operator<< (std::ostream& s, const VkCopyMicromapInfoEXT& value)
15023 {
15024         s << "VkCopyMicromapInfoEXT = {\n";
15025         s << "\tsType = " << value.sType << '\n';
15026         s << "\tpNext = " << value.pNext << '\n';
15027         s << "\tsrc = " << value.src << '\n';
15028         s << "\tdst = " << value.dst << '\n';
15029         s << "\tmode = " << value.mode << '\n';
15030         s << '}';
15031         return s;
15032 }
15033
15034 std::ostream& operator<< (std::ostream& s, const VkCopyMicromapToMemoryInfoEXT& value)
15035 {
15036         s << "VkCopyMicromapToMemoryInfoEXT = {\n";
15037         s << "\tsType = " << value.sType << '\n';
15038         s << "\tpNext = " << value.pNext << '\n';
15039         s << "\tsrc = " << value.src << '\n';
15040         s << "\tdst = " << value.dst << '\n';
15041         s << "\tmode = " << value.mode << '\n';
15042         s << '}';
15043         return s;
15044 }
15045
15046 std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToMicromapInfoEXT& value)
15047 {
15048         s << "VkCopyMemoryToMicromapInfoEXT = {\n";
15049         s << "\tsType = " << value.sType << '\n';
15050         s << "\tpNext = " << value.pNext << '\n';
15051         s << "\tsrc = " << value.src << '\n';
15052         s << "\tdst = " << value.dst << '\n';
15053         s << "\tmode = " << value.mode << '\n';
15054         s << '}';
15055         return s;
15056 }
15057
15058 std::ostream& operator<< (std::ostream& s, const VkMicromapBuildSizesInfoEXT& value)
15059 {
15060         s << "VkMicromapBuildSizesInfoEXT = {\n";
15061         s << "\tsType = " << value.sType << '\n';
15062         s << "\tpNext = " << value.pNext << '\n';
15063         s << "\tmicromapSize = " << value.micromapSize << '\n';
15064         s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
15065         s << "\tdiscardable = " << value.discardable << '\n';
15066         s << '}';
15067         return s;
15068 }
15069
15070 std::ostream& operator<< (std::ostream& s, const VkMicromapUsageEXT& value)
15071 {
15072         s << "VkMicromapUsageEXT = {\n";
15073         s << "\tcount = " << value.count << '\n';
15074         s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
15075         s << "\tformat = " << value.format << '\n';
15076         s << '}';
15077         return s;
15078 }
15079
15080 std::ostream& operator<< (std::ostream& s, const VkMicromapTriangleEXT& value)
15081 {
15082         s << "VkMicromapTriangleEXT = {\n";
15083         s << "\tdataOffset = " << value.dataOffset << '\n';
15084         s << "\tsubdivisionLevel = " << value.subdivisionLevel << '\n';
15085         s << "\tformat = " << value.format << '\n';
15086         s << '}';
15087         return s;
15088 }
15089
15090 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapFeaturesEXT& value)
15091 {
15092         s << "VkPhysicalDeviceOpacityMicromapFeaturesEXT = {\n";
15093         s << "\tsType = " << value.sType << '\n';
15094         s << "\tpNext = " << value.pNext << '\n';
15095         s << "\tmicromap = " << value.micromap << '\n';
15096         s << "\tmicromapCaptureReplay = " << value.micromapCaptureReplay << '\n';
15097         s << "\tmicromapHostCommands = " << value.micromapHostCommands << '\n';
15098         s << '}';
15099         return s;
15100 }
15101
15102 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpacityMicromapPropertiesEXT& value)
15103 {
15104         s << "VkPhysicalDeviceOpacityMicromapPropertiesEXT = {\n";
15105         s << "\tsType = " << value.sType << '\n';
15106         s << "\tpNext = " << value.pNext << '\n';
15107         s << "\tmaxOpacity2StateSubdivisionLevel = " << value.maxOpacity2StateSubdivisionLevel << '\n';
15108         s << "\tmaxOpacity4StateSubdivisionLevel = " << value.maxOpacity4StateSubdivisionLevel << '\n';
15109         s << '}';
15110         return s;
15111 }
15112
15113 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureTrianglesOpacityMicromapEXT& value)
15114 {
15115         s << "VkAccelerationStructureTrianglesOpacityMicromapEXT = {\n";
15116         s << "\tsType = " << value.sType << '\n';
15117         s << "\tpNext = " << value.pNext << '\n';
15118         s << "\tindexType = " << value.indexType << '\n';
15119         s << "\tindexBuffer = " << value.indexBuffer << '\n';
15120         s << "\tindexStride = " << value.indexStride << '\n';
15121         s << "\tbaseTriangle = " << value.baseTriangle << '\n';
15122         s << "\tusageCountsCount = " << value.usageCountsCount << '\n';
15123         s << "\tpUsageCounts = " << value.pUsageCounts << '\n';
15124         s << "\tppUsageCounts = " << value.ppUsageCounts << '\n';
15125         s << "\tmicromap = " << value.micromap << '\n';
15126         s << '}';
15127         return s;
15128 }
15129
15130 std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
15131 {
15132         s << "VkPipelinePropertiesIdentifierEXT = {\n";
15133         s << "\tsType = " << value.sType << '\n';
15134         s << "\tpNext = " << value.pNext << '\n';
15135         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';
15136         s << '}';
15137         return s;
15138 }
15139
15140 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
15141 {
15142         s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
15143         s << "\tsType = " << value.sType << '\n';
15144         s << "\tpNext = " << value.pNext << '\n';
15145         s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
15146         s << '}';
15147         return s;
15148 }
15149
15150 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
15151 {
15152         s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
15153         s << "\tsType = " << value.sType << '\n';
15154         s << "\tpNext = " << value.pNext << '\n';
15155         s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
15156         s << '}';
15157         return s;
15158 }
15159
15160 std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
15161 {
15162         s << "VkExportMetalObjectCreateInfoEXT = {\n";
15163         s << "\tsType = " << value.sType << '\n';
15164         s << "\tpNext = " << value.pNext << '\n';
15165         s << "\texportObjectType = " << value.exportObjectType << '\n';
15166         s << '}';
15167         return s;
15168 }
15169
15170 std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
15171 {
15172         s << "VkExportMetalObjectsInfoEXT = {\n";
15173         s << "\tsType = " << value.sType << '\n';
15174         s << "\tpNext = " << value.pNext << '\n';
15175         s << '}';
15176         return s;
15177 }
15178
15179 std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
15180 {
15181         s << "VkExportMetalDeviceInfoEXT = {\n";
15182         s << "\tsType = " << value.sType << '\n';
15183         s << "\tpNext = " << value.pNext << '\n';
15184         s << "\tmtlDevice = " << value.mtlDevice << '\n';
15185         s << '}';
15186         return s;
15187 }
15188
15189 std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
15190 {
15191         s << "VkExportMetalCommandQueueInfoEXT = {\n";
15192         s << "\tsType = " << value.sType << '\n';
15193         s << "\tpNext = " << value.pNext << '\n';
15194         s << "\tqueue = " << value.queue << '\n';
15195         s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
15196         s << '}';
15197         return s;
15198 }
15199
15200 std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
15201 {
15202         s << "VkExportMetalBufferInfoEXT = {\n";
15203         s << "\tsType = " << value.sType << '\n';
15204         s << "\tpNext = " << value.pNext << '\n';
15205         s << "\tmemory = " << value.memory << '\n';
15206         s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
15207         s << '}';
15208         return s;
15209 }
15210
15211 std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
15212 {
15213         s << "VkImportMetalBufferInfoEXT = {\n";
15214         s << "\tsType = " << value.sType << '\n';
15215         s << "\tpNext = " << value.pNext << '\n';
15216         s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
15217         s << '}';
15218         return s;
15219 }
15220
15221 std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
15222 {
15223         s << "VkExportMetalTextureInfoEXT = {\n";
15224         s << "\tsType = " << value.sType << '\n';
15225         s << "\tpNext = " << value.pNext << '\n';
15226         s << "\timage = " << value.image << '\n';
15227         s << "\timageView = " << value.imageView << '\n';
15228         s << "\tbufferView = " << value.bufferView << '\n';
15229         s << "\tplane = " << value.plane << '\n';
15230         s << "\tmtlTexture = " << value.mtlTexture << '\n';
15231         s << '}';
15232         return s;
15233 }
15234
15235 std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
15236 {
15237         s << "VkImportMetalTextureInfoEXT = {\n";
15238         s << "\tsType = " << value.sType << '\n';
15239         s << "\tpNext = " << value.pNext << '\n';
15240         s << "\tplane = " << value.plane << '\n';
15241         s << "\tmtlTexture = " << value.mtlTexture << '\n';
15242         s << '}';
15243         return s;
15244 }
15245
15246 std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
15247 {
15248         s << "VkExportMetalIOSurfaceInfoEXT = {\n";
15249         s << "\tsType = " << value.sType << '\n';
15250         s << "\tpNext = " << value.pNext << '\n';
15251         s << "\timage = " << value.image << '\n';
15252         s << "\tioSurface = " << value.ioSurface << '\n';
15253         s << '}';
15254         return s;
15255 }
15256
15257 std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
15258 {
15259         s << "VkImportMetalIOSurfaceInfoEXT = {\n";
15260         s << "\tsType = " << value.sType << '\n';
15261         s << "\tpNext = " << value.pNext << '\n';
15262         s << "\tioSurface = " << value.ioSurface << '\n';
15263         s << '}';
15264         return s;
15265 }
15266
15267 std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
15268 {
15269         s << "VkExportMetalSharedEventInfoEXT = {\n";
15270         s << "\tsType = " << value.sType << '\n';
15271         s << "\tpNext = " << value.pNext << '\n';
15272         s << "\tsemaphore = " << value.semaphore << '\n';
15273         s << "\tevent = " << value.event << '\n';
15274         s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
15275         s << '}';
15276         return s;
15277 }
15278
15279 std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
15280 {
15281         s << "VkImportMetalSharedEventInfoEXT = {\n";
15282         s << "\tsType = " << value.sType << '\n';
15283         s << "\tpNext = " << value.pNext << '\n';
15284         s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
15285         s << '}';
15286         return s;
15287 }
15288
15289 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
15290 {
15291         s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
15292         s << "\tsType = " << value.sType << '\n';
15293         s << "\tpNext = " << value.pNext << '\n';
15294         s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
15295         s << '}';
15296         return s;
15297 }
15298
15299 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
15300 {
15301         s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
15302         s << "\tsType = " << value.sType << '\n';
15303         s << "\tpNext = " << value.pNext << '\n';
15304         s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
15305         s << '}';
15306         return s;
15307 }
15308
15309 std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
15310 {
15311         s << "VkPipelineRobustnessCreateInfoEXT = {\n";
15312         s << "\tsType = " << value.sType << '\n';
15313         s << "\tpNext = " << value.pNext << '\n';
15314         s << "\tstorageBuffers = " << value.storageBuffers << '\n';
15315         s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
15316         s << "\tvertexInputs = " << value.vertexInputs << '\n';
15317         s << "\timages = " << value.images << '\n';
15318         s << '}';
15319         return s;
15320 }
15321
15322 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
15323 {
15324         s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
15325         s << "\tsType = " << value.sType << '\n';
15326         s << "\tpNext = " << value.pNext << '\n';
15327         s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
15328         s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
15329         s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
15330         s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
15331         s << '}';
15332         return s;
15333 }
15334
15335 std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
15336 {
15337         s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
15338         s << "\tsType = " << value.sType << '\n';
15339         s << "\tpNext = " << value.pNext << '\n';
15340         s << "\tfilterCenter = " << value.filterCenter << '\n';
15341         s << "\tfilterSize = " << value.filterSize << '\n';
15342         s << "\tnumPhases = " << value.numPhases << '\n';
15343         s << '}';
15344         return s;
15345 }
15346
15347 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
15348 {
15349         s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
15350         s << "\tsType = " << value.sType << '\n';
15351         s << "\tpNext = " << value.pNext << '\n';
15352         s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
15353         s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
15354         s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
15355         s << '}';
15356         return s;
15357 }
15358
15359 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
15360 {
15361         s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
15362         s << "\tsType = " << value.sType << '\n';
15363         s << "\tpNext = " << value.pNext << '\n';
15364         s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
15365         s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
15366         s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
15367         s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
15368         s << '}';
15369         return s;
15370 }
15371
15372 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
15373 {
15374         s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
15375         s << "\tsType = " << value.sType << '\n';
15376         s << "\tpNext = " << value.pNext << '\n';
15377         s << "\ttileProperties = " << value.tileProperties << '\n';
15378         s << '}';
15379         return s;
15380 }
15381
15382 std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
15383 {
15384         s << "VkTilePropertiesQCOM = {\n";
15385         s << "\tsType = " << value.sType << '\n';
15386         s << "\tpNext = " << value.pNext << '\n';
15387         s << "\ttileSize = " << value.tileSize << '\n';
15388         s << "\tapronSize = " << value.apronSize << '\n';
15389         s << "\torigin = " << value.origin << '\n';
15390         s << '}';
15391         return s;
15392 }
15393
15394 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAmigoProfilingFeaturesSEC& value)
15395 {
15396         s << "VkPhysicalDeviceAmigoProfilingFeaturesSEC = {\n";
15397         s << "\tsType = " << value.sType << '\n';
15398         s << "\tpNext = " << value.pNext << '\n';
15399         s << "\tamigoProfiling = " << value.amigoProfiling << '\n';
15400         s << '}';
15401         return s;
15402 }
15403
15404 std::ostream& operator<< (std::ostream& s, const VkAmigoProfilingSubmitInfoSEC& value)
15405 {
15406         s << "VkAmigoProfilingSubmitInfoSEC = {\n";
15407         s << "\tsType = " << value.sType << '\n';
15408         s << "\tpNext = " << value.pNext << '\n';
15409         s << "\tfirstDrawTimestamp = " << value.firstDrawTimestamp << '\n';
15410         s << "\tswapBufferTimestamp = " << value.swapBufferTimestamp << '\n';
15411         s << '}';
15412         return s;
15413 }
15414
15415 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT& value)
15416 {
15417         s << "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = {\n";
15418         s << "\tsType = " << value.sType << '\n';
15419         s << "\tpNext = " << value.pNext << '\n';
15420         s << "\tattachmentFeedbackLoopLayout = " << value.attachmentFeedbackLoopLayout << '\n';
15421         s << '}';
15422         return s;
15423 }
15424
15425 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT& value)
15426 {
15427         s << "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT = {\n";
15428         s << "\tsType = " << value.sType << '\n';
15429         s << "\tpNext = " << value.pNext << '\n';
15430         s << "\tdepthClampZeroOne = " << value.depthClampZeroOne << '\n';
15431         s << '}';
15432         return s;
15433 }
15434
15435 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAddressBindingReportFeaturesEXT& value)
15436 {
15437         s << "VkPhysicalDeviceAddressBindingReportFeaturesEXT = {\n";
15438         s << "\tsType = " << value.sType << '\n';
15439         s << "\tpNext = " << value.pNext << '\n';
15440         s << "\treportAddressBinding = " << value.reportAddressBinding << '\n';
15441         s << '}';
15442         return s;
15443 }
15444
15445 std::ostream& operator<< (std::ostream& s, const VkDeviceAddressBindingCallbackDataEXT& value)
15446 {
15447         s << "VkDeviceAddressBindingCallbackDataEXT = {\n";
15448         s << "\tsType = " << value.sType << '\n';
15449         s << "\tpNext = " << value.pNext << '\n';
15450         s << "\tflags = " << getDeviceAddressBindingFlagsEXTStr(value.flags) << '\n';
15451         s << "\tbaseAddress = " << value.baseAddress << '\n';
15452         s << "\tsize = " << value.size << '\n';
15453         s << "\tbindingType = " << value.bindingType << '\n';
15454         s << '}';
15455         return s;
15456 }
15457
15458 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowFeaturesNV& value)
15459 {
15460         s << "VkPhysicalDeviceOpticalFlowFeaturesNV = {\n";
15461         s << "\tsType = " << value.sType << '\n';
15462         s << "\tpNext = " << value.pNext << '\n';
15463         s << "\topticalFlow = " << value.opticalFlow << '\n';
15464         s << '}';
15465         return s;
15466 }
15467
15468 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceOpticalFlowPropertiesNV& value)
15469 {
15470         s << "VkPhysicalDeviceOpticalFlowPropertiesNV = {\n";
15471         s << "\tsType = " << value.sType << '\n';
15472         s << "\tpNext = " << value.pNext << '\n';
15473         s << "\tsupportedOutputGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedOutputGridSizes) << '\n';
15474         s << "\tsupportedHintGridSizes = " << getOpticalFlowGridSizeFlagsNVStr(value.supportedHintGridSizes) << '\n';
15475         s << "\thintSupported = " << value.hintSupported << '\n';
15476         s << "\tcostSupported = " << value.costSupported << '\n';
15477         s << "\tbidirectionalFlowSupported = " << value.bidirectionalFlowSupported << '\n';
15478         s << "\tglobalFlowSupported = " << value.globalFlowSupported << '\n';
15479         s << "\tminWidth = " << value.minWidth << '\n';
15480         s << "\tminHeight = " << value.minHeight << '\n';
15481         s << "\tmaxWidth = " << value.maxWidth << '\n';
15482         s << "\tmaxHeight = " << value.maxHeight << '\n';
15483         s << "\tmaxNumRegionsOfInterest = " << value.maxNumRegionsOfInterest << '\n';
15484         s << '}';
15485         return s;
15486 }
15487
15488 std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatInfoNV& value)
15489 {
15490         s << "VkOpticalFlowImageFormatInfoNV = {\n";
15491         s << "\tsType = " << value.sType << '\n';
15492         s << "\tpNext = " << value.pNext << '\n';
15493         s << "\tusage = " << getOpticalFlowUsageFlagsNVStr(value.usage) << '\n';
15494         s << '}';
15495         return s;
15496 }
15497
15498 std::ostream& operator<< (std::ostream& s, const VkOpticalFlowImageFormatPropertiesNV& value)
15499 {
15500         s << "VkOpticalFlowImageFormatPropertiesNV = {\n";
15501         s << "\tsType = " << value.sType << '\n';
15502         s << "\tpNext = " << value.pNext << '\n';
15503         s << "\tformat = " << value.format << '\n';
15504         s << '}';
15505         return s;
15506 }
15507
15508 std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreateInfoNV& value)
15509 {
15510         s << "VkOpticalFlowSessionCreateInfoNV = {\n";
15511         s << "\tsType = " << value.sType << '\n';
15512         s << "\tpNext = " << value.pNext << '\n';
15513         s << "\twidth = " << value.width << '\n';
15514         s << "\theight = " << value.height << '\n';
15515         s << "\timageFormat = " << value.imageFormat << '\n';
15516         s << "\tflowVectorFormat = " << value.flowVectorFormat << '\n';
15517         s << "\tcostFormat = " << value.costFormat << '\n';
15518         s << "\toutputGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.outputGridSize) << '\n';
15519         s << "\thintGridSize = " << getOpticalFlowGridSizeFlagsNVStr(value.hintGridSize) << '\n';
15520         s << "\tperformanceLevel = " << value.performanceLevel << '\n';
15521         s << "\tflags = " << getOpticalFlowSessionCreateFlagsNVStr(value.flags) << '\n';
15522         s << '}';
15523         return s;
15524 }
15525
15526 std::ostream& operator<< (std::ostream& s, const VkOpticalFlowSessionCreatePrivateDataInfoNV& value)
15527 {
15528         s << "VkOpticalFlowSessionCreatePrivateDataInfoNV = {\n";
15529         s << "\tsType = " << value.sType << '\n';
15530         s << "\tpNext = " << value.pNext << '\n';
15531         s << "\tid = " << value.id << '\n';
15532         s << "\tsize = " << value.size << '\n';
15533         s << "\tpPrivateData = " << value.pPrivateData << '\n';
15534         s << '}';
15535         return s;
15536 }
15537
15538 std::ostream& operator<< (std::ostream& s, const VkOpticalFlowExecuteInfoNV& value)
15539 {
15540         s << "VkOpticalFlowExecuteInfoNV = {\n";
15541         s << "\tsType = " << value.sType << '\n';
15542         s << "\tpNext = " << value.pNext << '\n';
15543         s << "\tflags = " << getOpticalFlowExecuteFlagsNVStr(value.flags) << '\n';
15544         s << "\tregionCount = " << value.regionCount << '\n';
15545         s << "\tpRegions = " << value.pRegions << '\n';
15546         s << '}';
15547         return s;
15548 }
15549
15550 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFaultFeaturesEXT& value)
15551 {
15552         s << "VkPhysicalDeviceFaultFeaturesEXT = {\n";
15553         s << "\tsType = " << value.sType << '\n';
15554         s << "\tpNext = " << value.pNext << '\n';
15555         s << "\tdeviceFault = " << value.deviceFault << '\n';
15556         s << "\tdeviceFaultVendorBinary = " << value.deviceFaultVendorBinary << '\n';
15557         s << '}';
15558         return s;
15559 }
15560
15561 std::ostream& operator<< (std::ostream& s, const VkDeviceFaultAddressInfoEXT& value)
15562 {
15563         s << "VkDeviceFaultAddressInfoEXT = {\n";
15564         s << "\taddressType = " << value.addressType << '\n';
15565         s << "\treportedAddress = " << value.reportedAddress << '\n';
15566         s << "\taddressPrecision = " << value.addressPrecision << '\n';
15567         s << '}';
15568         return s;
15569 }
15570
15571 std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorInfoEXT& value)
15572 {
15573         s << "VkDeviceFaultVendorInfoEXT = {\n";
15574         s << "\tdescription = " << (const char*)value.description << '\n';
15575         s << "\tvendorFaultCode = " << value.vendorFaultCode << '\n';
15576         s << "\tvendorFaultData = " << value.vendorFaultData << '\n';
15577         s << '}';
15578         return s;
15579 }
15580
15581 std::ostream& operator<< (std::ostream& s, const VkDeviceFaultCountsEXT& value)
15582 {
15583         s << "VkDeviceFaultCountsEXT = {\n";
15584         s << "\tsType = " << value.sType << '\n';
15585         s << "\tpNext = " << value.pNext << '\n';
15586         s << "\taddressInfoCount = " << value.addressInfoCount << '\n';
15587         s << "\tvendorInfoCount = " << value.vendorInfoCount << '\n';
15588         s << "\tvendorBinarySize = " << value.vendorBinarySize << '\n';
15589         s << '}';
15590         return s;
15591 }
15592
15593 std::ostream& operator<< (std::ostream& s, const VkDeviceFaultInfoEXT& value)
15594 {
15595         s << "VkDeviceFaultInfoEXT = {\n";
15596         s << "\tsType = " << value.sType << '\n';
15597         s << "\tpNext = " << value.pNext << '\n';
15598         s << "\tdescription = " << (const char*)value.description << '\n';
15599         s << "\tpAddressInfos = " << value.pAddressInfos << '\n';
15600         s << "\tpVendorInfos = " << value.pVendorInfos << '\n';
15601         s << "\tpVendorBinaryData = " << value.pVendorBinaryData << '\n';
15602         s << '}';
15603         return s;
15604 }
15605
15606 std::ostream& operator<< (std::ostream& s, const VkDeviceFaultVendorBinaryHeaderVersionOneEXT& value)
15607 {
15608         s << "VkDeviceFaultVendorBinaryHeaderVersionOneEXT = {\n";
15609         s << "\theaderSize = " << value.headerSize << '\n';
15610         s << "\theaderVersion = " << value.headerVersion << '\n';
15611         s << "\tvendorID = " << value.vendorID << '\n';
15612         s << "\tdeviceID = " << value.deviceID << '\n';
15613         s << "\tdriverVersion = " << value.driverVersion << '\n';
15614         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';
15615         s << "\tapplicationNameOffset = " << value.applicationNameOffset << '\n';
15616         s << "\tapplicationVersion = " << value.applicationVersion << '\n';
15617         s << "\tengineNameOffset = " << value.engineNameOffset << '\n';
15618         s << '}';
15619         return s;
15620 }
15621
15622 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM& value)
15623 {
15624         s << "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM = {\n";
15625         s << "\tsType = " << value.sType << '\n';
15626         s << "\tpNext = " << value.pNext << '\n';
15627         s << "\tshaderCoreCount = " << value.shaderCoreCount << '\n';
15628         s << "\tshaderWarpsPerCore = " << value.shaderWarpsPerCore << '\n';
15629         s << '}';
15630         return s;
15631 }
15632
15633 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM& value)
15634 {
15635         s << "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM = {\n";
15636         s << "\tsType = " << value.sType << '\n';
15637         s << "\tpNext = " << value.pNext << '\n';
15638         s << "\tshaderCoreBuiltins = " << value.shaderCoreBuiltins << '\n';
15639         s << '}';
15640         return s;
15641 }
15642
15643 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
15644 {
15645         s << "StdVideoH264SpsVuiFlags = {\n";
15646         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
15647         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
15648         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
15649         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
15650         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
15651         s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
15652         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
15653         s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
15654         s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
15655         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
15656         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
15657         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
15658         s << '}';
15659         return s;
15660 }
15661
15662 std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
15663 {
15664         s << "StdVideoH264HrdParameters = {\n";
15665         s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
15666         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
15667         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
15668         s << "\treserved1 = " << value.reserved1 << '\n';
15669         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';
15670         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';
15671         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';
15672         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
15673         s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
15674         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
15675         s << "\ttime_offset_length = " << value.time_offset_length << '\n';
15676         s << '}';
15677         return s;
15678 }
15679
15680 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
15681 {
15682         s << "StdVideoH264SequenceParameterSetVui = {\n";
15683         s << "\tflags = " << value.flags << '\n';
15684         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
15685         s << "\tsar_width = " << value.sar_width << '\n';
15686         s << "\tsar_height = " << value.sar_height << '\n';
15687         s << "\tvideo_format = " << value.video_format << '\n';
15688         s << "\tcolour_primaries = " << value.colour_primaries << '\n';
15689         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
15690         s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
15691         s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
15692         s << "\ttime_scale = " << value.time_scale << '\n';
15693         s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
15694         s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
15695         s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
15696         s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
15697         s << "\treserved1 = " << value.reserved1 << '\n';
15698         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
15699         s << '}';
15700         return s;
15701 }
15702
15703 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
15704 {
15705         s << "StdVideoH264SpsFlags = {\n";
15706         s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
15707         s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
15708         s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
15709         s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
15710         s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
15711         s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
15712         s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
15713         s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
15714         s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
15715         s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
15716         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
15717         s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
15718         s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
15719         s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
15720         s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
15721         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
15722         s << '}';
15723         return s;
15724 }
15725
15726 std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
15727 {
15728         s << "StdVideoH264ScalingLists = {\n";
15729         s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
15730         s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
15731         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
15732         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
15733         s << '}';
15734         return s;
15735 }
15736
15737 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
15738 {
15739         s << "StdVideoH264SequenceParameterSet = {\n";
15740         s << "\tflags = " << value.flags << '\n';
15741         s << "\tprofile_idc = " << value.profile_idc << '\n';
15742         s << "\tlevel_idc = " << value.level_idc << '\n';
15743         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
15744         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15745         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
15746         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
15747         s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
15748         s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
15749         s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
15750         s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
15751         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
15752         s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
15753         s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
15754         s << "\treserved1 = " << value.reserved1 << '\n';
15755         s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
15756         s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
15757         s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
15758         s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
15759         s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
15760         s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
15761         s << "\treserved2 = " << value.reserved2 << '\n';
15762         s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
15763         s << "\tpScalingLists = " << value.pScalingLists << '\n';
15764         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
15765         s << '}';
15766         return s;
15767 }
15768
15769 std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
15770 {
15771         s << "StdVideoH264PpsFlags = {\n";
15772         s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
15773         s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
15774         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
15775         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
15776         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
15777         s << "\tbottom_field_pic_order_in_frame_present_flag = " << value.bottom_field_pic_order_in_frame_present_flag << '\n';
15778         s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
15779         s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
15780         s << '}';
15781         return s;
15782 }
15783
15784 std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
15785 {
15786         s << "StdVideoH264PictureParameterSet = {\n";
15787         s << "\tflags = " << value.flags << '\n';
15788         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15789         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15790         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
15791         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
15792         s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
15793         s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
15794         s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
15795         s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
15796         s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
15797         s << "\tpScalingLists = " << value.pScalingLists << '\n';
15798         s << '}';
15799         return s;
15800 }
15801
15802 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
15803 {
15804         s << "StdVideoDecodeH264PictureInfoFlags = {\n";
15805         s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
15806         s << "\tis_intra = " << value.is_intra << '\n';
15807         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
15808         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
15809         s << "\tis_reference = " << value.is_reference << '\n';
15810         s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
15811         s << '}';
15812         return s;
15813 }
15814
15815 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
15816 {
15817         s << "StdVideoDecodeH264PictureInfo = {\n";
15818         s << "\tflags = " << value.flags << '\n';
15819         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15820         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15821         s << "\treserved1 = " << value.reserved1 << '\n';
15822         s << "\treserved2 = " << value.reserved2 << '\n';
15823         s << "\tframe_num = " << value.frame_num << '\n';
15824         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
15825         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
15826         s << '}';
15827         return s;
15828 }
15829
15830 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
15831 {
15832         s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
15833         s << "\ttop_field_flag = " << value.top_field_flag << '\n';
15834         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
15835         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15836         s << "\tis_non_existing = " << value.is_non_existing << '\n';
15837         s << '}';
15838         return s;
15839 }
15840
15841 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
15842 {
15843         s << "StdVideoDecodeH264ReferenceInfo = {\n";
15844         s << "\tflags = " << value.flags << '\n';
15845         s << "\tFrameNum = " << value.FrameNum << '\n';
15846         s << "\treserved = " << value.reserved << '\n';
15847         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
15848         s << '}';
15849         return s;
15850 }
15851
15852 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
15853 {
15854         s << "StdVideoEncodeH264WeightTableFlags = {\n";
15855         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
15856         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
15857         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
15858         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
15859         s << '}';
15860         return s;
15861 }
15862
15863 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
15864 {
15865         s << "StdVideoEncodeH264WeightTable = {\n";
15866         s << "\tflags = " << value.flags << '\n';
15867         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
15868         s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
15869         s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
15870         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
15871         s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
15872         s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
15873         s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
15874         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
15875         s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
15876         s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
15877         s << '}';
15878         return s;
15879 }
15880
15881 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
15882 {
15883         s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
15884         s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
15885         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
15886         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
15887         s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
15888         s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
15889         s << '}';
15890         return s;
15891 }
15892
15893 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
15894 {
15895         s << "StdVideoEncodeH264PictureInfoFlags = {\n";
15896         s << "\tidr_flag = " << value.idr_flag << '\n';
15897         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
15898         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15899         s << '}';
15900         return s;
15901 }
15902
15903 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
15904 {
15905         s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
15906         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
15907         s << '}';
15908         return s;
15909 }
15910
15911 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
15912 {
15913         s << "StdVideoEncodeH264RefMgmtFlags = {\n";
15914         s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
15915         s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
15916         s << '}';
15917         return s;
15918 }
15919
15920 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
15921 {
15922         s << "StdVideoEncodeH264RefListModEntry = {\n";
15923         s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
15924         s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
15925         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15926         s << '}';
15927         return s;
15928 }
15929
15930 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
15931 {
15932         s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
15933         s << "\toperation = " << value.operation << '\n';
15934         s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
15935         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15936         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
15937         s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
15938         s << '}';
15939         return s;
15940 }
15941
15942 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
15943 {
15944         s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
15945         s << "\tflags = " << value.flags << '\n';
15946         s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
15947         s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
15948         s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
15949         s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
15950         s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
15951         s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
15952         s << '}';
15953         return s;
15954 }
15955
15956 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
15957 {
15958         s << "StdVideoEncodeH264PictureInfo = {\n";
15959         s << "\tflags = " << value.flags << '\n';
15960         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
15961         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
15962         s << "\tpictureType = " << value.pictureType << '\n';
15963         s << "\tframe_num = " << value.frame_num << '\n';
15964         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
15965         s << '}';
15966         return s;
15967 }
15968
15969 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
15970 {
15971         s << "StdVideoEncodeH264ReferenceInfo = {\n";
15972         s << "\tflags = " << value.flags << '\n';
15973         s << "\tFrameNum = " << value.FrameNum << '\n';
15974         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
15975         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
15976         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
15977         s << '}';
15978         return s;
15979 }
15980
15981 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
15982 {
15983         s << "StdVideoEncodeH264SliceHeader = {\n";
15984         s << "\tflags = " << value.flags << '\n';
15985         s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
15986         s << "\tslice_type = " << value.slice_type << '\n';
15987         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
15988         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
15989         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
15990         s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
15991         s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
15992         s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
15993         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
15994         s << "\tpWeightTable = " << value.pWeightTable << '\n';
15995         s << '}';
15996         return s;
15997 }
15998
15999 std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevelFlags& value)
16000 {
16001         s << "StdVideoH265ProfileTierLevelFlags = {\n";
16002         s << "\tgeneral_tier_flag = " << value.general_tier_flag << '\n';
16003         s << "\tgeneral_progressive_source_flag = " << value.general_progressive_source_flag << '\n';
16004         s << "\tgeneral_interlaced_source_flag = " << value.general_interlaced_source_flag << '\n';
16005         s << "\tgeneral_non_packed_constraint_flag = " << value.general_non_packed_constraint_flag << '\n';
16006         s << "\tgeneral_frame_only_constraint_flag = " << value.general_frame_only_constraint_flag << '\n';
16007         s << '}';
16008         return s;
16009 }
16010
16011 std::ostream& operator<< (std::ostream& s, const StdVideoH265ProfileTierLevel& value)
16012 {
16013         s << "StdVideoH265ProfileTierLevel = {\n";
16014         s << "\tflags = " << value.flags << '\n';
16015         s << "\tgeneral_profile_idc = " << value.general_profile_idc << '\n';
16016         s << "\tgeneral_level_idc = " << value.general_level_idc << '\n';
16017         s << '}';
16018         return s;
16019 }
16020
16021 std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
16022 {
16023         s << "StdVideoH265DecPicBufMgr = {\n";
16024         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';
16025         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';
16026         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';
16027         s << '}';
16028         return s;
16029 }
16030
16031 std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
16032 {
16033         s << "StdVideoH265SubLayerHrdParameters = {\n";
16034         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';
16035         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';
16036         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';
16037         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';
16038         s << "\tcbr_flag = " << value.cbr_flag << '\n';
16039         s << '}';
16040         return s;
16041 }
16042
16043 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
16044 {
16045         s << "StdVideoH265HrdFlags = {\n";
16046         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
16047         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
16048         s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
16049         s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
16050         s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
16051         s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
16052         s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
16053         s << '}';
16054         return s;
16055 }
16056
16057 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
16058 {
16059         s << "StdVideoH265HrdParameters = {\n";
16060         s << "\tflags = " << value.flags << '\n';
16061         s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
16062         s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
16063         s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
16064         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
16065         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
16066         s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
16067         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
16068         s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
16069         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
16070         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';
16071         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';
16072         s << "\treserved = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.reserved), DE_ARRAY_END(value.reserved)) << '\n';
16073         s << "\tpSubLayerHrdParametersNal = " << value.pSubLayerHrdParametersNal << '\n';
16074         s << "\tpSubLayerHrdParametersVcl = " << value.pSubLayerHrdParametersVcl << '\n';
16075         s << '}';
16076         return s;
16077 }
16078
16079 std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
16080 {
16081         s << "StdVideoH265VpsFlags = {\n";
16082         s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
16083         s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
16084         s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
16085         s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
16086         s << '}';
16087         return s;
16088 }
16089
16090 std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
16091 {
16092         s << "StdVideoH265VideoParameterSet = {\n";
16093         s << "\tflags = " << value.flags << '\n';
16094         s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
16095         s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
16096         s << "\treserved1 = " << value.reserved1 << '\n';
16097         s << "\treserved2 = " << value.reserved2 << '\n';
16098         s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
16099         s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
16100         s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
16101         s << "\treserved3 = " << value.reserved3 << '\n';
16102         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
16103         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
16104         s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
16105         s << '}';
16106         return s;
16107 }
16108
16109 std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
16110 {
16111         s << "StdVideoH265ScalingLists = {\n";
16112         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
16113         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
16114         s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
16115         s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
16116         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';
16117         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';
16118         s << '}';
16119         return s;
16120 }
16121
16122 std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSetFlags& value)
16123 {
16124         s << "StdVideoH265ShortTermRefPicSetFlags = {\n";
16125         s << "\tinter_ref_pic_set_prediction_flag = " << value.inter_ref_pic_set_prediction_flag << '\n';
16126         s << "\tdelta_rps_sign = " << value.delta_rps_sign << '\n';
16127         s << '}';
16128         return s;
16129 }
16130
16131 std::ostream& operator<< (std::ostream& s, const StdVideoH265ShortTermRefPicSet& value)
16132 {
16133         s << "StdVideoH265ShortTermRefPicSet = {\n";
16134         s << "\tflags = " << value.flags << '\n';
16135         s << "\tdelta_idx_minus1 = " << value.delta_idx_minus1 << '\n';
16136         s << "\tuse_delta_flag = " << value.use_delta_flag << '\n';
16137         s << "\tabs_delta_rps_minus1 = " << value.abs_delta_rps_minus1 << '\n';
16138         s << "\tused_by_curr_pic_flag = " << value.used_by_curr_pic_flag << '\n';
16139         s << "\tused_by_curr_pic_s0_flag = " << value.used_by_curr_pic_s0_flag << '\n';
16140         s << "\tused_by_curr_pic_s1_flag = " << value.used_by_curr_pic_s1_flag << '\n';
16141         s << "\treserved1 = " << value.reserved1 << '\n';
16142         s << "\treserved2 = " << value.reserved2 << '\n';
16143         s << "\treserved3 = " << value.reserved3 << '\n';
16144         s << "\tnum_negative_pics = " << value.num_negative_pics << '\n';
16145         s << "\tnum_positive_pics = " << value.num_positive_pics << '\n';
16146         s << "\tdelta_poc_s0_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_poc_s0_minus1), DE_ARRAY_END(value.delta_poc_s0_minus1)) << '\n';
16147         s << "\tdelta_poc_s1_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_poc_s1_minus1), DE_ARRAY_END(value.delta_poc_s1_minus1)) << '\n';
16148         s << '}';
16149         return s;
16150 }
16151
16152 std::ostream& operator<< (std::ostream& s, const StdVideoH265LongTermRefPicsSps& value)
16153 {
16154         s << "StdVideoH265LongTermRefPicsSps = {\n";
16155         s << "\tused_by_curr_pic_lt_sps_flag = " << value.used_by_curr_pic_lt_sps_flag << '\n';
16156         s << "\tlt_ref_pic_poc_lsb_sps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lt_ref_pic_poc_lsb_sps), DE_ARRAY_END(value.lt_ref_pic_poc_lsb_sps)) << '\n';
16157         s << '}';
16158         return s;
16159 }
16160
16161 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
16162 {
16163         s << "StdVideoH265SpsVuiFlags = {\n";
16164         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
16165         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
16166         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
16167         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
16168         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
16169         s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
16170         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
16171         s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
16172         s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
16173         s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
16174         s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
16175         s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
16176         s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
16177         s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
16178         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
16179         s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
16180         s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
16181         s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
16182         s << '}';
16183         return s;
16184 }
16185
16186 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
16187 {
16188         s << "StdVideoH265SequenceParameterSetVui = {\n";
16189         s << "\tflags = " << value.flags << '\n';
16190         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
16191         s << "\tsar_width = " << value.sar_width << '\n';
16192         s << "\tsar_height = " << value.sar_height << '\n';
16193         s << "\tvideo_format = " << value.video_format << '\n';
16194         s << "\tcolour_primaries = " << value.colour_primaries << '\n';
16195         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
16196         s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
16197         s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
16198         s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
16199         s << "\treserved1 = " << value.reserved1 << '\n';
16200         s << "\treserved2 = " << value.reserved2 << '\n';
16201         s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
16202         s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
16203         s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
16204         s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
16205         s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
16206         s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
16207         s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
16208         s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
16209         s << "\treserved3 = " << value.reserved3 << '\n';
16210         s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
16211         s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
16212         s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
16213         s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
16214         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
16215         s << '}';
16216         return s;
16217 }
16218
16219 std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
16220 {
16221         s << "StdVideoH265PredictorPaletteEntries = {\n";
16222         s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
16223         s << '}';
16224         return s;
16225 }
16226
16227 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
16228 {
16229         s << "StdVideoH265SpsFlags = {\n";
16230         s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
16231         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
16232         s << "\tconformance_window_flag = " << value.conformance_window_flag << '\n';
16233         s << "\tsps_sub_layer_ordering_info_present_flag = " << value.sps_sub_layer_ordering_info_present_flag << '\n';
16234         s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
16235         s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
16236         s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
16237         s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
16238         s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
16239         s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
16240         s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
16241         s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
16242         s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
16243         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
16244         s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
16245         s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
16246         s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
16247         s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
16248         s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
16249         s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
16250         s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
16251         s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
16252         s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
16253         s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
16254         s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
16255         s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
16256         s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
16257         s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
16258         s << "\tsps_palette_predictor_initializers_present_flag = " << value.sps_palette_predictor_initializers_present_flag << '\n';
16259         s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
16260         s << '}';
16261         return s;
16262 }
16263
16264 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
16265 {
16266         s << "StdVideoH265SequenceParameterSet = {\n";
16267         s << "\tflags = " << value.flags << '\n';
16268         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
16269         s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
16270         s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
16271         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
16272         s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
16273         s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
16274         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
16275         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
16276         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
16277         s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
16278         s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
16279         s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
16280         s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
16281         s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
16282         s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
16283         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
16284         s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
16285         s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
16286         s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
16287         s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
16288         s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
16289         s << "\treserved1 = " << value.reserved1 << '\n';
16290         s << "\treserved2 = " << value.reserved2 << '\n';
16291         s << "\tpalette_max_size = " << value.palette_max_size << '\n';
16292         s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
16293         s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
16294         s << "\tsps_num_palette_predictor_initializers_minus1 = " << value.sps_num_palette_predictor_initializers_minus1 << '\n';
16295         s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
16296         s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
16297         s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
16298         s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
16299         s << "\tpProfileTierLevel = " << value.pProfileTierLevel << '\n';
16300         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
16301         s << "\tpScalingLists = " << value.pScalingLists << '\n';
16302         s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
16303         s << "\tpLongTermRefPicsSps = " << value.pLongTermRefPicsSps << '\n';
16304         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
16305         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
16306         s << '}';
16307         return s;
16308 }
16309
16310 std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
16311 {
16312         s << "StdVideoH265PpsFlags = {\n";
16313         s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
16314         s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
16315         s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
16316         s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
16317         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
16318         s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
16319         s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
16320         s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
16321         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
16322         s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
16323         s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
16324         s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
16325         s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
16326         s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
16327         s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
16328         s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
16329         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
16330         s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
16331         s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
16332         s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
16333         s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
16334         s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
16335         s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
16336         s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
16337         s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
16338         s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
16339         s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
16340         s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
16341         s << "\tpps_palette_predictor_initializers_present_flag = " << value.pps_palette_predictor_initializers_present_flag << '\n';
16342         s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
16343         s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
16344         s << '}';
16345         return s;
16346 }
16347
16348 std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
16349 {
16350         s << "StdVideoH265PictureParameterSet = {\n";
16351         s << "\tflags = " << value.flags << '\n';
16352         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
16353         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
16354         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
16355         s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
16356         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
16357         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
16358         s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
16359         s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
16360         s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
16361         s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
16362         s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
16363         s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
16364         s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
16365         s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
16366         s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
16367         s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
16368         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';
16369         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';
16370         s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
16371         s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
16372         s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
16373         s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
16374         s << "\tpps_act_cr_qp_offset_plus3 = " << value.pps_act_cr_qp_offset_plus3 << '\n';
16375         s << "\tpps_num_palette_predictor_initializers = " << value.pps_num_palette_predictor_initializers << '\n';
16376         s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
16377         s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
16378         s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
16379         s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
16380         s << "\treserved1 = " << value.reserved1 << '\n';
16381         s << "\treserved2 = " << value.reserved2 << '\n';
16382         s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
16383         s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
16384         s << "\treserved3 = " << value.reserved3 << '\n';
16385         s << "\tpScalingLists = " << value.pScalingLists << '\n';
16386         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
16387         s << '}';
16388         return s;
16389 }
16390
16391 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
16392 {
16393         s << "StdVideoDecodeH265PictureInfoFlags = {\n";
16394         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
16395         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
16396         s << "\tIsReference = " << value.IsReference << '\n';
16397         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
16398         s << '}';
16399         return s;
16400 }
16401
16402 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
16403 {
16404         s << "StdVideoDecodeH265PictureInfo = {\n";
16405         s << "\tflags = " << value.flags << '\n';
16406         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
16407         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
16408         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
16409         s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
16410         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
16411         s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
16412         s << "\treserved = " << value.reserved << '\n';
16413         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';
16414         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';
16415         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';
16416         s << '}';
16417         return s;
16418 }
16419
16420 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
16421 {
16422         s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
16423         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
16424         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
16425         s << '}';
16426         return s;
16427 }
16428
16429 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
16430 {
16431         s << "StdVideoDecodeH265ReferenceInfo = {\n";
16432         s << "\tflags = " << value.flags << '\n';
16433         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
16434         s << '}';
16435         return s;
16436 }
16437
16438 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
16439 {
16440         s << "StdVideoEncodeH265WeightTableFlags = {\n";
16441         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
16442         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
16443         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
16444         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
16445         s << '}';
16446         return s;
16447 }
16448
16449 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
16450 {
16451         s << "StdVideoEncodeH265WeightTable = {\n";
16452         s << "\tflags = " << value.flags << '\n';
16453         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
16454         s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
16455         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';
16456         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
16457         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';
16458         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';
16459         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';
16460         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
16461         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';
16462         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';
16463         s << '}';
16464         return s;
16465 }
16466
16467 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentLongTermRefPics& value)
16468 {
16469         s << "StdVideoEncodeH265SliceSegmentLongTermRefPics = {\n";
16470         s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
16471         s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
16472         s << "\tlt_idx_sps = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.lt_idx_sps)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.lt_idx_sps))) << '\n';
16473         s << "\tpoc_lsb_lt = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.poc_lsb_lt)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.poc_lsb_lt))) << '\n';
16474         s << "\tused_by_curr_pic_lt_flag = " << value.used_by_curr_pic_lt_flag << '\n';
16475         s << "\tdelta_poc_msb_present_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.delta_poc_msb_present_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.delta_poc_msb_present_flag))) << '\n';
16476         s << "\tdelta_poc_msb_cycle_lt = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.delta_poc_msb_cycle_lt)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.delta_poc_msb_cycle_lt))) << '\n';
16477         s << '}';
16478         return s;
16479 }
16480
16481 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
16482 {
16483         s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
16484         s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
16485         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
16486         s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
16487         s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
16488         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
16489         s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
16490         s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
16491         s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
16492         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
16493         s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
16494         s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
16495         s << "\tcu_chroma_qp_offset_enabled_flag = " << value.cu_chroma_qp_offset_enabled_flag << '\n';
16496         s << "\tdeblocking_filter_override_flag = " << value.deblocking_filter_override_flag << '\n';
16497         s << "\tslice_deblocking_filter_disabled_flag = " << value.slice_deblocking_filter_disabled_flag << '\n';
16498         s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
16499         s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
16500         s << '}';
16501         return s;
16502 }
16503
16504 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
16505 {
16506         s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
16507         s << "\tflags = " << value.flags << '\n';
16508         s << "\tslice_type = " << value.slice_type << '\n';
16509         s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
16510         s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
16511         s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
16512         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
16513         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
16514         s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
16515         s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
16516         s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
16517         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
16518         s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
16519         s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
16520         s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
16521         s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
16522         s << "\tpShortTermRefPicSet = " << value.pShortTermRefPicSet << '\n';
16523         s << "\tpLongTermRefPics = " << value.pLongTermRefPics << '\n';
16524         s << "\tpWeightTable = " << value.pWeightTable << '\n';
16525         s << '}';
16526         return s;
16527 }
16528
16529 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
16530 {
16531         s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
16532         s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
16533         s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
16534         s << '}';
16535         return s;
16536 }
16537
16538 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
16539 {
16540         s << "StdVideoEncodeH265ReferenceModifications = {\n";
16541         s << "\tflags = " << value.flags << '\n';
16542         s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
16543         s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
16544         s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
16545         s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
16546         s << '}';
16547         return s;
16548 }
16549
16550 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
16551 {
16552         s << "StdVideoEncodeH265PictureInfoFlags = {\n";
16553         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
16554         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
16555         s << "\tlong_term_flag = " << value.long_term_flag << '\n';
16556         s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
16557         s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
16558         s << '}';
16559         return s;
16560 }
16561
16562 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
16563 {
16564         s << "StdVideoEncodeH265PictureInfo = {\n";
16565         s << "\tflags = " << value.flags << '\n';
16566         s << "\tPictureType = " << value.PictureType << '\n';
16567         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
16568         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
16569         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
16570         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
16571         s << "\tTemporalId = " << value.TemporalId << '\n';
16572         s << '}';
16573         return s;
16574 }
16575
16576 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
16577 {
16578         s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
16579         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
16580         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
16581         s << '}';
16582         return s;
16583 }
16584
16585 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
16586 {
16587         s << "StdVideoEncodeH265ReferenceInfo = {\n";
16588         s << "\tflags = " << value.flags << '\n';
16589         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
16590         s << "\tTemporalId = " << value.TemporalId << '\n';
16591         s << '}';
16592         return s;
16593 }