Merge pull request #276 from Ella-0/master
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / 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  */
4 template<> const char*  getTypeName<VkBuffer>                                                   (void) { return "VkBuffer";                                                     }
5 template<> const char*  getTypeName<VkImage>                                                    (void) { return "VkImage";                                                      }
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<VkSemaphore>                                                (void) { return "VkSemaphore";                                          }
11 template<> const char*  getTypeName<VkCommandBuffer>                                    (void) { return "VkCommandBuffer";                                      }
12 template<> const char*  getTypeName<VkFence>                                                    (void) { return "VkFence";                                                      }
13 template<> const char*  getTypeName<VkDeviceMemory>                                             (void) { return "VkDeviceMemory";                                       }
14 template<> const char*  getTypeName<VkEvent>                                                    (void) { return "VkEvent";                                                      }
15 template<> const char*  getTypeName<VkQueryPool>                                                (void) { return "VkQueryPool";                                          }
16 template<> const char*  getTypeName<VkBufferView>                                               (void) { return "VkBufferView";                                         }
17 template<> const char*  getTypeName<VkImageView>                                                (void) { return "VkImageView";                                          }
18 template<> const char*  getTypeName<VkShaderModule>                                             (void) { return "VkShaderModule";                                       }
19 template<> const char*  getTypeName<VkPipelineCache>                                    (void) { return "VkPipelineCache";                                      }
20 template<> const char*  getTypeName<VkPipelineLayout>                                   (void) { return "VkPipelineLayout";                                     }
21 template<> const char*  getTypeName<VkPipeline>                                                 (void) { return "VkPipeline";                                           }
22 template<> const char*  getTypeName<VkRenderPass>                                               (void) { return "VkRenderPass";                                         }
23 template<> const char*  getTypeName<VkDescriptorSetLayout>                              (void) { return "VkDescriptorSetLayout";                        }
24 template<> const char*  getTypeName<VkSampler>                                                  (void) { return "VkSampler";                                            }
25 template<> const char*  getTypeName<VkDescriptorSet>                                    (void) { return "VkDescriptorSet";                                      }
26 template<> const char*  getTypeName<VkDescriptorPool>                                   (void) { return "VkDescriptorPool";                                     }
27 template<> const char*  getTypeName<VkFramebuffer>                                              (void) { return "VkFramebuffer";                                        }
28 template<> const char*  getTypeName<VkCommandPool>                                              (void) { return "VkCommandPool";                                        }
29 template<> const char*  getTypeName<VkSamplerYcbcrConversion>                   (void) { return "VkSamplerYcbcrConversion";                     }
30 template<> const char*  getTypeName<VkDescriptorUpdateTemplate>                 (void) { return "VkDescriptorUpdateTemplate";           }
31 template<> const char*  getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
32 template<> const char*  getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
33 template<> const char*  getTypeName<VkDisplayKHR>                                               (void) { return "VkDisplayKHR";                                         }
34 template<> const char*  getTypeName<VkDisplayModeKHR>                                   (void) { return "VkDisplayModeKHR";                                     }
35 template<> const char*  getTypeName<VkDeferredOperationKHR>                             (void) { return "VkDeferredOperationKHR";                       }
36 template<> const char*  getTypeName<VkDebugReportCallbackEXT>                   (void) { return "VkDebugReportCallbackEXT";                     }
37 template<> const char*  getTypeName<VkCuModuleNVX>                                              (void) { return "VkCuModuleNVX";                                        }
38 template<> const char*  getTypeName<VkCuFunctionNVX>                                    (void) { return "VkCuFunctionNVX";                                      }
39 template<> const char*  getTypeName<VkDebugUtilsMessengerEXT>                   (void) { return "VkDebugUtilsMessengerEXT";                     }
40 template<> const char*  getTypeName<VkValidationCacheEXT>                               (void) { return "VkValidationCacheEXT";                         }
41 template<> const char*  getTypeName<VkAccelerationStructureNV>                  (void) { return "VkAccelerationStructureNV";            }
42 template<> const char*  getTypeName<VkPerformanceConfigurationINTEL>    (void) { return "VkPerformanceConfigurationINTEL";      }
43 template<> const char*  getTypeName<VkIndirectCommandsLayoutNV>                 (void) { return "VkIndirectCommandsLayoutNV";           }
44 template<> const char*  getTypeName<VkPrivateDataSlotEXT>                               (void) { return "VkPrivateDataSlotEXT";                         }
45 template<> const char*  getTypeName<VkAccelerationStructureKHR>                 (void) { return "VkAccelerationStructureKHR";           }
46 template<> const char*  getTypeName<VkVideoSessionKHR>                                  (void) { return "VkVideoSessionKHR";                            }
47 template<> const char*  getTypeName<VkVideoSessionParametersKHR>                (void) { return "VkVideoSessionParametersKHR";          }
48
49 namespace pt
50 {
51 std::ostream& operator<< (std::ostream& s, XlibDisplayPtr                               v) { return s << tcu::toHex(v.internal); }
52 std::ostream& operator<< (std::ostream& s, XlibWindow                                   v) { return s << tcu::toHex(v.internal); }
53 std::ostream& operator<< (std::ostream& s, XlibVisualID                                 v) { return s << tcu::toHex(v.internal); }
54 std::ostream& operator<< (std::ostream& s, XcbConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
55 std::ostream& operator<< (std::ostream& s, XcbWindow                                    v) { return s << tcu::toHex(v.internal); }
56 std::ostream& operator<< (std::ostream& s, XcbVisualid                                  v) { return s << tcu::toHex(v.internal); }
57 std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr                    v) { return s << tcu::toHex(v.internal); }
58 std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr                    v) { return s << tcu::toHex(v.internal); }
59 std::ostream& operator<< (std::ostream& s, MirConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
60 std::ostream& operator<< (std::ostream& s, MirSurfacePtr                                v) { return s << tcu::toHex(v.internal); }
61 std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr               v) { return s << tcu::toHex(v.internal); }
62 std::ostream& operator<< (std::ostream& s, Win32InstanceHandle                  v) { return s << tcu::toHex(v.internal); }
63 std::ostream& operator<< (std::ostream& s, Win32WindowHandle                    v) { return s << tcu::toHex(v.internal); }
64 std::ostream& operator<< (std::ostream& s, Win32Handle                                  v) { return s << tcu::toHex(v.internal); }
65 std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr   v) { return s << tcu::toHex(v.internal); }
66 std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr             v) { return s << tcu::toHex(v.internal); }
67 std::ostream& operator<< (std::ostream& s, Win32MonitorHandle                   v) { return s << tcu::toHex(v.internal); }
68 std::ostream& operator<< (std::ostream& s, Win32LPCWSTR                                 v) { return s << tcu::toHex(v.internal); }
69 std::ostream& operator<< (std::ostream& s, RROutput                                             v) { return s << tcu::toHex(v.internal); }
70 std::ostream& operator<< (std::ostream& s, zx_handle_t                                  v) { return s << tcu::toHex(v.internal); }
71 std::ostream& operator<< (std::ostream& s, GgpFrameToken                                v) { return s << tcu::toHex(v.internal); }
72 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                  v) { return s << tcu::toHex(v.internal); }
73 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                 v) { return s << tcu::toHex(v.internal); }
74 }
75
76 const char* getResultName (VkResult value)
77 {
78         switch (value)
79         {
80                 case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
81                 case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
82                 case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
83                 case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
84                 case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
85                 case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
86                 case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
87                 case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
88                 case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
89                 case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
90                 case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
91                 case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
92                 case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
93                 case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
94                 case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
95                 case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
96                 case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
97                 case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
98                 case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
99                 case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
100                 case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
101                 case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
102                 case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
103                 case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
104                 case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
105                 case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
106                 case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
107                 case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
108                 case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
109                 case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
110                 case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
111                 case VK_ERROR_NOT_PERMITTED_EXT:                                                        return "VK_ERROR_NOT_PERMITTED_EXT";
112                 case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
113                 case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
114                 case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
115                 case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
116                 case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
117                 case VK_PIPELINE_COMPILE_REQUIRED_EXT:                                          return "VK_PIPELINE_COMPILE_REQUIRED_EXT";
118                 case VK_RESULT_MAX_ENUM:                                                                        return "VK_RESULT_MAX_ENUM";
119                 default:                                                                                                        return DE_NULL;
120         }
121 }
122
123 const char* getStructureTypeName (VkStructureType value)
124 {
125         switch (value)
126         {
127                 case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
128                 case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
129                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
130                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
131                 case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                                     return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
132                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
133                 case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                                     return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
134                 case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
135                 case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
136                 case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
137                 case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
138                 case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
139                 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
140                 case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
141                 case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
142                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
143                 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
144                 case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
145                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
146                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
147                 case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
148                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
149                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
150                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
151                 case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
152                 case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
153                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
154                 case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
155                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
156                 case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
157                 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
158                 case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
159                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
160                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
161                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
162                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                                            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
163                 case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                                     return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
164                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
165                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
166                 case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
167                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
168                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                                         return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
169                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
170                 case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
171                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
172                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
173                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
174                 case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
175                 case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
176                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
177                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
178                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
179                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
180                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
181                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
182                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
183                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
184                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
185                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
186                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
187                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
188                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
189                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
190                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
191                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
192                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
193                 case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
194                 case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
195                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
196                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
197                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
198                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
199                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
200                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
201                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
202                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
203                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
204                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
205                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
206                 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
207                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
208                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
209                 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
210                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
211                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
212                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
213                 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
214                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
215                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
216                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
217                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
218                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
219                 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
220                 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
221                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
222                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
223                 case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
224                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
225                 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
226                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
227                 case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
228                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
229                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
230                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
231                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
232                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
233                 case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
234                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
235                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
236                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
237                 case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
238                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
239                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
240                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
241                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
242                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
243                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
244                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
245                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
246                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
247                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
248                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
249                 case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
250                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
251                 case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
252                 case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
253                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
254                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
255                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
256                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
257                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
258                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
259                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
260                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
261                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
262                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
263                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
264                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
265                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
266                 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
267                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
268                 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
269                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
270                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
271                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
272                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
273                 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
274                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
275                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
276                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
277                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
278                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
279                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
280                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
281                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
282                 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
283                 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
284                 case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
285                 case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
286                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
287                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
288                 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
289                 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
290                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
291                 case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
292                 case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
293                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
294                 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
295                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
296                 case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
297                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
298                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
299                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
300                 case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
301                 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
302                 case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
303                 case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
304                 case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
305                 case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
306                 case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
307                 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
308                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:                            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
309                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
310                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
311                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
312                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
313                 case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
314                 case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
315                 case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
316                 case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
317                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
318                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
319                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
320                 case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
321                 case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
322                 case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
323                 case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:                                                                                        return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
324                 case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
325                 case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:                                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
326                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
327                 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
328                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
329                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
330                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
331                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
332                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
333                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
334                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
335                 case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
336                 case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
337                 case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
338                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
339                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
340                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
341                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT";
342                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
343                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
344                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
345                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
346                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:                                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
347                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
348                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
349                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
350                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT";
351                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
352                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
353                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
354                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
355                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
356                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
357                 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
358                 case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
359                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
360                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
361                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
362                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
363                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
364                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
365                 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:                                                                                            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
366                 case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:                                                                                       return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
367                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT";
368                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
369                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
370                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
371                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
372                 case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
373                 case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
374                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
375                 case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
376                 case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
377                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
378                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
379                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
380                 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
381                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
382                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
383                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
384                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
385                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
386                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
387                 case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
388                 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
389                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
390                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
391                 case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
392                 case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
393                 case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
394                 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
395                 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                                       return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
396                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
397                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
398                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
399                 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
400                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
401                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
402                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
403                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
404                 case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                        return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
405                 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                                         return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
406                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
407                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
408                 case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
409                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
410                 case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
411                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
412                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
413                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
414                 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
415                 case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
416                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
417                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
418                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
419                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
420                 case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                                            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
421                 case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
422                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
423                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:                                                                           return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
424                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
425                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
426                 case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                                     return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
427                 case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                           return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
428                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
429                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
430                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
431                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
432                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
433                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
434                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
435                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
436                 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                                     return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
437                 case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                         return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
438                 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
439                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT";
440                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT";
441                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:                                           return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT";
442                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT";
443                 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                                       return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
444                 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
445                 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:                                         return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
446                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
447                 case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:                                                                                      return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
448                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
449                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
450                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
451                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:                                         return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
452                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
453                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
454                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
455                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
456                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
457                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
458                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
459                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
460                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
461                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
462                 case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
463                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
464                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
465                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
466                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
467                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
468                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
469                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
470                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
471                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
472                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
473                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:                                       return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
474                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
475                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
476                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
477                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
478                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
479                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
480                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
481                 case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
482                 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
483                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
484                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
485                 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";
486                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
487                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
488                 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";
489                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
490                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
491                 case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
492                 case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
493                 case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
494                 case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
495                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
496                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
497                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
498                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
499                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
500                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
501                 case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
502                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
503                 case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
504                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT";
505                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
506                 case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
507                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
508                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
509                 case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
510                 case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
511                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
512                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
513                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT";
514                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
515                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
516                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
517                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
518                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
519                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
520                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
521                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
522                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
523                 case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
524                 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT";
525                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
526                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
527                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
528                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV";
529                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
530                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
531                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
532                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
533                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
534                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
535                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
536                 case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
537                 case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
538                 case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
539                 case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
540                 case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
541                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
542                 case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
543                 case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
544                 case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
545                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR";
546                 case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
547                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
548                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
549                 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
550                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT";
551                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT";
552                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT";
553                 case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
554                 case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
555                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
556                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
557                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
558                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
559                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
560                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
561                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
562                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
563                 case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
564                 case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
565                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
566                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
567                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
568                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT";
569                 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
570                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
571                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
572                 case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
573                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
574                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
575                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
576                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
577                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
578                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
579                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
580                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
581                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
582                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
583                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
584                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
585                 case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
586                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
587                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
588                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
589                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
590                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
591                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
592                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
593                 case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
594                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
595                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
596                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
597                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
598                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
599                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT";
600                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
601                 case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
602                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
603                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
604                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
605                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
606                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
607                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
608                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
609                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
610                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
611                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT";
612                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
613                 case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
614                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
615                 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
616                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
617                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
618                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
619                 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
620                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
621                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
622                 case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
623                 case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
624                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
625                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT";
626                 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT";
627                 case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT";
628                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT";
629                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
630                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
631                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
632                 case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
633                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:                                                                                            return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR";
634                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR:                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR";
635                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR";
636                 case VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR";
637                 case VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR";
638                 case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR";
639                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR:                                                                          return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR";
640                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR";
641                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
642                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
643                 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";
644                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR";
645                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
646                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
647                 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";
648                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
649                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
650                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
651                 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";
652                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
653                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
654                 case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
655                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT";
656                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
657                 case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR:                                                                                          return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR";
658                 case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR:                                                                                           return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR";
659                 case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR:                                                                         return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR";
660                 case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR:                                                                         return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR";
661                 case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR:                                                                                           return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR";
662                 case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR";
663                 case VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR";
664                 case VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR";
665                 case VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR";
666                 case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR";
667                 case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR";
668                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
669                 case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
670                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
671                 case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:                                                       return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
672                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
673                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
674                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
675                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
676                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
677                 case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
678                 case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
679                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
680                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
681                 case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
682                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
683                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
684                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
685                 case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
686                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
687                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
688                 case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
689                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
690                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
691                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT";
692                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT";
693                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
694                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
695                 case VK_STRUCTURE_TYPE_MAX_ENUM:                                                                                                                        return "VK_STRUCTURE_TYPE_MAX_ENUM";
696                 default:                                                                                                                                                                        return DE_NULL;
697         }
698 }
699
700 const char* getImageLayoutName (VkImageLayout value)
701 {
702         switch (value)
703         {
704                 case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
705                 case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
706                 case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
707                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
708                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
709                 case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
710                 case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
711                 case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
712                 case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
713                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
714                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
715                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
716                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
717                 case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
718                 case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
719                 case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
720                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
721                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
722                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
723                 case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
724                 case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
725                 case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
726                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
727                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
728                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
729                 case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR:                                                     return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR";
730                 case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR:                                            return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR";
731                 case VK_IMAGE_LAYOUT_MAX_ENUM:                                                                          return "VK_IMAGE_LAYOUT_MAX_ENUM";
732                 default:                                                                                                                        return DE_NULL;
733         }
734 }
735
736 const char* getObjectTypeName (VkObjectType value)
737 {
738         switch (value)
739         {
740                 case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
741                 case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
742                 case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
743                 case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
744                 case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
745                 case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
746                 case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
747                 case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
748                 case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
749                 case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
750                 case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
751                 case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
752                 case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
753                 case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
754                 case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
755                 case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
756                 case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
757                 case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
758                 case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
759                 case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
760                 case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
761                 case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
762                 case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
763                 case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
764                 case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
765                 case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
766                 case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
767                 case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
768                 case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
769                 case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
770                 case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
771                 case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
772                 case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
773                 case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
774                 case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
775                 case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
776                 case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
777                 case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
778                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
779                 case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
780                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
781                 case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
782                 case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
783                 case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
784                 case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT:                              return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT";
785                 case VK_OBJECT_TYPE_MAX_ENUM:                                                   return "VK_OBJECT_TYPE_MAX_ENUM";
786                 default:                                                                                                return DE_NULL;
787         }
788 }
789
790 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
791 {
792         switch (value)
793         {
794                 case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:              return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
795                 case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM: return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
796                 default:                                                                                return DE_NULL;
797         }
798 }
799
800 const char* getVendorIdName (VkVendorId value)
801 {
802         switch (value)
803         {
804                 case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
805                 case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
806                 case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
807                 case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
808                 case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
809                 case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
810                 case VK_VENDOR_ID_MAX_ENUM:     return "VK_VENDOR_ID_MAX_ENUM";
811                 default:                                        return DE_NULL;
812         }
813 }
814
815 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
816 {
817         switch (value)
818         {
819                 case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
820                 case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
821                 case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
822                 case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
823                 case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
824                 case VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:       return "VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM";
825                 default:                                                                        return DE_NULL;
826         }
827 }
828
829 const char* getInternalAllocationTypeName (VkInternalAllocationType value)
830 {
831         switch (value)
832         {
833                 case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
834                 case VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:              return "VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM";
835                 default:                                                                                return DE_NULL;
836         }
837 }
838
839 const char* getFormatName (VkFormat value)
840 {
841         switch (value)
842         {
843                 case VK_FORMAT_UNDEFINED:                                                                               return "VK_FORMAT_UNDEFINED";
844                 case VK_FORMAT_R4G4_UNORM_PACK8:                                                                return "VK_FORMAT_R4G4_UNORM_PACK8";
845                 case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                                   return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
846                 case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                                   return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
847                 case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                             return "VK_FORMAT_R5G6B5_UNORM_PACK16";
848                 case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                             return "VK_FORMAT_B5G6R5_UNORM_PACK16";
849                 case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                                   return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
850                 case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                                   return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
851                 case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                                   return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
852                 case VK_FORMAT_R8_UNORM:                                                                                return "VK_FORMAT_R8_UNORM";
853                 case VK_FORMAT_R8_SNORM:                                                                                return "VK_FORMAT_R8_SNORM";
854                 case VK_FORMAT_R8_USCALED:                                                                              return "VK_FORMAT_R8_USCALED";
855                 case VK_FORMAT_R8_SSCALED:                                                                              return "VK_FORMAT_R8_SSCALED";
856                 case VK_FORMAT_R8_UINT:                                                                                 return "VK_FORMAT_R8_UINT";
857                 case VK_FORMAT_R8_SINT:                                                                                 return "VK_FORMAT_R8_SINT";
858                 case VK_FORMAT_R8_SRGB:                                                                                 return "VK_FORMAT_R8_SRGB";
859                 case VK_FORMAT_R8G8_UNORM:                                                                              return "VK_FORMAT_R8G8_UNORM";
860                 case VK_FORMAT_R8G8_SNORM:                                                                              return "VK_FORMAT_R8G8_SNORM";
861                 case VK_FORMAT_R8G8_USCALED:                                                                    return "VK_FORMAT_R8G8_USCALED";
862                 case VK_FORMAT_R8G8_SSCALED:                                                                    return "VK_FORMAT_R8G8_SSCALED";
863                 case VK_FORMAT_R8G8_UINT:                                                                               return "VK_FORMAT_R8G8_UINT";
864                 case VK_FORMAT_R8G8_SINT:                                                                               return "VK_FORMAT_R8G8_SINT";
865                 case VK_FORMAT_R8G8_SRGB:                                                                               return "VK_FORMAT_R8G8_SRGB";
866                 case VK_FORMAT_R8G8B8_UNORM:                                                                    return "VK_FORMAT_R8G8B8_UNORM";
867                 case VK_FORMAT_R8G8B8_SNORM:                                                                    return "VK_FORMAT_R8G8B8_SNORM";
868                 case VK_FORMAT_R8G8B8_USCALED:                                                                  return "VK_FORMAT_R8G8B8_USCALED";
869                 case VK_FORMAT_R8G8B8_SSCALED:                                                                  return "VK_FORMAT_R8G8B8_SSCALED";
870                 case VK_FORMAT_R8G8B8_UINT:                                                                             return "VK_FORMAT_R8G8B8_UINT";
871                 case VK_FORMAT_R8G8B8_SINT:                                                                             return "VK_FORMAT_R8G8B8_SINT";
872                 case VK_FORMAT_R8G8B8_SRGB:                                                                             return "VK_FORMAT_R8G8B8_SRGB";
873                 case VK_FORMAT_B8G8R8_UNORM:                                                                    return "VK_FORMAT_B8G8R8_UNORM";
874                 case VK_FORMAT_B8G8R8_SNORM:                                                                    return "VK_FORMAT_B8G8R8_SNORM";
875                 case VK_FORMAT_B8G8R8_USCALED:                                                                  return "VK_FORMAT_B8G8R8_USCALED";
876                 case VK_FORMAT_B8G8R8_SSCALED:                                                                  return "VK_FORMAT_B8G8R8_SSCALED";
877                 case VK_FORMAT_B8G8R8_UINT:                                                                             return "VK_FORMAT_B8G8R8_UINT";
878                 case VK_FORMAT_B8G8R8_SINT:                                                                             return "VK_FORMAT_B8G8R8_SINT";
879                 case VK_FORMAT_B8G8R8_SRGB:                                                                             return "VK_FORMAT_B8G8R8_SRGB";
880                 case VK_FORMAT_R8G8B8A8_UNORM:                                                                  return "VK_FORMAT_R8G8B8A8_UNORM";
881                 case VK_FORMAT_R8G8B8A8_SNORM:                                                                  return "VK_FORMAT_R8G8B8A8_SNORM";
882                 case VK_FORMAT_R8G8B8A8_USCALED:                                                                return "VK_FORMAT_R8G8B8A8_USCALED";
883                 case VK_FORMAT_R8G8B8A8_SSCALED:                                                                return "VK_FORMAT_R8G8B8A8_SSCALED";
884                 case VK_FORMAT_R8G8B8A8_UINT:                                                                   return "VK_FORMAT_R8G8B8A8_UINT";
885                 case VK_FORMAT_R8G8B8A8_SINT:                                                                   return "VK_FORMAT_R8G8B8A8_SINT";
886                 case VK_FORMAT_R8G8B8A8_SRGB:                                                                   return "VK_FORMAT_R8G8B8A8_SRGB";
887                 case VK_FORMAT_B8G8R8A8_UNORM:                                                                  return "VK_FORMAT_B8G8R8A8_UNORM";
888                 case VK_FORMAT_B8G8R8A8_SNORM:                                                                  return "VK_FORMAT_B8G8R8A8_SNORM";
889                 case VK_FORMAT_B8G8R8A8_USCALED:                                                                return "VK_FORMAT_B8G8R8A8_USCALED";
890                 case VK_FORMAT_B8G8R8A8_SSCALED:                                                                return "VK_FORMAT_B8G8R8A8_SSCALED";
891                 case VK_FORMAT_B8G8R8A8_UINT:                                                                   return "VK_FORMAT_B8G8R8A8_UINT";
892                 case VK_FORMAT_B8G8R8A8_SINT:                                                                   return "VK_FORMAT_B8G8R8A8_SINT";
893                 case VK_FORMAT_B8G8R8A8_SRGB:                                                                   return "VK_FORMAT_B8G8R8A8_SRGB";
894                 case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                                   return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
895                 case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                                   return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
896                 case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                                 return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
897                 case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                                 return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
898                 case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                                    return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
899                 case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                                    return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
900                 case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                                    return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
901                 case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                                return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
902                 case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                                return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
903                 case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                              return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
904                 case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                              return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
905                 case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                                 return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
906                 case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                                 return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
907                 case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                                return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
908                 case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                                return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
909                 case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                              return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
910                 case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                              return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
911                 case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                                 return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
912                 case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                                 return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
913                 case VK_FORMAT_R16_UNORM:                                                                               return "VK_FORMAT_R16_UNORM";
914                 case VK_FORMAT_R16_SNORM:                                                                               return "VK_FORMAT_R16_SNORM";
915                 case VK_FORMAT_R16_USCALED:                                                                             return "VK_FORMAT_R16_USCALED";
916                 case VK_FORMAT_R16_SSCALED:                                                                             return "VK_FORMAT_R16_SSCALED";
917                 case VK_FORMAT_R16_UINT:                                                                                return "VK_FORMAT_R16_UINT";
918                 case VK_FORMAT_R16_SINT:                                                                                return "VK_FORMAT_R16_SINT";
919                 case VK_FORMAT_R16_SFLOAT:                                                                              return "VK_FORMAT_R16_SFLOAT";
920                 case VK_FORMAT_R16G16_UNORM:                                                                    return "VK_FORMAT_R16G16_UNORM";
921                 case VK_FORMAT_R16G16_SNORM:                                                                    return "VK_FORMAT_R16G16_SNORM";
922                 case VK_FORMAT_R16G16_USCALED:                                                                  return "VK_FORMAT_R16G16_USCALED";
923                 case VK_FORMAT_R16G16_SSCALED:                                                                  return "VK_FORMAT_R16G16_SSCALED";
924                 case VK_FORMAT_R16G16_UINT:                                                                             return "VK_FORMAT_R16G16_UINT";
925                 case VK_FORMAT_R16G16_SINT:                                                                             return "VK_FORMAT_R16G16_SINT";
926                 case VK_FORMAT_R16G16_SFLOAT:                                                                   return "VK_FORMAT_R16G16_SFLOAT";
927                 case VK_FORMAT_R16G16B16_UNORM:                                                                 return "VK_FORMAT_R16G16B16_UNORM";
928                 case VK_FORMAT_R16G16B16_SNORM:                                                                 return "VK_FORMAT_R16G16B16_SNORM";
929                 case VK_FORMAT_R16G16B16_USCALED:                                                               return "VK_FORMAT_R16G16B16_USCALED";
930                 case VK_FORMAT_R16G16B16_SSCALED:                                                               return "VK_FORMAT_R16G16B16_SSCALED";
931                 case VK_FORMAT_R16G16B16_UINT:                                                                  return "VK_FORMAT_R16G16B16_UINT";
932                 case VK_FORMAT_R16G16B16_SINT:                                                                  return "VK_FORMAT_R16G16B16_SINT";
933                 case VK_FORMAT_R16G16B16_SFLOAT:                                                                return "VK_FORMAT_R16G16B16_SFLOAT";
934                 case VK_FORMAT_R16G16B16A16_UNORM:                                                              return "VK_FORMAT_R16G16B16A16_UNORM";
935                 case VK_FORMAT_R16G16B16A16_SNORM:                                                              return "VK_FORMAT_R16G16B16A16_SNORM";
936                 case VK_FORMAT_R16G16B16A16_USCALED:                                                    return "VK_FORMAT_R16G16B16A16_USCALED";
937                 case VK_FORMAT_R16G16B16A16_SSCALED:                                                    return "VK_FORMAT_R16G16B16A16_SSCALED";
938                 case VK_FORMAT_R16G16B16A16_UINT:                                                               return "VK_FORMAT_R16G16B16A16_UINT";
939                 case VK_FORMAT_R16G16B16A16_SINT:                                                               return "VK_FORMAT_R16G16B16A16_SINT";
940                 case VK_FORMAT_R16G16B16A16_SFLOAT:                                                             return "VK_FORMAT_R16G16B16A16_SFLOAT";
941                 case VK_FORMAT_R32_UINT:                                                                                return "VK_FORMAT_R32_UINT";
942                 case VK_FORMAT_R32_SINT:                                                                                return "VK_FORMAT_R32_SINT";
943                 case VK_FORMAT_R32_SFLOAT:                                                                              return "VK_FORMAT_R32_SFLOAT";
944                 case VK_FORMAT_R32G32_UINT:                                                                             return "VK_FORMAT_R32G32_UINT";
945                 case VK_FORMAT_R32G32_SINT:                                                                             return "VK_FORMAT_R32G32_SINT";
946                 case VK_FORMAT_R32G32_SFLOAT:                                                                   return "VK_FORMAT_R32G32_SFLOAT";
947                 case VK_FORMAT_R32G32B32_UINT:                                                                  return "VK_FORMAT_R32G32B32_UINT";
948                 case VK_FORMAT_R32G32B32_SINT:                                                                  return "VK_FORMAT_R32G32B32_SINT";
949                 case VK_FORMAT_R32G32B32_SFLOAT:                                                                return "VK_FORMAT_R32G32B32_SFLOAT";
950                 case VK_FORMAT_R32G32B32A32_UINT:                                                               return "VK_FORMAT_R32G32B32A32_UINT";
951                 case VK_FORMAT_R32G32B32A32_SINT:                                                               return "VK_FORMAT_R32G32B32A32_SINT";
952                 case VK_FORMAT_R32G32B32A32_SFLOAT:                                                             return "VK_FORMAT_R32G32B32A32_SFLOAT";
953                 case VK_FORMAT_R64_UINT:                                                                                return "VK_FORMAT_R64_UINT";
954                 case VK_FORMAT_R64_SINT:                                                                                return "VK_FORMAT_R64_SINT";
955                 case VK_FORMAT_R64_SFLOAT:                                                                              return "VK_FORMAT_R64_SFLOAT";
956                 case VK_FORMAT_R64G64_UINT:                                                                             return "VK_FORMAT_R64G64_UINT";
957                 case VK_FORMAT_R64G64_SINT:                                                                             return "VK_FORMAT_R64G64_SINT";
958                 case VK_FORMAT_R64G64_SFLOAT:                                                                   return "VK_FORMAT_R64G64_SFLOAT";
959                 case VK_FORMAT_R64G64B64_UINT:                                                                  return "VK_FORMAT_R64G64B64_UINT";
960                 case VK_FORMAT_R64G64B64_SINT:                                                                  return "VK_FORMAT_R64G64B64_SINT";
961                 case VK_FORMAT_R64G64B64_SFLOAT:                                                                return "VK_FORMAT_R64G64B64_SFLOAT";
962                 case VK_FORMAT_R64G64B64A64_UINT:                                                               return "VK_FORMAT_R64G64B64A64_UINT";
963                 case VK_FORMAT_R64G64B64A64_SINT:                                                               return "VK_FORMAT_R64G64B64A64_SINT";
964                 case VK_FORMAT_R64G64B64A64_SFLOAT:                                                             return "VK_FORMAT_R64G64B64A64_SFLOAT";
965                 case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                                 return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
966                 case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                                  return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
967                 case VK_FORMAT_D16_UNORM:                                                                               return "VK_FORMAT_D16_UNORM";
968                 case VK_FORMAT_X8_D24_UNORM_PACK32:                                                             return "VK_FORMAT_X8_D24_UNORM_PACK32";
969                 case VK_FORMAT_D32_SFLOAT:                                                                              return "VK_FORMAT_D32_SFLOAT";
970                 case VK_FORMAT_S8_UINT:                                                                                 return "VK_FORMAT_S8_UINT";
971                 case VK_FORMAT_D16_UNORM_S8_UINT:                                                               return "VK_FORMAT_D16_UNORM_S8_UINT";
972                 case VK_FORMAT_D24_UNORM_S8_UINT:                                                               return "VK_FORMAT_D24_UNORM_S8_UINT";
973                 case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                              return "VK_FORMAT_D32_SFLOAT_S8_UINT";
974                 case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                             return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
975                 case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                              return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
976                 case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                                    return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
977                 case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                             return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
978                 case VK_FORMAT_BC2_UNORM_BLOCK:                                                                 return "VK_FORMAT_BC2_UNORM_BLOCK";
979                 case VK_FORMAT_BC2_SRGB_BLOCK:                                                                  return "VK_FORMAT_BC2_SRGB_BLOCK";
980                 case VK_FORMAT_BC3_UNORM_BLOCK:                                                                 return "VK_FORMAT_BC3_UNORM_BLOCK";
981                 case VK_FORMAT_BC3_SRGB_BLOCK:                                                                  return "VK_FORMAT_BC3_SRGB_BLOCK";
982                 case VK_FORMAT_BC4_UNORM_BLOCK:                                                                 return "VK_FORMAT_BC4_UNORM_BLOCK";
983                 case VK_FORMAT_BC4_SNORM_BLOCK:                                                                 return "VK_FORMAT_BC4_SNORM_BLOCK";
984                 case VK_FORMAT_BC5_UNORM_BLOCK:                                                                 return "VK_FORMAT_BC5_UNORM_BLOCK";
985                 case VK_FORMAT_BC5_SNORM_BLOCK:                                                                 return "VK_FORMAT_BC5_SNORM_BLOCK";
986                 case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                               return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
987                 case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                               return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
988                 case VK_FORMAT_BC7_UNORM_BLOCK:                                                                 return "VK_FORMAT_BC7_UNORM_BLOCK";
989                 case VK_FORMAT_BC7_SRGB_BLOCK:                                                                  return "VK_FORMAT_BC7_SRGB_BLOCK";
990                 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                                 return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
991                 case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                                  return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
992                 case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                               return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
993                 case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                                return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
994                 case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                               return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
995                 case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                                return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
996                 case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                             return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
997                 case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                             return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
998                 case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                                  return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
999                 case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                                  return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
1000                 case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
1001                 case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
1002                 case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
1003                 case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
1004                 case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
1005                 case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
1006                 case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
1007                 case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
1008                 case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
1009                 case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
1010                 case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
1011                 case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
1012                 case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
1013                 case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
1014                 case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                                    return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
1015                 case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                             return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
1016                 case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                                   return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
1017                 case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                                    return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
1018                 case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                                   return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
1019                 case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                                    return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
1020                 case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                                   return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
1021                 case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                                    return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
1022                 case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                                  return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
1023                 case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                                   return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
1024                 case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                                  return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
1025                 case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:                                                   return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
1026                 case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:                                                  return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
1027                 case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:                                                   return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
1028                 case VK_FORMAT_G8B8G8R8_422_UNORM:                                                              return "VK_FORMAT_G8B8G8R8_422_UNORM";
1029                 case VK_FORMAT_B8G8R8G8_422_UNORM:                                                              return "VK_FORMAT_B8G8R8G8_422_UNORM";
1030                 case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                               return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
1031                 case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                                return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
1032                 case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                               return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
1033                 case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                                return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
1034                 case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                               return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
1035                 case VK_FORMAT_R10X6_UNORM_PACK16:                                                              return "VK_FORMAT_R10X6_UNORM_PACK16";
1036                 case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                                return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
1037                 case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                              return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
1038                 case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:                  return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
1039                 case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:                  return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
1040                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:              return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
1041                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:               return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
1042                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:              return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
1043                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:               return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
1044                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:              return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
1045                 case VK_FORMAT_R12X4_UNORM_PACK16:                                                              return "VK_FORMAT_R12X4_UNORM_PACK16";
1046                 case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                                return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
1047                 case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                              return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
1048                 case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:                  return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
1049                 case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:                  return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
1050                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:              return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
1051                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:               return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
1052                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:              return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
1053                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:               return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
1054                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:              return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
1055                 case VK_FORMAT_G16B16G16R16_422_UNORM:                                                  return "VK_FORMAT_G16B16G16R16_422_UNORM";
1056                 case VK_FORMAT_B16G16R16G16_422_UNORM:                                                  return "VK_FORMAT_B16G16R16G16_422_UNORM";
1057                 case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                                    return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
1058                 case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                             return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
1059                 case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                                    return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
1060                 case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                             return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
1061                 case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                                    return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
1062                 case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
1063                 case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
1064                 case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
1065                 case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:                                             return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
1066                 case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
1067                 case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
1068                 case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
1069                 case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:                                              return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
1070                 case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT";
1071                 case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT";
1072                 case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT";
1073                 case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT";
1074                 case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT";
1075                 case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT";
1076                 case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT";
1077                 case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:                                               return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT";
1078                 case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:                                              return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT";
1079                 case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:                                              return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT";
1080                 case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:                                              return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT";
1081                 case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:                                             return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT";
1082                 case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:                                             return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT";
1083                 case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:                                             return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT";
1084                 case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT:                                    return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT";
1085                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT:   return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT";
1086                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT:   return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT";
1087                 case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT:                                 return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT";
1088                 case VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT:                                               return "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT";
1089                 case VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT:                                               return "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT";
1090                 case VK_FORMAT_MAX_ENUM:                                                                                return "VK_FORMAT_MAX_ENUM";
1091                 default:                                                                                                                return DE_NULL;
1092         }
1093 }
1094
1095 const char* getImageTilingName (VkImageTiling value)
1096 {
1097         switch (value)
1098         {
1099                 case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
1100                 case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
1101                 case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
1102                 case VK_IMAGE_TILING_MAX_ENUM:                                  return "VK_IMAGE_TILING_MAX_ENUM";
1103                 default:                                                                                return DE_NULL;
1104         }
1105 }
1106
1107 const char* getImageTypeName (VkImageType value)
1108 {
1109         switch (value)
1110         {
1111                 case VK_IMAGE_TYPE_1D:                  return "VK_IMAGE_TYPE_1D";
1112                 case VK_IMAGE_TYPE_2D:                  return "VK_IMAGE_TYPE_2D";
1113                 case VK_IMAGE_TYPE_3D:                  return "VK_IMAGE_TYPE_3D";
1114                 case VK_IMAGE_TYPE_MAX_ENUM:    return "VK_IMAGE_TYPE_MAX_ENUM";
1115                 default:                                                return DE_NULL;
1116         }
1117 }
1118
1119 const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1120 {
1121         switch (value)
1122         {
1123                 case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1124                 case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1125                 case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1126                 case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1127                 case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1128                 case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:                  return "VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM";
1129                 default:                                                                                return DE_NULL;
1130         }
1131 }
1132
1133 const char* getQueryTypeName (VkQueryType value)
1134 {
1135         switch (value)
1136         {
1137                 case VK_QUERY_TYPE_OCCLUSION:                                                                           return "VK_QUERY_TYPE_OCCLUSION";
1138                 case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1139                 case VK_QUERY_TYPE_TIMESTAMP:                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
1140                 case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1141                 case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1142                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1143                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1144                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1145                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1146                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1147                 case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1148                 case VK_QUERY_TYPE_MAX_ENUM:                                                                            return "VK_QUERY_TYPE_MAX_ENUM";
1149                 default:                                                                                                                        return DE_NULL;
1150         }
1151 }
1152
1153 const char* getSharingModeName (VkSharingMode value)
1154 {
1155         switch (value)
1156         {
1157                 case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
1158                 case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
1159                 case VK_SHARING_MODE_MAX_ENUM:          return "VK_SHARING_MODE_MAX_ENUM";
1160                 default:                                                        return DE_NULL;
1161         }
1162 }
1163
1164 const char* getComponentSwizzleName (VkComponentSwizzle value)
1165 {
1166         switch (value)
1167         {
1168                 case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
1169                 case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
1170                 case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
1171                 case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
1172                 case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
1173                 case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
1174                 case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
1175                 case VK_COMPONENT_SWIZZLE_MAX_ENUM:     return "VK_COMPONENT_SWIZZLE_MAX_ENUM";
1176                 default:                                                        return DE_NULL;
1177         }
1178 }
1179
1180 const char* getImageViewTypeName (VkImageViewType value)
1181 {
1182         switch (value)
1183         {
1184                 case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
1185                 case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
1186                 case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
1187                 case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
1188                 case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1189                 case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1190                 case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1191                 case VK_IMAGE_VIEW_TYPE_MAX_ENUM:       return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
1192                 default:                                                        return DE_NULL;
1193         }
1194 }
1195
1196 const char* getBlendFactorName (VkBlendFactor value)
1197 {
1198         switch (value)
1199         {
1200                 case VK_BLEND_FACTOR_ZERO:                                              return "VK_BLEND_FACTOR_ZERO";
1201                 case VK_BLEND_FACTOR_ONE:                                               return "VK_BLEND_FACTOR_ONE";
1202                 case VK_BLEND_FACTOR_SRC_COLOR:                                 return "VK_BLEND_FACTOR_SRC_COLOR";
1203                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
1204                 case VK_BLEND_FACTOR_DST_COLOR:                                 return "VK_BLEND_FACTOR_DST_COLOR";
1205                 case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
1206                 case VK_BLEND_FACTOR_SRC_ALPHA:                                 return "VK_BLEND_FACTOR_SRC_ALPHA";
1207                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
1208                 case VK_BLEND_FACTOR_DST_ALPHA:                                 return "VK_BLEND_FACTOR_DST_ALPHA";
1209                 case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
1210                 case VK_BLEND_FACTOR_CONSTANT_COLOR:                    return "VK_BLEND_FACTOR_CONSTANT_COLOR";
1211                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
1212                 case VK_BLEND_FACTOR_CONSTANT_ALPHA:                    return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
1213                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
1214                 case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:                return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
1215                 case VK_BLEND_FACTOR_SRC1_COLOR:                                return "VK_BLEND_FACTOR_SRC1_COLOR";
1216                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
1217                 case VK_BLEND_FACTOR_SRC1_ALPHA:                                return "VK_BLEND_FACTOR_SRC1_ALPHA";
1218                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
1219                 case VK_BLEND_FACTOR_MAX_ENUM:                                  return "VK_BLEND_FACTOR_MAX_ENUM";
1220                 default:                                                                                return DE_NULL;
1221         }
1222 }
1223
1224 const char* getBlendOpName (VkBlendOp value)
1225 {
1226         switch (value)
1227         {
1228                 case VK_BLEND_OP_ADD:                                           return "VK_BLEND_OP_ADD";
1229                 case VK_BLEND_OP_SUBTRACT:                                      return "VK_BLEND_OP_SUBTRACT";
1230                 case VK_BLEND_OP_REVERSE_SUBTRACT:                      return "VK_BLEND_OP_REVERSE_SUBTRACT";
1231                 case VK_BLEND_OP_MIN:                                           return "VK_BLEND_OP_MIN";
1232                 case VK_BLEND_OP_MAX:                                           return "VK_BLEND_OP_MAX";
1233                 case VK_BLEND_OP_ZERO_EXT:                                      return "VK_BLEND_OP_ZERO_EXT";
1234                 case VK_BLEND_OP_SRC_EXT:                                       return "VK_BLEND_OP_SRC_EXT";
1235                 case VK_BLEND_OP_DST_EXT:                                       return "VK_BLEND_OP_DST_EXT";
1236                 case VK_BLEND_OP_SRC_OVER_EXT:                          return "VK_BLEND_OP_SRC_OVER_EXT";
1237                 case VK_BLEND_OP_DST_OVER_EXT:                          return "VK_BLEND_OP_DST_OVER_EXT";
1238                 case VK_BLEND_OP_SRC_IN_EXT:                            return "VK_BLEND_OP_SRC_IN_EXT";
1239                 case VK_BLEND_OP_DST_IN_EXT:                            return "VK_BLEND_OP_DST_IN_EXT";
1240                 case VK_BLEND_OP_SRC_OUT_EXT:                           return "VK_BLEND_OP_SRC_OUT_EXT";
1241                 case VK_BLEND_OP_DST_OUT_EXT:                           return "VK_BLEND_OP_DST_OUT_EXT";
1242                 case VK_BLEND_OP_SRC_ATOP_EXT:                          return "VK_BLEND_OP_SRC_ATOP_EXT";
1243                 case VK_BLEND_OP_DST_ATOP_EXT:                          return "VK_BLEND_OP_DST_ATOP_EXT";
1244                 case VK_BLEND_OP_XOR_EXT:                                       return "VK_BLEND_OP_XOR_EXT";
1245                 case VK_BLEND_OP_MULTIPLY_EXT:                          return "VK_BLEND_OP_MULTIPLY_EXT";
1246                 case VK_BLEND_OP_SCREEN_EXT:                            return "VK_BLEND_OP_SCREEN_EXT";
1247                 case VK_BLEND_OP_OVERLAY_EXT:                           return "VK_BLEND_OP_OVERLAY_EXT";
1248                 case VK_BLEND_OP_DARKEN_EXT:                            return "VK_BLEND_OP_DARKEN_EXT";
1249                 case VK_BLEND_OP_LIGHTEN_EXT:                           return "VK_BLEND_OP_LIGHTEN_EXT";
1250                 case VK_BLEND_OP_COLORDODGE_EXT:                        return "VK_BLEND_OP_COLORDODGE_EXT";
1251                 case VK_BLEND_OP_COLORBURN_EXT:                         return "VK_BLEND_OP_COLORBURN_EXT";
1252                 case VK_BLEND_OP_HARDLIGHT_EXT:                         return "VK_BLEND_OP_HARDLIGHT_EXT";
1253                 case VK_BLEND_OP_SOFTLIGHT_EXT:                         return "VK_BLEND_OP_SOFTLIGHT_EXT";
1254                 case VK_BLEND_OP_DIFFERENCE_EXT:                        return "VK_BLEND_OP_DIFFERENCE_EXT";
1255                 case VK_BLEND_OP_EXCLUSION_EXT:                         return "VK_BLEND_OP_EXCLUSION_EXT";
1256                 case VK_BLEND_OP_INVERT_EXT:                            return "VK_BLEND_OP_INVERT_EXT";
1257                 case VK_BLEND_OP_INVERT_RGB_EXT:                        return "VK_BLEND_OP_INVERT_RGB_EXT";
1258                 case VK_BLEND_OP_LINEARDODGE_EXT:                       return "VK_BLEND_OP_LINEARDODGE_EXT";
1259                 case VK_BLEND_OP_LINEARBURN_EXT:                        return "VK_BLEND_OP_LINEARBURN_EXT";
1260                 case VK_BLEND_OP_VIVIDLIGHT_EXT:                        return "VK_BLEND_OP_VIVIDLIGHT_EXT";
1261                 case VK_BLEND_OP_LINEARLIGHT_EXT:                       return "VK_BLEND_OP_LINEARLIGHT_EXT";
1262                 case VK_BLEND_OP_PINLIGHT_EXT:                          return "VK_BLEND_OP_PINLIGHT_EXT";
1263                 case VK_BLEND_OP_HARDMIX_EXT:                           return "VK_BLEND_OP_HARDMIX_EXT";
1264                 case VK_BLEND_OP_HSL_HUE_EXT:                           return "VK_BLEND_OP_HSL_HUE_EXT";
1265                 case VK_BLEND_OP_HSL_SATURATION_EXT:            return "VK_BLEND_OP_HSL_SATURATION_EXT";
1266                 case VK_BLEND_OP_HSL_COLOR_EXT:                         return "VK_BLEND_OP_HSL_COLOR_EXT";
1267                 case VK_BLEND_OP_HSL_LUMINOSITY_EXT:            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
1268                 case VK_BLEND_OP_PLUS_EXT:                                      return "VK_BLEND_OP_PLUS_EXT";
1269                 case VK_BLEND_OP_PLUS_CLAMPED_EXT:                      return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
1270                 case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:        return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
1271                 case VK_BLEND_OP_PLUS_DARKER_EXT:                       return "VK_BLEND_OP_PLUS_DARKER_EXT";
1272                 case VK_BLEND_OP_MINUS_EXT:                                     return "VK_BLEND_OP_MINUS_EXT";
1273                 case VK_BLEND_OP_MINUS_CLAMPED_EXT:                     return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
1274                 case VK_BLEND_OP_CONTRAST_EXT:                          return "VK_BLEND_OP_CONTRAST_EXT";
1275                 case VK_BLEND_OP_INVERT_OVG_EXT:                        return "VK_BLEND_OP_INVERT_OVG_EXT";
1276                 case VK_BLEND_OP_RED_EXT:                                       return "VK_BLEND_OP_RED_EXT";
1277                 case VK_BLEND_OP_GREEN_EXT:                                     return "VK_BLEND_OP_GREEN_EXT";
1278                 case VK_BLEND_OP_BLUE_EXT:                                      return "VK_BLEND_OP_BLUE_EXT";
1279                 case VK_BLEND_OP_MAX_ENUM:                                      return "VK_BLEND_OP_MAX_ENUM";
1280                 default:                                                                        return DE_NULL;
1281         }
1282 }
1283
1284 const char* getCompareOpName (VkCompareOp value)
1285 {
1286         switch (value)
1287         {
1288                 case VK_COMPARE_OP_NEVER:                               return "VK_COMPARE_OP_NEVER";
1289                 case VK_COMPARE_OP_LESS:                                return "VK_COMPARE_OP_LESS";
1290                 case VK_COMPARE_OP_EQUAL:                               return "VK_COMPARE_OP_EQUAL";
1291                 case VK_COMPARE_OP_LESS_OR_EQUAL:               return "VK_COMPARE_OP_LESS_OR_EQUAL";
1292                 case VK_COMPARE_OP_GREATER:                             return "VK_COMPARE_OP_GREATER";
1293                 case VK_COMPARE_OP_NOT_EQUAL:                   return "VK_COMPARE_OP_NOT_EQUAL";
1294                 case VK_COMPARE_OP_GREATER_OR_EQUAL:    return "VK_COMPARE_OP_GREATER_OR_EQUAL";
1295                 case VK_COMPARE_OP_ALWAYS:                              return "VK_COMPARE_OP_ALWAYS";
1296                 case VK_COMPARE_OP_MAX_ENUM:                    return "VK_COMPARE_OP_MAX_ENUM";
1297                 default:                                                                return DE_NULL;
1298         }
1299 }
1300
1301 const char* getDynamicStateName (VkDynamicState value)
1302 {
1303         switch (value)
1304         {
1305                 case VK_DYNAMIC_STATE_VIEWPORT:                                                         return "VK_DYNAMIC_STATE_VIEWPORT";
1306                 case VK_DYNAMIC_STATE_SCISSOR:                                                          return "VK_DYNAMIC_STATE_SCISSOR";
1307                 case VK_DYNAMIC_STATE_LINE_WIDTH:                                                       return "VK_DYNAMIC_STATE_LINE_WIDTH";
1308                 case VK_DYNAMIC_STATE_DEPTH_BIAS:                                                       return "VK_DYNAMIC_STATE_DEPTH_BIAS";
1309                 case VK_DYNAMIC_STATE_BLEND_CONSTANTS:                                          return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
1310                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                                                     return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
1311                 case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:                                     return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
1312                 case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:                                       return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
1313                 case VK_DYNAMIC_STATE_STENCIL_REFERENCE:                                        return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
1314                 case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:                            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
1315                 case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:                            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
1316                 case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:                                     return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
1317                 case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:      return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
1318                 case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:         return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
1319                 case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:          return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
1320                 case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                     return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
1321                 case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                        return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
1322                 case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                         return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
1323                 case VK_DYNAMIC_STATE_CULL_MODE_EXT:                                            return "VK_DYNAMIC_STATE_CULL_MODE_EXT";
1324                 case VK_DYNAMIC_STATE_FRONT_FACE_EXT:                                           return "VK_DYNAMIC_STATE_FRONT_FACE_EXT";
1325                 case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT:                           return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT";
1326                 case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT:                          return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT";
1327                 case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT:                           return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT";
1328                 case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT:          return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT";
1329                 case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT:                            return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT";
1330                 case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT:                           return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT";
1331                 case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT:                                     return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT";
1332                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT:                     return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT";
1333                 case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT:                          return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT";
1334                 case VK_DYNAMIC_STATE_STENCIL_OP_EXT:                                           return "VK_DYNAMIC_STATE_STENCIL_OP_EXT";
1335                 case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:                                         return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
1336                 case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:                         return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
1337                 case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT:            return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT";
1338                 case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT:                            return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT";
1339                 case VK_DYNAMIC_STATE_LOGIC_OP_EXT:                                                     return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
1340                 case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT:                     return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT";
1341                 case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:                           return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
1342                 case VK_DYNAMIC_STATE_MAX_ENUM:                                                         return "VK_DYNAMIC_STATE_MAX_ENUM";
1343                 default:                                                                                                        return DE_NULL;
1344         }
1345 }
1346
1347 const char* getFrontFaceName (VkFrontFace value)
1348 {
1349         switch (value)
1350         {
1351                 case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
1352                 case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
1353                 case VK_FRONT_FACE_MAX_ENUM:                    return "VK_FRONT_FACE_MAX_ENUM";
1354                 default:                                                                return DE_NULL;
1355         }
1356 }
1357
1358 const char* getVertexInputRateName (VkVertexInputRate value)
1359 {
1360         switch (value)
1361         {
1362                 case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
1363                 case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
1364                 case VK_VERTEX_INPUT_RATE_MAX_ENUM:     return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
1365                 default:                                                        return DE_NULL;
1366         }
1367 }
1368
1369 const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1370 {
1371         switch (value)
1372         {
1373                 case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1374                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1375                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1376                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1377                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1378                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1379                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1380                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1381                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1382                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1383                 case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1384                 case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:                                            return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
1385                 default:                                                                                                        return DE_NULL;
1386         }
1387 }
1388
1389 const char* getPolygonModeName (VkPolygonMode value)
1390 {
1391         switch (value)
1392         {
1393                 case VK_POLYGON_MODE_FILL:                              return "VK_POLYGON_MODE_FILL";
1394                 case VK_POLYGON_MODE_LINE:                              return "VK_POLYGON_MODE_LINE";
1395                 case VK_POLYGON_MODE_POINT:                             return "VK_POLYGON_MODE_POINT";
1396                 case VK_POLYGON_MODE_FILL_RECTANGLE_NV: return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
1397                 case VK_POLYGON_MODE_MAX_ENUM:                  return "VK_POLYGON_MODE_MAX_ENUM";
1398                 default:                                                                return DE_NULL;
1399         }
1400 }
1401
1402 const char* getStencilOpName (VkStencilOp value)
1403 {
1404         switch (value)
1405         {
1406                 case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
1407                 case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
1408                 case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
1409                 case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1410                 case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1411                 case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
1412                 case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1413                 case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1414                 case VK_STENCIL_OP_MAX_ENUM:                    return "VK_STENCIL_OP_MAX_ENUM";
1415                 default:                                                                return DE_NULL;
1416         }
1417 }
1418
1419 const char* getLogicOpName (VkLogicOp value)
1420 {
1421         switch (value)
1422         {
1423                 case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
1424                 case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
1425                 case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
1426                 case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
1427                 case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
1428                 case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
1429                 case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
1430                 case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
1431                 case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
1432                 case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
1433                 case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
1434                 case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
1435                 case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
1436                 case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
1437                 case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
1438                 case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
1439                 case VK_LOGIC_OP_MAX_ENUM:              return "VK_LOGIC_OP_MAX_ENUM";
1440                 default:                                                return DE_NULL;
1441         }
1442 }
1443
1444 const char* getBorderColorName (VkBorderColor value)
1445 {
1446         switch (value)
1447         {
1448                 case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
1449                 case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
1450                 case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
1451                 case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
1452                 case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
1453                 case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
1454                 case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
1455                 case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
1456                 case VK_BORDER_COLOR_MAX_ENUM:                                  return "VK_BORDER_COLOR_MAX_ENUM";
1457                 default:                                                                                return DE_NULL;
1458         }
1459 }
1460
1461 const char* getFilterName (VkFilter value)
1462 {
1463         switch (value)
1464         {
1465                 case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
1466                 case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
1467                 case VK_FILTER_CUBIC_IMG:       return "VK_FILTER_CUBIC_IMG";
1468                 case VK_FILTER_MAX_ENUM:        return "VK_FILTER_MAX_ENUM";
1469                 default:                                        return DE_NULL;
1470         }
1471 }
1472
1473 const char* getSamplerAddressModeName (VkSamplerAddressMode value)
1474 {
1475         switch (value)
1476         {
1477                 case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
1478                 case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
1479                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
1480                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
1481                 case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
1482                 case VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:                          return "VK_SAMPLER_ADDRESS_MODE_MAX_ENUM";
1483                 default:                                                                                        return DE_NULL;
1484         }
1485 }
1486
1487 const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
1488 {
1489         switch (value)
1490         {
1491                 case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
1492                 case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
1493                 case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:   return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
1494                 default:                                                                return DE_NULL;
1495         }
1496 }
1497
1498 const char* getDescriptorTypeName (VkDescriptorType value)
1499 {
1500         switch (value)
1501         {
1502                 case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
1503                 case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
1504                 case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
1505                 case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
1506                 case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
1507                 case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
1508                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
1509                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
1510                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
1511                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
1512                 case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
1513                 case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:       return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT";
1514                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
1515                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
1516                 case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:                          return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
1517                 case VK_DESCRIPTOR_TYPE_MAX_ENUM:                                       return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
1518                 default:                                                                                        return DE_NULL;
1519         }
1520 }
1521
1522 const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
1523 {
1524         switch (value)
1525         {
1526                 case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
1527                 case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
1528                 case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
1529                 case VK_ATTACHMENT_LOAD_OP_MAX_ENUM:    return "VK_ATTACHMENT_LOAD_OP_MAX_ENUM";
1530                 default:                                                                return DE_NULL;
1531         }
1532 }
1533
1534 const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
1535 {
1536         switch (value)
1537         {
1538                 case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
1539                 case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
1540                 case VK_ATTACHMENT_STORE_OP_NONE_QCOM:  return "VK_ATTACHMENT_STORE_OP_NONE_QCOM";
1541                 case VK_ATTACHMENT_STORE_OP_MAX_ENUM:   return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
1542                 default:                                                                return DE_NULL;
1543         }
1544 }
1545
1546 const char* getPipelineBindPointName (VkPipelineBindPoint value)
1547 {
1548         switch (value)
1549         {
1550                 case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1551                 case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
1552                 case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1553                 case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1554                 case VK_PIPELINE_BIND_POINT_MAX_ENUM:                           return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
1555                 default:                                                                                        return DE_NULL;
1556         }
1557 }
1558
1559 const char* getCommandBufferLevelName (VkCommandBufferLevel value)
1560 {
1561         switch (value)
1562         {
1563                 case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
1564                 case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
1565                 case VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:  return "VK_COMMAND_BUFFER_LEVEL_MAX_ENUM";
1566                 default:                                                                return DE_NULL;
1567         }
1568 }
1569
1570 const char* getIndexTypeName (VkIndexType value)
1571 {
1572         switch (value)
1573         {
1574                 case VK_INDEX_TYPE_UINT16:              return "VK_INDEX_TYPE_UINT16";
1575                 case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
1576                 case VK_INDEX_TYPE_NONE_KHR:    return "VK_INDEX_TYPE_NONE_KHR";
1577                 case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
1578                 case VK_INDEX_TYPE_MAX_ENUM:    return "VK_INDEX_TYPE_MAX_ENUM";
1579                 default:                                                return DE_NULL;
1580         }
1581 }
1582
1583 const char* getSubpassContentsName (VkSubpassContents value)
1584 {
1585         switch (value)
1586         {
1587                 case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
1588                 case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1589                 case VK_SUBPASS_CONTENTS_MAX_ENUM:                                      return "VK_SUBPASS_CONTENTS_MAX_ENUM";
1590                 default:                                                                                        return DE_NULL;
1591         }
1592 }
1593
1594 const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
1595 {
1596         switch (value)
1597         {
1598                 case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
1599                 case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
1600                 case VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM:                               return "VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM";
1601                 default:                                                                                                return DE_NULL;
1602         }
1603 }
1604
1605 const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
1606 {
1607         switch (value)
1608         {
1609                 case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
1610                 case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
1611                 case VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM:    return "VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM";
1612                 default:                                                                                return DE_NULL;
1613         }
1614 }
1615
1616 const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
1617 {
1618         switch (value)
1619         {
1620                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
1621                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
1622                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
1623                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
1624                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
1625                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM:                return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM";
1626                 default:                                                                                                return DE_NULL;
1627         }
1628 }
1629
1630 const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
1631 {
1632         switch (value)
1633         {
1634                 case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
1635                 case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
1636                 case VK_SAMPLER_YCBCR_RANGE_MAX_ENUM:   return "VK_SAMPLER_YCBCR_RANGE_MAX_ENUM";
1637                 default:                                                                return DE_NULL;
1638         }
1639 }
1640
1641 const char* getChromaLocationName (VkChromaLocation value)
1642 {
1643         switch (value)
1644         {
1645                 case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
1646                 case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
1647                 case VK_CHROMA_LOCATION_MAX_ENUM:               return "VK_CHROMA_LOCATION_MAX_ENUM";
1648                 default:                                                                return DE_NULL;
1649         }
1650 }
1651
1652 const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
1653 {
1654         switch (value)
1655         {
1656                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
1657                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
1658                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM:                               return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM";
1659                 default:                                                                                                                return DE_NULL;
1660         }
1661 }
1662
1663 const char* getDriverIdName (VkDriverId value)
1664 {
1665         switch (value)
1666         {
1667                 case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
1668                 case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
1669                 case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
1670                 case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
1671                 case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
1672                 case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
1673                 case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
1674                 case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
1675                 case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
1676                 case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
1677                 case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
1678                 case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
1679                 case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
1680                 case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
1681                 case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
1682                 case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
1683                 case VK_DRIVER_ID_MAX_ENUM:                                             return "VK_DRIVER_ID_MAX_ENUM";
1684                 default:                                                                                return DE_NULL;
1685         }
1686 }
1687
1688 const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
1689 {
1690         switch (value)
1691         {
1692                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
1693                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
1694                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
1695                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM:    return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM";
1696                 default:                                                                                                return DE_NULL;
1697         }
1698 }
1699
1700 const char* getSamplerReductionModeName (VkSamplerReductionMode value)
1701 {
1702         switch (value)
1703         {
1704                 case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
1705                 case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
1706                 case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
1707                 case VK_SAMPLER_REDUCTION_MODE_MAX_ENUM:                        return "VK_SAMPLER_REDUCTION_MODE_MAX_ENUM";
1708                 default:                                                                                        return DE_NULL;
1709         }
1710 }
1711
1712 const char* getSemaphoreTypeName (VkSemaphoreType value)
1713 {
1714         switch (value)
1715         {
1716                 case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
1717                 case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
1718                 case VK_SEMAPHORE_TYPE_MAX_ENUM:        return "VK_SEMAPHORE_TYPE_MAX_ENUM";
1719                 default:                                                        return DE_NULL;
1720         }
1721 }
1722
1723 const char* getPresentModeKHRName (VkPresentModeKHR value)
1724 {
1725         switch (value)
1726         {
1727                 case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
1728                 case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
1729                 case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
1730                 case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
1731                 case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
1732                 case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
1733                 case VK_PRESENT_MODE_MAX_ENUM_KHR:                                      return "VK_PRESENT_MODE_MAX_ENUM_KHR";
1734                 default:                                                                                        return DE_NULL;
1735         }
1736 }
1737
1738 const char* getColorSpaceKHRName (VkColorSpaceKHR value)
1739 {
1740         switch (value)
1741         {
1742                 case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                         return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
1743                 case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:           return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
1744                 case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:           return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
1745                 case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
1746                 case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:                       return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
1747                 case VK_COLOR_SPACE_BT709_LINEAR_EXT:                           return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
1748                 case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                        return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
1749                 case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                          return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
1750                 case VK_COLOR_SPACE_HDR10_ST2084_EXT:                           return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
1751                 case VK_COLOR_SPACE_DOLBYVISION_EXT:                            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
1752                 case VK_COLOR_SPACE_HDR10_HLG_EXT:                                      return "VK_COLOR_SPACE_HDR10_HLG_EXT";
1753                 case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                        return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
1754                 case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:                     return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
1755                 case VK_COLOR_SPACE_PASS_THROUGH_EXT:                           return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
1756                 case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:        return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
1757                 case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
1758                 case VK_COLOR_SPACE_MAX_ENUM_KHR:                                       return "VK_COLOR_SPACE_MAX_ENUM_KHR";
1759                 default:                                                                                        return DE_NULL;
1760         }
1761 }
1762
1763 const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
1764 {
1765         switch (value)
1766         {
1767                 case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
1768                 case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
1769                 case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
1770                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
1771                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
1772                 case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
1773                 case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
1774                 case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
1775                 case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
1776                 case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
1777                 case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
1778                 case VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR:                  return "VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR";
1779                 default:                                                                                                return DE_NULL;
1780         }
1781 }
1782
1783 const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
1784 {
1785         switch (value)
1786         {
1787                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
1788                 case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
1789                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
1790                 case VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR:                 return "VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR";
1791                 default:                                                                                                return DE_NULL;
1792         }
1793 }
1794
1795 const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
1796 {
1797         switch (value)
1798         {
1799                 case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
1800                 case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
1801                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
1802                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
1803                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
1804                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
1805                 case VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR:       return "VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR";
1806                 default:                                                                                        return DE_NULL;
1807         }
1808 }
1809
1810 const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
1811 {
1812         switch (value)
1813         {
1814                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
1815                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
1816                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
1817                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
1818                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
1819                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR: return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR";
1820                 default:                                                                                                return DE_NULL;
1821         }
1822 }
1823
1824 const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
1825 {
1826         switch (value)
1827         {
1828                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
1829                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
1830                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
1831                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
1832                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR:      return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR";
1833                 default:                                                                                                        return DE_NULL;
1834         }
1835 }
1836
1837 const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
1838 {
1839         switch (value)
1840         {
1841                 case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
1842                 case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
1843                 case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
1844                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
1845                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
1846                 case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
1847                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
1848                 case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
1849                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
1850                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
1851                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
1852                 case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
1853                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
1854                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
1855                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
1856                 case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
1857                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
1858                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
1859                 case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
1860                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
1861                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
1862                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
1863                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
1864                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
1865                 case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
1866                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
1867                 case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
1868                 case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
1869                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
1870                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
1871                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
1872                 case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
1873                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
1874                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
1875                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
1876                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
1877                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
1878                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
1879                 case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
1880                 default:                                                                                                                        return DE_NULL;
1881         }
1882 }
1883
1884 const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
1885 {
1886         switch (value)
1887         {
1888                 case VK_RASTERIZATION_ORDER_STRICT_AMD:         return "VK_RASTERIZATION_ORDER_STRICT_AMD";
1889                 case VK_RASTERIZATION_ORDER_RELAXED_AMD:        return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
1890                 case VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:       return "VK_RASTERIZATION_ORDER_MAX_ENUM_AMD";
1891                 default:                                                                        return DE_NULL;
1892         }
1893 }
1894
1895 const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
1896 {
1897         switch (value)
1898         {
1899                 case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
1900                 case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
1901                 case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
1902                 case VK_SHADER_INFO_TYPE_MAX_ENUM_AMD:          return "VK_SHADER_INFO_TYPE_MAX_ENUM_AMD";
1903                 default:                                                                        return DE_NULL;
1904         }
1905 }
1906
1907 const char* getValidationCheckEXTName (VkValidationCheckEXT value)
1908 {
1909         switch (value)
1910         {
1911                 case VK_VALIDATION_CHECK_ALL_EXT:               return "VK_VALIDATION_CHECK_ALL_EXT";
1912                 case VK_VALIDATION_CHECK_SHADERS_EXT:   return "VK_VALIDATION_CHECK_SHADERS_EXT";
1913                 case VK_VALIDATION_CHECK_MAX_ENUM_EXT:  return "VK_VALIDATION_CHECK_MAX_ENUM_EXT";
1914                 default:                                                                return DE_NULL;
1915         }
1916 }
1917
1918 const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
1919 {
1920         switch (value)
1921         {
1922                 case VK_DISPLAY_POWER_STATE_OFF_EXT:            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
1923                 case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:        return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
1924                 case VK_DISPLAY_POWER_STATE_ON_EXT:                     return "VK_DISPLAY_POWER_STATE_ON_EXT";
1925                 case VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT:       return "VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT";
1926                 default:                                                                        return DE_NULL;
1927         }
1928 }
1929
1930 const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
1931 {
1932         switch (value)
1933         {
1934                 case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
1935                 case VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT:                 return "VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT";
1936                 default:                                                                                return DE_NULL;
1937         }
1938 }
1939
1940 const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
1941 {
1942         switch (value)
1943         {
1944                 case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
1945                 case VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT:                return "VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT";
1946                 default:                                                                                return DE_NULL;
1947         }
1948 }
1949
1950 const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
1951 {
1952         switch (value)
1953         {
1954                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
1955                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
1956                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
1957                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
1958                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
1959                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
1960                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
1961                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
1962                 case VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV:        return "VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV";
1963                 default:                                                                                        return DE_NULL;
1964         }
1965 }
1966
1967 const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
1968 {
1969         switch (value)
1970         {
1971                 case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
1972                 case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
1973                 case VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT:    return "VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT";
1974                 default:                                                                                return DE_NULL;
1975         }
1976 }
1977
1978 const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
1979 {
1980         switch (value)
1981         {
1982                 case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
1983                 case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
1984                 case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
1985                 case VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT";
1986                 default:                                                                                                        return DE_NULL;
1987         }
1988 }
1989
1990 const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
1991 {
1992         switch (value)
1993         {
1994                 case VK_BLEND_OVERLAP_UNCORRELATED_EXT: return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
1995                 case VK_BLEND_OVERLAP_DISJOINT_EXT:             return "VK_BLEND_OVERLAP_DISJOINT_EXT";
1996                 case VK_BLEND_OVERLAP_CONJOINT_EXT:             return "VK_BLEND_OVERLAP_CONJOINT_EXT";
1997                 case VK_BLEND_OVERLAP_MAX_ENUM_EXT:             return "VK_BLEND_OVERLAP_MAX_ENUM_EXT";
1998                 default:                                                                return DE_NULL;
1999         }
2000 }
2001
2002 const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2003 {
2004         switch (value)
2005         {
2006                 case VK_COVERAGE_MODULATION_MODE_NONE_NV:               return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2007                 case VK_COVERAGE_MODULATION_MODE_RGB_NV:                return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2008                 case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:              return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2009                 case VK_COVERAGE_MODULATION_MODE_RGBA_NV:               return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2010                 case VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV:   return "VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV";
2011                 default:                                                                                return DE_NULL;
2012         }
2013 }
2014
2015 const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2016 {
2017         switch (value)
2018         {
2019                 case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:                return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2020                 case VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT:   return "VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT";
2021                 default:                                                                                                return DE_NULL;
2022         }
2023 }
2024
2025 const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
2026 {
2027         switch (value)
2028         {
2029                 case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
2030                 case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
2031                 case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
2032                 case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
2033                 case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
2034                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
2035                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
2036                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
2037                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
2038                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
2039                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
2040                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
2041                 case VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV:                                         return "VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV";
2042                 default:                                                                                                                        return DE_NULL;
2043         }
2044 }
2045
2046 const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
2047 {
2048         switch (value)
2049         {
2050                 case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
2051                 case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
2052                 case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
2053                 case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
2054                 case VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV:           return "VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV";
2055                 default:                                                                                        return DE_NULL;
2056         }
2057 }
2058
2059 const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2060 {
2061         switch (value)
2062         {
2063                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2064                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2065                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2066                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:                             return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
2067                 default:                                                                                                                return DE_NULL;
2068         }
2069 }
2070
2071 const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2072 {
2073         switch (value)
2074         {
2075                 case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2076                 case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
2077                 case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2078                 case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:             return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
2079                 default:                                                                return DE_NULL;
2080         }
2081 }
2082
2083 const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2084 {
2085         switch (value)
2086         {
2087                 case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2088                 case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2089                 case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2090                 case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:               return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
2091                 default:                                                                                                return DE_NULL;
2092         }
2093 }
2094
2095 const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2096 {
2097         switch (value)
2098         {
2099                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2100                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2101                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2102                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2103                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:          return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2104                 default:                                                                                                        return DE_NULL;
2105         }
2106 }
2107
2108 const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2109 {
2110         switch (value)
2111         {
2112                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2113                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2114                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2115                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
2116                 default:                                                                                                                                        return DE_NULL;
2117         }
2118 }
2119
2120 const char* getQueueGlobalPriorityEXTName (VkQueueGlobalPriorityEXT value)
2121 {
2122         switch (value)
2123         {
2124                 case VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT";
2125                 case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT";
2126                 case VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT";
2127                 case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT";
2128                 case VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT:     return "VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT";
2129                 default:                                                                        return DE_NULL;
2130         }
2131 }
2132
2133 const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2134 {
2135         switch (value)
2136         {
2137                 case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
2138                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2139                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2140                 case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2141                 case VK_TIME_DOMAIN_MAX_ENUM_EXT:                                       return "VK_TIME_DOMAIN_MAX_ENUM_EXT";
2142                 default:                                                                                        return DE_NULL;
2143         }
2144 }
2145
2146 const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2147 {
2148         switch (value)
2149         {
2150                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2151                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2152                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2153                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD:    return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD";
2154                 default:                                                                                                return DE_NULL;
2155         }
2156 }
2157
2158 const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2159 {
2160         switch (value)
2161         {
2162                 case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2163                 case VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL:                                                                  return "VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL";
2164                 default:                                                                                                                                                                return DE_NULL;
2165         }
2166 }
2167
2168 const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2169 {
2170         switch (value)
2171         {
2172                 case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:          return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2173                 case VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL:        return "VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL";
2174                 default:                                                                                        return DE_NULL;
2175         }
2176 }
2177
2178 const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2179 {
2180         switch (value)
2181         {
2182                 case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2183                 case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2184                 case VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL:                       return "VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL";
2185                 default:                                                                                                        return DE_NULL;
2186         }
2187 }
2188
2189 const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2190 {
2191         switch (value)
2192         {
2193                 case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2194                 case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2195                 case VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL:                                      return "VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL";
2196                 default:                                                                                                                        return DE_NULL;
2197         }
2198 }
2199
2200 const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2201 {
2202         switch (value)
2203         {
2204                 case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2205                 case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2206                 case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2207                 case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2208                 case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2209                 case VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL:  return "VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL";
2210                 default:                                                                                return DE_NULL;
2211         }
2212 }
2213
2214 const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
2215 {
2216         switch (value)
2217         {
2218                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
2219                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
2220                 case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
2221                 case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
2222                 case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
2223                 case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:                                                         return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
2224                 default:                                                                                                                                        return DE_NULL;
2225         }
2226 }
2227
2228 const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
2229 {
2230         switch (value)
2231         {
2232                 case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
2233                 case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
2234                 case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
2235                 case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
2236                 case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
2237                 case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
2238                 case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
2239                 case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
2240                 case VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT:                                return "VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT";
2241                 default:                                                                                                                return DE_NULL;
2242         }
2243 }
2244
2245 const char* getComponentTypeNVName (VkComponentTypeNV value)
2246 {
2247         switch (value)
2248         {
2249                 case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
2250                 case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
2251                 case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
2252                 case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
2253                 case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
2254                 case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
2255                 case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
2256                 case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
2257                 case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
2258                 case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
2259                 case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
2260                 case VK_COMPONENT_TYPE_MAX_ENUM_NV:     return "VK_COMPONENT_TYPE_MAX_ENUM_NV";
2261                 default:                                                        return DE_NULL;
2262         }
2263 }
2264
2265 const char* getScopeNVName (VkScopeNV value)
2266 {
2267         switch (value)
2268         {
2269                 case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
2270                 case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
2271                 case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
2272                 case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
2273                 case VK_SCOPE_MAX_ENUM_NV:              return "VK_SCOPE_MAX_ENUM_NV";
2274                 default:                                                return DE_NULL;
2275         }
2276 }
2277
2278 const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2279 {
2280         switch (value)
2281         {
2282                 case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2283                 case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2284                 case VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV:    return "VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV";
2285                 default:                                                                                return DE_NULL;
2286         }
2287 }
2288
2289 const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
2290 {
2291         switch (value)
2292         {
2293                 case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
2294                 case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
2295                 case VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT:             return "VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT";
2296                 default:                                                                                return DE_NULL;
2297         }
2298 }
2299
2300 const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2301 {
2302         switch (value)
2303         {
2304                 case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2305                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2306                 case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2307                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2308                 case VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT:                   return "VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2309                 default:                                                                                                return DE_NULL;
2310         }
2311 }
2312
2313 const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2314 {
2315         switch (value)
2316         {
2317                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2318                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:    return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2319                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2320                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2321                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2322                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2323                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2324                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:             return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2325                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:               return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
2326                 default:                                                                                                return DE_NULL;
2327         }
2328 }
2329
2330 const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
2331 {
2332         switch (value)
2333         {
2334                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
2335                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
2336                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
2337                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
2338                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
2339                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT";
2340                 default:                                                                                                                return DE_NULL;
2341         }
2342 }
2343
2344 const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2345 {
2346         switch (value)
2347         {
2348                 case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2349                 case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2350                 case VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV:                 return "VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV";
2351                 default:                                                                                                return DE_NULL;
2352         }
2353 }
2354
2355 const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2356 {
2357         switch (value)
2358         {
2359                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2360                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2361                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2362                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2363                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2364                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2365                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2366                 case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2367                 case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2368                 case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2369                 case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2370                 case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2371                 case VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV:                                              return "VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV";
2372                 default:                                                                                                                return DE_NULL;
2373         }
2374 }
2375
2376 const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
2377 {
2378         switch (value)
2379         {
2380                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
2381                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
2382                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
2383                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV:                return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV";
2384                 default:                                                                                                                                return DE_NULL;
2385         }
2386 }
2387
2388 const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2389 {
2390         switch (value)
2391         {
2392                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2393                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2394                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR: return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2395                 default:                                                                                                return DE_NULL;
2396         }
2397 }
2398
2399 const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2400 {
2401         switch (value)
2402         {
2403                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:                             return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2404                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:                   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2405                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2406                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:                 return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
2407                 default:                                                                                                                return DE_NULL;
2408         }
2409 }
2410
2411 const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2412 {
2413         switch (value)
2414         {
2415                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:    return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2416                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:  return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2417                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR:              return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR";
2418                 default:                                                                                                                return DE_NULL;
2419         }
2420 }
2421
2422 const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2423 {
2424         switch (value)
2425         {
2426                 case VK_SHADER_GROUP_SHADER_GENERAL_KHR:                return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2427                 case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:    return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2428                 case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:                return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2429                 case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:   return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2430                 case VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR:               return "VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR";
2431                 default:                                                                                return DE_NULL;
2432         }
2433 }
2434
2435 const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
2436 {
2437         switch (value)
2438         {
2439                 case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
2440                 case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
2441                 case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
2442                 case VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR:       return "VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR";
2443                 default:                                                                        return DE_NULL;
2444         }
2445 }
2446
2447 const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
2448 {
2449         switch (value)
2450         {
2451                 case std_video_h264_chroma_format_idc_monochrome:       return "std_video_h264_chroma_format_idc_monochrome";
2452                 case std_video_h264_chroma_format_idc_420:                      return "std_video_h264_chroma_format_idc_420";
2453                 case std_video_h264_chroma_format_idc_422:                      return "std_video_h264_chroma_format_idc_422";
2454                 case std_video_h264_chroma_format_idc_444:                      return "std_video_h264_chroma_format_idc_444";
2455                 default:                                                                                        return DE_NULL;
2456         }
2457 }
2458
2459 const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
2460 {
2461         switch (value)
2462         {
2463                 case std_video_h264_profile_idc_baseline:                               return "std_video_h264_profile_idc_baseline";
2464                 case std_video_h264_profile_idc_main:                                   return "std_video_h264_profile_idc_main";
2465                 case std_video_h264_profile_idc_high:                                   return "std_video_h264_profile_idc_high";
2466                 case std_video_h264_profile_idc_high_444_predictive:    return "std_video_h264_profile_idc_high_444_predictive";
2467                 case std_video_h264_profile_idc_invalid:                                return "std_video_h264_profile_idc_invalid";
2468                 default:                                                                                                return DE_NULL;
2469         }
2470 }
2471
2472 const char* getdVideoH264LevelName (StdVideoH264Level value)
2473 {
2474         switch (value)
2475         {
2476                 case std_video_h264_level_1_0:          return "std_video_h264_level_1_0";
2477                 case std_video_h264_level_1_1:          return "std_video_h264_level_1_1";
2478                 case std_video_h264_level_1_2:          return "std_video_h264_level_1_2";
2479                 case std_video_h264_level_1_3:          return "std_video_h264_level_1_3";
2480                 case std_video_h264_level_2_0:          return "std_video_h264_level_2_0";
2481                 case std_video_h264_level_2_1:          return "std_video_h264_level_2_1";
2482                 case std_video_h264_level_2_2:          return "std_video_h264_level_2_2";
2483                 case std_video_h264_level_3_0:          return "std_video_h264_level_3_0";
2484                 case std_video_h264_level_3_1:          return "std_video_h264_level_3_1";
2485                 case std_video_h264_level_3_2:          return "std_video_h264_level_3_2";
2486                 case std_video_h264_level_4_0:          return "std_video_h264_level_4_0";
2487                 case std_video_h264_level_4_1:          return "std_video_h264_level_4_1";
2488                 case std_video_h264_level_4_2:          return "std_video_h264_level_4_2";
2489                 case std_video_h264_level_5_0:          return "std_video_h264_level_5_0";
2490                 case std_video_h264_level_5_1:          return "std_video_h264_level_5_1";
2491                 case std_video_h264_level_5_2:          return "std_video_h264_level_5_2";
2492                 case std_video_h264_level_6_0:          return "std_video_h264_level_6_0";
2493                 case std_video_h264_level_6_1:          return "std_video_h264_level_6_1";
2494                 case std_video_h264_level_6_2:          return "std_video_h264_level_6_2";
2495                 case std_video_h264_level_invalid:      return "std_video_h264_level_invalid";
2496                 default:                                                        return DE_NULL;
2497         }
2498 }
2499
2500 const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
2501 {
2502         switch (value)
2503         {
2504                 case std_video_h264_poc_type_0:                 return "std_video_h264_poc_type_0";
2505                 case std_video_h264_poc_type_1:                 return "std_video_h264_poc_type_1";
2506                 case std_video_h264_poc_type_2:                 return "std_video_h264_poc_type_2";
2507                 case std_video_h264_poc_type_invalid:   return "std_video_h264_poc_type_invalid";
2508                 default:                                                                return DE_NULL;
2509         }
2510 }
2511
2512 const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
2513 {
2514         switch (value)
2515         {
2516                 case std_video_h264_aspect_ratio_idc_unspecified:       return "std_video_h264_aspect_ratio_idc_unspecified";
2517                 case std_video_h264_aspect_ratio_idc_square:            return "std_video_h264_aspect_ratio_idc_square";
2518                 case std_video_h264_aspect_ratio_idc_12_11:                     return "std_video_h264_aspect_ratio_idc_12_11";
2519                 case std_video_h264_aspect_ratio_idc_10_11:                     return "std_video_h264_aspect_ratio_idc_10_11";
2520                 case std_video_h264_aspect_ratio_idc_16_11:                     return "std_video_h264_aspect_ratio_idc_16_11";
2521                 case std_video_h264_aspect_ratio_idc_40_33:                     return "std_video_h264_aspect_ratio_idc_40_33";
2522                 case std_video_h264_aspect_ratio_idc_24_11:                     return "std_video_h264_aspect_ratio_idc_24_11";
2523                 case std_video_h264_aspect_ratio_idc_20_11:                     return "std_video_h264_aspect_ratio_idc_20_11";
2524                 case std_video_h264_aspect_ratio_idc_32_11:                     return "std_video_h264_aspect_ratio_idc_32_11";
2525                 case std_video_h264_aspect_ratio_idc_80_33:                     return "std_video_h264_aspect_ratio_idc_80_33";
2526                 case std_video_h264_aspect_ratio_idc_18_11:                     return "std_video_h264_aspect_ratio_idc_18_11";
2527                 case std_video_h264_aspect_ratio_idc_15_11:                     return "std_video_h264_aspect_ratio_idc_15_11";
2528                 case std_video_h264_aspect_ratio_idc_64_33:                     return "std_video_h264_aspect_ratio_idc_64_33";
2529                 case std_video_h264_aspect_ratio_idc_160_99:            return "std_video_h264_aspect_ratio_idc_160_99";
2530                 case std_video_h264_aspect_ratio_idc_4_3:                       return "std_video_h264_aspect_ratio_idc_4_3";
2531                 case std_video_h264_aspect_ratio_idc_3_2:                       return "std_video_h264_aspect_ratio_idc_3_2";
2532                 case std_video_h264_aspect_ratio_idc_2_1:                       return "std_video_h264_aspect_ratio_idc_2_1";
2533                 case std_video_h264_aspect_ratio_idc_extended_sar:      return "std_video_h264_aspect_ratio_idc_extended_sar";
2534                 case std_video_h264_aspect_ratio_idc_invalid:           return "std_video_h264_aspect_ratio_idc_invalid";
2535                 default:                                                                                        return DE_NULL;
2536         }
2537 }
2538
2539 const char* getdVideoH264WeightedBiPredIdcName (StdVideoH264WeightedBiPredIdc value)
2540 {
2541         switch (value)
2542         {
2543                 case std_video_h264_default_weighted_b_slices_prediction_idc:   return "std_video_h264_default_weighted_b_slices_prediction_idc";
2544                 case std_video_h264_explicit_weighted_b_slices_prediction_idc:  return "std_video_h264_explicit_weighted_b_slices_prediction_idc";
2545                 case std_video_h264_implicit_weighted_b_slices_prediction_idc:  return "std_video_h264_implicit_weighted_b_slices_prediction_idc";
2546                 case std_video_h264_invalid_weighted_b_slices_prediction_idc:   return "std_video_h264_invalid_weighted_b_slices_prediction_idc";
2547                 default:                                                                                                                return DE_NULL;
2548         }
2549 }
2550
2551 const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
2552 {
2553         switch (value)
2554         {
2555                 case std_video_h264_modification_of_pic_nums_idc_short_term_subtract:   return "std_video_h264_modification_of_pic_nums_idc_short_term_subtract";
2556                 case std_video_h264_modification_of_pic_nums_idc_short_term_add:                return "std_video_h264_modification_of_pic_nums_idc_short_term_add";
2557                 case std_video_h264_modification_of_pic_nums_idc_long_term:                             return "std_video_h264_modification_of_pic_nums_idc_long_term";
2558                 case std_video_h264_modification_of_pic_nums_idc_end:                                   return "std_video_h264_modification_of_pic_nums_idc_end";
2559                 case std_video_h264_modification_of_pic_nums_idc_invalid:                               return "std_video_h264_modification_of_pic_nums_idc_invalid";
2560                 default:                                                                                                                                return DE_NULL;
2561         }
2562 }
2563
2564 const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
2565 {
2566         switch (value)
2567         {
2568                 case std_video_h264_mem_mgmt_control_op_end:                                            return "std_video_h264_mem_mgmt_control_op_end";
2569                 case std_video_h264_mem_mgmt_control_op_unmark_short_term:                      return "std_video_h264_mem_mgmt_control_op_unmark_short_term";
2570                 case std_video_h264_mem_mgmt_control_op_unmark_long_term:                       return "std_video_h264_mem_mgmt_control_op_unmark_long_term";
2571                 case std_video_h264_mem_mgmt_control_op_mark_long_term:                         return "std_video_h264_mem_mgmt_control_op_mark_long_term";
2572                 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";
2573                 case std_video_h264_mem_mgmt_control_op_unmark_all:                                     return "std_video_h264_mem_mgmt_control_op_unmark_all";
2574                 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";
2575                 case std_video_h264_mem_mgmt_control_op_invalid:                                        return "std_video_h264_mem_mgmt_control_op_invalid";
2576                 default:                                                                                                                        return DE_NULL;
2577         }
2578 }
2579
2580 const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
2581 {
2582         switch (value)
2583         {
2584                 case std_video_h264_cabac_init_idc_0:           return "std_video_h264_cabac_init_idc_0";
2585                 case std_video_h264_cabac_init_idc_1:           return "std_video_h264_cabac_init_idc_1";
2586                 case std_video_h264_cabac_init_idc_2:           return "std_video_h264_cabac_init_idc_2";
2587                 case std_video_h264_cabac_init_idc_invalid:     return "std_video_h264_cabac_init_idc_invalid";
2588                 default:                                                                        return DE_NULL;
2589         }
2590 }
2591
2592 const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
2593 {
2594         switch (value)
2595         {
2596                 case std_video_h264_disable_deblocking_filter_idc_disabled:     return "std_video_h264_disable_deblocking_filter_idc_disabled";
2597                 case std_video_h264_disable_deblocking_filter_idc_enabled:      return "std_video_h264_disable_deblocking_filter_idc_enabled";
2598                 case std_video_h264_disable_deblocking_filter_idc_partial:      return "std_video_h264_disable_deblocking_filter_idc_partial";
2599                 case std_video_h264_disable_deblocking_filter_idc_invalid:      return "std_video_h264_disable_deblocking_filter_idc_invalid";
2600                 default:                                                                                                        return DE_NULL;
2601         }
2602 }
2603
2604 const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
2605 {
2606         switch (value)
2607         {
2608                 case std_video_h264_picture_type_i:                     return "std_video_h264_picture_type_i";
2609                 case std_video_h264_picture_type_p:                     return "std_video_h264_picture_type_p";
2610                 case std_video_h264_picture_type_b:                     return "std_video_h264_picture_type_b";
2611                 case std_video_h264_picture_type_invalid:       return "std_video_h264_picture_type_invalid";
2612                 default:                                                                        return DE_NULL;
2613         }
2614 }
2615
2616 const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
2617 {
2618         switch (value)
2619         {
2620                 case std_video_h264_slice_type_i:               return "std_video_h264_slice_type_i";
2621                 case std_video_h264_slice_type_p:               return "std_video_h264_slice_type_p";
2622                 case std_video_h264_slice_type_b:               return "std_video_h264_slice_type_b";
2623                 case std_video_h264_slice_type_invalid: return "std_video_h264_slice_type_invalid";
2624                 default:                                                                return DE_NULL;
2625         }
2626 }
2627
2628 const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
2629 {
2630         switch (value)
2631         {
2632                 case std_video_h264_non_vcl_nalu_type_sps:                              return "std_video_h264_non_vcl_nalu_type_sps";
2633                 case std_video_h264_non_vcl_nalu_type_pps:                              return "std_video_h264_non_vcl_nalu_type_pps";
2634                 case std_video_h264_non_vcl_nalu_type_aud:                              return "std_video_h264_non_vcl_nalu_type_aud";
2635                 case std_video_h264_non_vcl_nalu_type_prefix:                   return "std_video_h264_non_vcl_nalu_type_prefix";
2636                 case std_video_h264_non_vcl_nalu_type_end_of_sequence:  return "std_video_h264_non_vcl_nalu_type_end_of_sequence";
2637                 case std_video_h264_non_vcl_nalu_type_end_of_stream:    return "std_video_h264_non_vcl_nalu_type_end_of_stream";
2638                 case std_video_h264_non_vcl_nalu_type_precoded:                 return "std_video_h264_non_vcl_nalu_type_precoded";
2639                 case std_video_h264_non_vcl_nalu_type_invalid:                  return "std_video_h264_non_vcl_nalu_type_invalid";
2640                 default:                                                                                                return DE_NULL;
2641         }
2642 }
2643
2644 const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
2645 {
2646         switch (value)
2647         {
2648                 case std_video_h265_chroma_format_idc_monochrome:       return "std_video_h265_chroma_format_idc_monochrome";
2649                 case std_video_h265_chroma_format_idc_420:                      return "std_video_h265_chroma_format_idc_420";
2650                 case std_video_h265_chroma_format_idc_422:                      return "std_video_h265_chroma_format_idc_422";
2651                 case std_video_h265_chroma_format_idc_444:                      return "std_video_h265_chroma_format_idc_444";
2652                 default:                                                                                        return DE_NULL;
2653         }
2654 }
2655
2656 const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
2657 {
2658         switch (value)
2659         {
2660                 case std_video_h265_profile_idc_main:                                           return "std_video_h265_profile_idc_main";
2661                 case std_video_h265_profile_idc_main_10:                                        return "std_video_h265_profile_idc_main_10";
2662                 case std_video_h265_profile_idc_main_still_picture:                     return "std_video_h265_profile_idc_main_still_picture";
2663                 case std_video_h265_profile_idc_format_range_extensions:        return "std_video_h265_profile_idc_format_range_extensions";
2664                 case std_video_h265_profile_idc_scc_extensions:                         return "std_video_h265_profile_idc_scc_extensions";
2665                 case std_video_h265_profile_idc_invalid:                                        return "std_video_h265_profile_idc_invalid";
2666                 default:                                                                                                        return DE_NULL;
2667         }
2668 }
2669
2670 const char* getdVideoH265LevelName (StdVideoH265Level value)
2671 {
2672         switch (value)
2673         {
2674                 case std_video_h265_level_1_0:          return "std_video_h265_level_1_0";
2675                 case std_video_h265_level_2_0:          return "std_video_h265_level_2_0";
2676                 case std_video_h265_level_2_1:          return "std_video_h265_level_2_1";
2677                 case std_video_h265_level_3_0:          return "std_video_h265_level_3_0";
2678                 case std_video_h265_level_3_1:          return "std_video_h265_level_3_1";
2679                 case std_video_h265_level_4_0:          return "std_video_h265_level_4_0";
2680                 case std_video_h265_level_4_1:          return "std_video_h265_level_4_1";
2681                 case std_video_h265_level_5_0:          return "std_video_h265_level_5_0";
2682                 case std_video_h265_level_5_1:          return "std_video_h265_level_5_1";
2683                 case std_video_h265_level_5_2:          return "std_video_h265_level_5_2";
2684                 case std_video_h265_level_6_0:          return "std_video_h265_level_6_0";
2685                 case std_video_h265_level_6_1:          return "std_video_h265_level_6_1";
2686                 case std_video_h265_level_6_2:          return "std_video_h265_level_6_2";
2687                 case std_video_h265_level_invalid:      return "std_video_h265_level_invalid";
2688                 default:                                                        return DE_NULL;
2689         }
2690 }
2691
2692 const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
2693 {
2694         switch (value)
2695         {
2696                 case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
2697                 case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
2698                 case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
2699                 case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
2700                 case VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT:                                     return "VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT";
2701                 default:                                                                                                        return DE_NULL;
2702         }
2703 }
2704
2705 tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
2706 {
2707         static const tcu::Format::BitDesc s_desc[] =
2708         {
2709                 tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                                               "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
2710                 tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                                                  "VK_ACCESS_INDEX_READ_BIT"),
2711                 tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                                               "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
2712                 tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                                                "VK_ACCESS_UNIFORM_READ_BIT"),
2713                 tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
2714                 tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                                                 "VK_ACCESS_SHADER_READ_BIT"),
2715                 tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                                                "VK_ACCESS_SHADER_WRITE_BIT"),
2716                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
2717                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                              "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
2718                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                               "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
2719                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                              "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
2720                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                                               "VK_ACCESS_TRANSFER_READ_BIT"),
2721                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                                              "VK_ACCESS_TRANSFER_WRITE_BIT"),
2722                 tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                                                   "VK_ACCESS_HOST_READ_BIT"),
2723                 tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                                  "VK_ACCESS_HOST_WRITE_BIT"),
2724                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                                 "VK_ACCESS_MEMORY_READ_BIT"),
2725                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                                "VK_ACCESS_MEMORY_WRITE_BIT"),
2726                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
2727                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
2728                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
2729                 tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
2730                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
2731                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
2732                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
2733                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
2734                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
2735                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
2736                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
2737                 tcu::Format::BitDesc(VK_ACCESS_NONE_KHR,                                                                                "VK_ACCESS_NONE_KHR"),
2738                 tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,                                  "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
2739                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,                              "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
2740                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,                             "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
2741                 tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,                                                              "VK_ACCESS_FLAG_BITS_MAX_ENUM"),
2742         };
2743         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2744 }
2745
2746 tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
2747 {
2748         static const tcu::Format::BitDesc s_desc[] =
2749         {
2750                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
2751                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
2752                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
2753                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
2754                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
2755                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
2756                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
2757                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
2758                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
2759                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
2760                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
2761                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
2762                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
2763                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
2764                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,                "VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
2765         };
2766         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2767 }
2768
2769 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
2770 {
2771         static const tcu::Format::BitDesc s_desc[] =
2772         {
2773                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
2774                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
2775                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
2776                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
2777                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
2778                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                                 "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
2779                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                               "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
2780                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                                    "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
2781                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                              "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
2782                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                    "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2783                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
2784                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
2785                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
2786                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
2787                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
2788                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                             "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
2789                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                                "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
2790                 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"),
2791                 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"),
2792                 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"),
2793                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_DISJOINT_BIT"),
2794                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                              "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
2795                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
2796                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
2797                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                             "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
2798                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
2799                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                    "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
2800                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                    "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2801                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                                "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2802                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
2803                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
2804                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
2805                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
2806                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,                                                                                             "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"),
2807                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,                                                                                                 "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"),
2808                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,                                                    "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR"),
2809                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,                   "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR"),
2810                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,                   "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"),
2811                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR, "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"),
2812                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,                                                                                                                                "VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"),
2813                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,                                                                                                  "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"),
2814                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
2815                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,                                                                                                                              "VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM"),
2816         };
2817         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2818 }
2819
2820 tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
2821 {
2822         static const tcu::Format::BitDesc s_desc[] =
2823         {
2824                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                                "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
2825                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                              "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
2826                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                                "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
2827                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                                "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
2828                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                               "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
2829                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,                                                                 "VK_IMAGE_CREATE_ALIAS_BIT"),
2830                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                   "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
2831                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,                                   "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
2832                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                   "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
2833                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
2834                 tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                             "VK_IMAGE_CREATE_PROTECTED_BIT"),
2835                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                              "VK_IMAGE_CREATE_DISJOINT_BIT"),
2836                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,                                             "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
2837                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
2838                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,                                                "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
2839                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,               "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
2840                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,                               "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
2841                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,               "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
2842                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,                                    "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
2843                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,                                                  "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
2844                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,                                                             "VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
2845                 tcu::Format::BitDesc(VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,                                                "VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM"),
2846         };
2847         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2848 }
2849
2850 tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
2851 {
2852         static const tcu::Format::BitDesc s_desc[] =
2853         {
2854                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,                                     "VK_SAMPLE_COUNT_1_BIT"),
2855                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,                                     "VK_SAMPLE_COUNT_2_BIT"),
2856                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,                                     "VK_SAMPLE_COUNT_4_BIT"),
2857                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,                                     "VK_SAMPLE_COUNT_8_BIT"),
2858                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,                            "VK_SAMPLE_COUNT_16_BIT"),
2859                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,                            "VK_SAMPLE_COUNT_32_BIT"),
2860                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,                            "VK_SAMPLE_COUNT_64_BIT"),
2861                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,        "VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM"),
2862         };
2863         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2864 }
2865
2866 tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
2867 {
2868         static const tcu::Format::BitDesc s_desc[] =
2869         {
2870                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
2871                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
2872                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
2873                 tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
2874                 tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
2875                 tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2876                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
2877                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
2878                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
2879                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
2880                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
2881                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2882                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2883                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
2884                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
2885                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
2886                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
2887                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,                                  "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
2888                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,                                                 "VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
2889         };
2890         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2891 }
2892
2893 tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
2894 {
2895         static const tcu::Format::BitDesc s_desc[] =
2896         {
2897                 tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,           "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
2898                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,         "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
2899                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,     "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
2900                 tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,         "VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
2901         };
2902         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2903 }
2904
2905 tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
2906 {
2907         static const tcu::Format::BitDesc s_desc[] =
2908         {
2909                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
2910                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
2911                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
2912                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
2913                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
2914                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
2915                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
2916                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
2917                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
2918                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,                     "VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
2919         };
2920         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2921 }
2922
2923 tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
2924 {
2925         static const tcu::Format::BitDesc s_desc[] =
2926         {
2927                 tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
2928                 tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
2929                 tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
2930                 tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
2931                 tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
2932                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
2933                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
2934                 tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,       "VK_QUEUE_FLAG_BITS_MAX_ENUM"),
2935         };
2936         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2937 }
2938
2939 tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
2940 {
2941         static const tcu::Format::BitDesc s_desc[] =
2942         {
2943                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,              "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
2944                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM, "VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM"),
2945         };
2946         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2947 }
2948
2949 tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
2950 {
2951         static const tcu::Format::BitDesc s_desc[] =
2952         {
2953                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
2954                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
2955                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
2956                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
2957                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
2958                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
2959                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
2960                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
2961                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
2962                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
2963                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
2964                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
2965                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
2966                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
2967                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
2968                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
2969                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
2970                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
2971                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
2972                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
2973                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
2974                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
2975                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
2976                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
2977                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2978                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
2979                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE_KHR,                                                                        "VK_PIPELINE_STAGE_NONE_KHR"),
2980                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,                                       "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
2981                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,                                       "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
2982                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,                     "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
2983                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,                                                      "VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
2984         };
2985         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2986 }
2987
2988 tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
2989 {
2990         static const tcu::Format::BitDesc s_desc[] =
2991         {
2992                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,                "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
2993                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,  "VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
2994         };
2995         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2996 }
2997
2998 tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
2999 {
3000         static const tcu::Format::BitDesc s_desc[] =
3001         {
3002                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
3003                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
3004                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
3005                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,                 "VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM"),
3006         };
3007         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3008 }
3009
3010 tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
3011 {
3012         static const tcu::Format::BitDesc s_desc[] =
3013         {
3014                 tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,                      "VK_FENCE_CREATE_SIGNALED_BIT"),
3015                 tcu::Format::BitDesc(VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,        "VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM"),
3016         };
3017         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3018 }
3019
3020 tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
3021 {
3022         static const tcu::Format::BitDesc s_desc[] =
3023         {
3024                 tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,       "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"),
3025                 tcu::Format::BitDesc(VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,        "VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM"),
3026         };
3027         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3028 }
3029
3030 tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
3031 {
3032         static const tcu::Format::BitDesc s_desc[] =
3033         {
3034                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
3035                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
3036                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
3037                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
3038                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
3039                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
3040                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
3041                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
3042                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
3043                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
3044                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
3045                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,                                                            "VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM"),
3046         };
3047         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3048 }
3049
3050 tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
3051 {
3052         static const tcu::Format::BitDesc s_desc[] =
3053         {
3054                 tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
3055                 tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
3056                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
3057                 tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
3058                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
3059                 tcu::Format::BitDesc(VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,        "VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM"),
3060         };
3061         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3062 }
3063
3064 tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
3065 {
3066         static const tcu::Format::BitDesc s_desc[] =
3067         {
3068                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                               "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
3069                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                             "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
3070                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                               "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
3071                 tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                                    "VK_BUFFER_CREATE_PROTECTED_BIT"),
3072                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,                "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3073                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3074                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3075                 tcu::Format::BitDesc(VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,                                               "VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3076         };
3077         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3078 }
3079
3080 tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
3081 {
3082         static const tcu::Format::BitDesc s_desc[] =
3083         {
3084                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
3085                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
3086                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
3087                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
3088                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
3089                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
3090                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
3091                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
3092                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
3093                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
3094                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
3095                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
3096                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3097                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3098                 tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3099                 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"),
3100                 tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3101                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
3102                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
3103                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
3104                 tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,                                                                        "VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
3105                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
3106                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
3107                 tcu::Format::BitDesc(VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                                                                        "VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3108         };
3109         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3110 }
3111
3112 tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
3113 {
3114         static const tcu::Format::BitDesc s_desc[] =
3115         {
3116                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
3117                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
3118                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,                                           "VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
3119         };
3120         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3121 }
3122
3123 tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
3124 {
3125         static const tcu::Format::BitDesc s_desc[] =
3126         {
3127                 tcu::Format::BitDesc(VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM,        "VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM"),
3128         };
3129         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3130 }
3131
3132 tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
3133 {
3134         static const tcu::Format::BitDesc s_desc[] =
3135         {
3136                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,  "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
3137                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,                               "VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
3138         };
3139         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3140 }
3141
3142 tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
3143 {
3144         static const tcu::Format::BitDesc s_desc[] =
3145         {
3146                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,                          "VK_COLOR_COMPONENT_R_BIT"),
3147                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,                          "VK_COLOR_COMPONENT_G_BIT"),
3148                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,                          "VK_COLOR_COMPONENT_B_BIT"),
3149                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,                          "VK_COLOR_COMPONENT_A_BIT"),
3150                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,     "VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
3151         };
3152         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3153 }
3154
3155 tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
3156 {
3157         static const tcu::Format::BitDesc s_desc[] =
3158         {
3159                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,                                                               "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
3160                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,                                                                  "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
3161                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,                                                                                 "VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
3162                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
3163                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
3164                 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"),
3165                 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"),
3166                 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"),
3167                 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"),
3168                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3169                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3170                 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"),
3171                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
3172                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
3173                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3174                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
3175                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
3176                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,                              "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
3177                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,                                                "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
3178                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
3179                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,                                                                                  "VK_PIPELINE_CREATE_DISPATCH_BASE"),
3180                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,                                   "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
3181                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
3182                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,                                                                             "VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
3183         };
3184         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3185 }
3186
3187 tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
3188 {
3189         static const tcu::Format::BitDesc s_desc[] =
3190         {
3191                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,       "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
3192                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,            "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3193                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,                                        "VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM"),
3194         };
3195         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3196 }
3197
3198 tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
3199 {
3200         static const tcu::Format::BitDesc s_desc[] =
3201         {
3202                 tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
3203                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
3204                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
3205                 tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
3206                 tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
3207                 tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
3208                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
3209                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
3210                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
3211                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
3212                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
3213                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
3214                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
3215                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
3216                 tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,                                       "VK_SHADER_STAGE_TASK_BIT_NV"),
3217                 tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,                                       "VK_SHADER_STAGE_MESH_BIT_NV"),
3218                 tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
3219                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,                                     "VK_SHADER_STAGE_RAYGEN_BIT_NV"),
3220                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,                            "VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
3221                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,                        "VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
3222                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,                                       "VK_SHADER_STAGE_MISS_BIT_NV"),
3223                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,                       "VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
3224                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,                           "VK_SHADER_STAGE_CALLABLE_BIT_NV"),
3225                 tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,                        "VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
3226         };
3227         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3228 }
3229
3230 tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
3231 {
3232         static const tcu::Format::BitDesc s_desc[] =
3233         {
3234                 tcu::Format::BitDesc(VK_CULL_MODE_NONE,                                 "VK_CULL_MODE_NONE"),
3235                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,                    "VK_CULL_MODE_FRONT_BIT"),
3236                 tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                             "VK_CULL_MODE_BACK_BIT"),
3237                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,               "VK_CULL_MODE_FRONT_AND_BACK"),
3238                 tcu::Format::BitDesc(VK_CULL_MODE_FLAG_BITS_MAX_ENUM,   "VK_CULL_MODE_FLAG_BITS_MAX_ENUM"),
3239         };
3240         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3241 }
3242
3243 tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
3244 {
3245         static const tcu::Format::BitDesc s_desc[] =
3246         {
3247                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
3248                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
3249                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,                                                      "VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM"),
3250         };
3251         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3252 }
3253
3254 tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
3255 {
3256         static const tcu::Format::BitDesc s_desc[] =
3257         {
3258                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,         "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
3259                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,           "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
3260                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,                     "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
3261                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,       "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
3262                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,                      "VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3263         };
3264         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3265 }
3266
3267 tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
3268 {
3269         static const tcu::Format::BitDesc s_desc[] =
3270         {
3271                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
3272                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,                   "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
3273                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,                  "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
3274                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,    "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"),
3275                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,                                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
3276         };
3277         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3278 }
3279
3280 tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
3281 {
3282         static const tcu::Format::BitDesc s_desc[] =
3283         {
3284                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,           "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
3285                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,      "VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3286         };
3287         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3288 }
3289
3290 tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
3291 {
3292         static const tcu::Format::BitDesc s_desc[] =
3293         {
3294                 tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,                       "VK_DEPENDENCY_BY_REGION_BIT"),
3295                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,            "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
3296                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,                      "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
3297                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,          "VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
3298                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,        "VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
3299                 tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,          "VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
3300         };
3301         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3302 }
3303
3304 tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
3305 {
3306         static const tcu::Format::BitDesc s_desc[] =
3307         {
3308                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,               "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
3309                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,   "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"),
3310                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,  "VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3311         };
3312         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3313 }
3314
3315 tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
3316 {
3317         static const tcu::Format::BitDesc s_desc[] =
3318         {
3319                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
3320                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,  "VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
3321         };
3322         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3323 }
3324
3325 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
3326 {
3327         static const tcu::Format::BitDesc s_desc[] =
3328         {
3329                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,                "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
3330                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,   "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
3331                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                   "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
3332                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                    "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
3333                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,                                 "VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3334         };
3335         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3336 }
3337
3338 tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
3339 {
3340         static const tcu::Format::BitDesc s_desc[] =
3341         {
3342                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
3343                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
3344                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
3345                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,                 "VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3346         };
3347         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3348 }
3349
3350 tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
3351 {
3352         static const tcu::Format::BitDesc s_desc[] =
3353         {
3354                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
3355                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,          "VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM"),
3356         };
3357         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3358 }
3359
3360 tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
3361 {
3362         static const tcu::Format::BitDesc s_desc[] =
3363         {
3364                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
3365                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
3366                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
3367                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                "VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3368         };
3369         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3370 }
3371
3372 tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
3373 {
3374         static const tcu::Format::BitDesc s_desc[] =
3375         {
3376                 tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,                      "VK_QUERY_CONTROL_PRECISE_BIT"),
3377                 tcu::Format::BitDesc(VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,       "VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM"),
3378         };
3379         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3380 }
3381
3382 tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
3383 {
3384         static const tcu::Format::BitDesc s_desc[] =
3385         {
3386                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
3387                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,        "VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM"),
3388         };
3389         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3390 }
3391
3392 tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
3393 {
3394         static const tcu::Format::BitDesc s_desc[] =
3395         {
3396                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                         "VK_STENCIL_FACE_FRONT_BIT"),
3397                 tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                          "VK_STENCIL_FACE_BACK_BIT"),
3398                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,            "VK_STENCIL_FACE_FRONT_AND_BACK"),
3399                 tcu::Format::BitDesc(VK_STENCIL_FRONT_AND_BACK,                         "VK_STENCIL_FRONT_AND_BACK"),
3400                 tcu::Format::BitDesc(VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,        "VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM"),
3401         };
3402         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3403 }
3404
3405 tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3406 {
3407         static const tcu::Format::BitDesc s_desc[] =
3408         {
3409                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
3410                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
3411                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3412                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3413                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3414                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3415                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3416                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
3417                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,    "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3418                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,    "VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM"),
3419         };
3420         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3421 }
3422
3423 tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3424 {
3425         static const tcu::Format::BitDesc s_desc[] =
3426         {
3427                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3428                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3429                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3430                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3431                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"),
3432                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"),
3433                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"),
3434                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"),
3435                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,         "VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3436         };
3437         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3438 }
3439
3440 tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3441 {
3442         static const tcu::Format::BitDesc s_desc[] =
3443         {
3444                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                                "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3445                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                             "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3446                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,              "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3447                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,                                    "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
3448                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,                                 "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR"),
3449                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,  "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3450                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,                                             "VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM"),
3451         };
3452         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3453 }
3454
3455 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3456 {
3457         static const tcu::Format::BitDesc s_desc[] =
3458         {
3459                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3460                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3461                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3462                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3463                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3464                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3465                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3466                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3467                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3468                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3469                 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"),
3470                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3471                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3472                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3473                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3474                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3475                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"),
3476                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"),
3477                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"),
3478                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"),
3479                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3480         };
3481         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3482 }
3483
3484 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3485 {
3486         static const tcu::Format::BitDesc s_desc[] =
3487         {
3488                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,             "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3489                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3490                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3491                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR, "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"),
3492                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"),
3493                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"),
3494                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,             "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3495         };
3496         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3497 }
3498
3499 tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3500 {
3501         static const tcu::Format::BitDesc s_desc[] =
3502         {
3503                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                               "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3504                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3505                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3506                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                                 "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3507                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                   "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3508                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3509                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3510                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                             "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3511                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                  "VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3512         };
3513         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3514 }
3515
3516 tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3517 {
3518         static const tcu::Format::BitDesc s_desc[] =
3519         {
3520                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3521                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3522                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
3523                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
3524                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,      "VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM"),
3525         };
3526         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3527 }
3528
3529 tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3530 {
3531         static const tcu::Format::BitDesc s_desc[] =
3532         {
3533                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,                     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
3534                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,         "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
3535                 tcu::Format::BitDesc(VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,        "VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM"),
3536         };
3537         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3538 }
3539
3540 tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3541 {
3542         static const tcu::Format::BitDesc s_desc[] =
3543         {
3544                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,                 "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3545                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,             "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"),
3546                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,    "VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM"),
3547         };
3548         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3549 }
3550
3551 tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3552 {
3553         static const tcu::Format::BitDesc s_desc[] =
3554         {
3555                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3556                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3557                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3558                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3559                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3560                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3561                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"),
3562                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                       "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3563                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3564                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3565                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"),
3566                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3567                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                      "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3568         };
3569         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3570 }
3571
3572 tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3573 {
3574         static const tcu::Format::BitDesc s_desc[] =
3575         {
3576                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3577                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3578                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"),
3579                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"),
3580                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,  "VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM"),
3581         };
3582         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3583 }
3584
3585 tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
3586 {
3587         static const tcu::Format::BitDesc s_desc[] =
3588         {
3589                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                                      "VK_RESOLVE_MODE_NONE"),
3590                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,           "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
3591                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,                       "VK_RESOLVE_MODE_AVERAGE_BIT"),
3592                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                           "VK_RESOLVE_MODE_MIN_BIT"),
3593                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                           "VK_RESOLVE_MODE_MAX_BIT"),
3594                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE_KHR,                          "VK_RESOLVE_MODE_NONE_KHR"),
3595                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,       "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR"),
3596                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT_KHR,           "VK_RESOLVE_MODE_AVERAGE_BIT_KHR"),
3597                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT_KHR,                       "VK_RESOLVE_MODE_MIN_BIT_KHR"),
3598                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT_KHR,                       "VK_RESOLVE_MODE_MAX_BIT_KHR"),
3599                 tcu::Format::BitDesc(VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,        "VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM"),
3600         };
3601         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3602 }
3603
3604 tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
3605 {
3606         static const tcu::Format::BitDesc s_desc[] =
3607         {
3608                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                               "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
3609                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,             "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
3610                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                                 "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
3611                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,               "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
3612                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,                   "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"),
3613                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT, "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"),
3614                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,                             "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"),
3615                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,   "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"),
3616                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,                                  "VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM"),
3617         };
3618         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3619 }
3620
3621 tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3622 {
3623         static const tcu::Format::BitDesc s_desc[] =
3624         {
3625                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,                         "VK_SEMAPHORE_WAIT_ANY_BIT"),
3626                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT_KHR,                     "VK_SEMAPHORE_WAIT_ANY_BIT_KHR"),
3627                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,      "VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM"),
3628         };
3629         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3630 }
3631
3632 tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3633 {
3634         static const tcu::Format::BitDesc s_desc[] =
3635         {
3636                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3637                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3638                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3639                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3640                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3641                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3642                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3643                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3644                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3645                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,                               "VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR"),
3646         };
3647         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3648 }
3649
3650 tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3651 {
3652         static const tcu::Format::BitDesc s_desc[] =
3653         {
3654                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3655                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3656                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3657                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3658                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,         "VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3659         };
3660         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3661 }
3662
3663 tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3664 {
3665         static const tcu::Format::BitDesc s_desc[] =
3666         {
3667                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3668                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3669                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3670                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                "VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3671         };
3672         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3673 }
3674
3675 tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3676 {
3677         static const tcu::Format::BitDesc s_desc[] =
3678         {
3679                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3680                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3681                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3682                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3683                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,               "VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR"),
3684         };
3685         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3686 }
3687
3688 tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3689 {
3690         static const tcu::Format::BitDesc s_desc[] =
3691         {
3692                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3693                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3694                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3695                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3696                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,                             "VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3697         };
3698         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3699 }
3700
3701 tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3702 {
3703         static const tcu::Format::BitDesc s_desc[] =
3704         {
3705                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3706                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3707                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"),
3708                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"),
3709                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,                 "VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR"),
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> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
3715 {
3716         static const tcu::Format::BitDesc s_desc[] =
3717         {
3718                 tcu::Format::BitDesc(VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,  "VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR"),
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> getSubmitFlagsKHRStr (VkSubmitFlagsKHR value)
3724 {
3725         static const tcu::Format::BitDesc s_desc[] =
3726         {
3727                 tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT_KHR,               "VK_SUBMIT_PROTECTED_BIT_KHR"),
3728                 tcu::Format::BitDesc(VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR,  "VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR"),
3729         };
3730         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3731 }
3732
3733 tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3734 {
3735         static const tcu::Format::BitDesc s_desc[] =
3736         {
3737                 tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
3738                 tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
3739                 tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
3740                 tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
3741                 tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
3742                 tcu::Format::BitDesc(VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,            "VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT"),
3743         };
3744         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3745 }
3746
3747 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
3748 {
3749         static const tcu::Format::BitDesc s_desc[] =
3750         {
3751                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,                "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
3752                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,    "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
3753                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,                 "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
3754                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,             "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
3755                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV"),
3756         };
3757         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3758 }
3759
3760 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
3761 {
3762         static const tcu::Format::BitDesc s_desc[] =
3763         {
3764                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,  "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
3765                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
3766                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
3767                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,  "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV"),
3768         };
3769         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3770 }
3771
3772 tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
3773 {
3774         static const tcu::Format::BitDesc s_desc[] =
3775         {
3776                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,                 "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
3777                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,   "VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT"),
3778         };
3779         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3780 }
3781
3782 tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
3783 {
3784         static const tcu::Format::BitDesc s_desc[] =
3785         {
3786                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,                 "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
3787                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,                             "VK_SURFACE_COUNTER_VBLANK_EXT"),
3788                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT, "VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT"),
3789         };
3790         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3791 }
3792
3793 tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
3794 {
3795         static const tcu::Format::BitDesc s_desc[] =
3796         {
3797                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
3798                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,                              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
3799                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
3800                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,                             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
3801                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,    "VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT"),
3802         };
3803         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3804 }
3805
3806 tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
3807 {
3808         static const tcu::Format::BitDesc s_desc[] =
3809         {
3810                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,                       "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
3811                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,            "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
3812                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,           "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
3813                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,        "VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
3814         };
3815         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3816 }
3817
3818 tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
3819 {
3820         static const tcu::Format::BitDesc s_desc[] =
3821         {
3822                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
3823                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
3824                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,                                                         "VK_GEOMETRY_OPAQUE_BIT_NV"),
3825                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,        "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
3826                 tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,                                        "VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
3827         };
3828         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3829 }
3830
3831 tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
3832 {
3833         static const tcu::Format::BitDesc s_desc[] =
3834         {
3835                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,         "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
3836                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,      "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
3837                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                         "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
3838                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                                      "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
3839                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,                         "VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
3840                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,       "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
3841                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,                                          "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
3842                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,                                       "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
3843                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,                                       "VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
3844         };
3845         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3846 }
3847
3848 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
3849 {
3850         static const tcu::Format::BitDesc s_desc[] =
3851         {
3852                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
3853                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
3854                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
3855                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
3856                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
3857                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
3858                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
3859                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
3860                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
3861                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
3862                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
3863                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
3864         };
3865         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3866 }
3867
3868 tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
3869 {
3870         static const tcu::Format::BitDesc s_desc[] =
3871         {
3872                 tcu::Format::BitDesc(VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,       "VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD"),
3873         };
3874         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3875 }
3876
3877 tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsEXTStr (VkPipelineCreationFeedbackFlagsEXT value)
3878 {
3879         static const tcu::Format::BitDesc s_desc[] =
3880         {
3881                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,                                                       "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"),
3882                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,      "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"),
3883                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,          "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"),
3884                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT,                                      "VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT"),
3885         };
3886         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3887 }
3888
3889 tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
3890 {
3891         static const tcu::Format::BitDesc s_desc[] =
3892         {
3893                 tcu::Format::BitDesc(VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,  "VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD"),
3894         };
3895         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3896 }
3897
3898 tcu::Format::Bitfield<32> getToolPurposeFlagsEXTStr (VkToolPurposeFlagsEXT value)
3899 {
3900         static const tcu::Format::BitDesc s_desc[] =
3901         {
3902                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,                        "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"),
3903                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT_EXT,                         "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"),
3904                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT_EXT,                           "VK_TOOL_PURPOSE_TRACING_BIT_EXT"),
3905                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,       "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"),
3906                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,        "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"),
3907                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,           "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3908                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,                     "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3909                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT,            "VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT"),
3910         };
3911         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3912 }
3913
3914 tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
3915 {
3916         static const tcu::Format::BitDesc s_desc[] =
3917         {
3918                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
3919                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,   "VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
3920         };
3921         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3922 }
3923
3924 tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
3925 {
3926         static const tcu::Format::BitDesc s_desc[] =
3927         {
3928                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
3929                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
3930                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
3931                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,           "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
3932         };
3933         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3934 }
3935
3936 tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsEXTStr (VkPrivateDataSlotCreateFlagsEXT value)
3937 {
3938         static const tcu::Format::BitDesc s_desc[] =
3939         {
3940                 tcu::Format::BitDesc(VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT,        "VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
3941         };
3942         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3943 }
3944
3945 tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
3946 {
3947         static const tcu::Format::BitDesc s_desc[] =
3948         {
3949                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
3950                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
3951                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
3952                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,                                "VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
3953         };
3954         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3955 }
3956
3957 tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
3958 {
3959         static const tcu::Format::BitDesc s_desc[] =
3960         {
3961                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3962                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
3963                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                   "VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3964         };
3965         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3966 }
3967
3968 tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
3969 {
3970         static const tcu::Format::BitDesc s_desc[] =
3971         {
3972                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,                  "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
3973                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
3974                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
3975                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
3976                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,   "VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR"),
3977         };
3978         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3979 }
3980
3981 tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
3982 {
3983         static const tcu::Format::BitDesc s_desc[] =
3984         {
3985                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,                       "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
3986                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,            "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
3987                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
3988                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
3989                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
3990                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,        "VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR"),
3991         };
3992         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3993 }
3994
3995 tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
3996 {
3997         static const tcu::Format::BitDesc s_desc[] =
3998         {
3999                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,                          "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4000                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,                            "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4001                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4002                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4003                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR"),
4004         };
4005         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4006 }
4007
4008 tcu::Format::Bitfield<32> getVideoCapabilitiesFlagsKHRStr (VkVideoCapabilitiesFlagsKHR value)
4009 {
4010         static const tcu::Format::BitDesc s_desc[] =
4011         {
4012                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR,                   "VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR"),
4013                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR,   "VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4014                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR,                              "VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR"),
4015         };
4016         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4017 }
4018
4019 tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4020 {
4021         static const tcu::Format::BitDesc s_desc[] =
4022         {
4023                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,                               "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
4024                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4025                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
4026         };
4027         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4028 }
4029
4030 tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4031 {
4032         static const tcu::Format::BitDesc s_desc[] =
4033         {
4034                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,                               "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
4035                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,                             "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4036                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4037         };
4038         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4039 }
4040
4041 tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
4042 {
4043         static const tcu::Format::BitDesc s_desc[] =
4044         {
4045                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR,            "VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR"),
4046                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,                     "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
4047                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,                      "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
4048                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,            "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
4049                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR,     "VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR"),
4050         };
4051         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4052 }
4053
4054 tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
4055 {
4056         static const tcu::Format::BitDesc s_desc[] =
4057         {
4058                 tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,                               "VK_VIDEO_DECODE_DEFAULT_KHR"),
4059                 tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
4060                 tcu::Format::BitDesc(VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR"),
4061         };
4062         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4063 }
4064
4065 tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
4066 {
4067         static const tcu::Format::BitDesc s_desc[] =
4068         {
4069                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,                               "VK_VIDEO_ENCODE_DEFAULT_KHR"),
4070                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
4071                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR"),
4072         };
4073         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4074 }
4075
4076 tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
4077 {
4078         static const tcu::Format::BitDesc s_desc[] =
4079         {
4080                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,                          "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
4081                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR,                        "VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR"),
4082                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4083         };
4084         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4085 }
4086
4087 tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4088 {
4089         static const tcu::Format::BitDesc s_desc[] =
4090         {
4091                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,                    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4092                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4093                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4094                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR,  "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR"),
4095         };
4096         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4097 }
4098
4099 tcu::Format::Bitfield<32> getVideoEncodeH264CapabilitiesFlagsEXTStr (VkVideoEncodeH264CapabilitiesFlagsEXT value)
4100 {
4101         static const tcu::Format::BitDesc s_desc[] =
4102         {
4103                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4104                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4105                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,         "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT"),
4106                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                     "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4107                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                          "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4108                 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"),
4109                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,        "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4110                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,         "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4111                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,         "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4112                 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"),
4113                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT,     "VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"),
4114                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT,                          "VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT"),
4115         };
4116         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4117 }
4118
4119 tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4120 {
4121         static const tcu::Format::BitDesc s_desc[] =
4122         {
4123                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4124                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4125                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,                   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4126                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,    "VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4127         };
4128         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4129 }
4130
4131 tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4132 {
4133         static const tcu::Format::BitDesc s_desc[] =
4134         {
4135                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4136                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4137                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4138                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,   "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4139         };
4140         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4141 }
4142
4143 tcu::Format::Bitfield<32> getVideoEncodeH264CreateFlagsEXTStr (VkVideoEncodeH264CreateFlagsEXT value)
4144 {
4145         static const tcu::Format::BitDesc s_desc[] =
4146         {
4147                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT,                           "VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"),
4148                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT,            "VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"),
4149                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT,        "VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
4150         };
4151         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4152 }
4153
4154 tcu::Format::Bitfield<32> getVideoDecodeH264FieldLayoutFlagsEXTStr (VkVideoDecodeH264FieldLayoutFlagsEXT value)
4155 {
4156         static const tcu::Format::BitDesc s_desc[] =
4157         {
4158                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT,                                        "VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT"),
4159                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT,           "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT"),
4160                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT,       "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT"),
4161                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT,                          "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT"),
4162         };
4163         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4164 }
4165
4166 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
4167 {
4168         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4169 }
4170
4171 tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4172 {
4173         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4174 }
4175
4176 tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4177 {
4178         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4179 }
4180
4181 tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4182 {
4183         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4184 }
4185
4186 tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4187 {
4188         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4189 }
4190
4191 tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4192 {
4193         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4194 }
4195
4196 tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4197 {
4198         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4199 }
4200
4201 tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4202 {
4203         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4204 }
4205
4206 tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4207 {
4208         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4209 }
4210
4211 tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4212 {
4213         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4214 }
4215
4216 tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4217 {
4218         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4219 }
4220
4221 tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4222 {
4223         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4224 }
4225
4226 tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
4227 {
4228         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4229 }
4230
4231 tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
4232 {
4233         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4234 }
4235
4236 tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4237 {
4238         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4239 }
4240
4241 tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
4242 {
4243         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4244 }
4245
4246 tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4247 {
4248         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4249 }
4250
4251 tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4252 {
4253         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4254 }
4255
4256 tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4257 {
4258         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4259 }
4260
4261 tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4262 {
4263         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4264 }
4265
4266 tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4267 {
4268         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4269 }
4270
4271 tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
4272 {
4273         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4274 }
4275
4276 tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
4277 {
4278         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4279 }
4280
4281 tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
4282 {
4283         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4284 }
4285
4286 tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
4287 {
4288         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4289 }
4290
4291 tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
4292 {
4293         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4294 }
4295
4296 tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
4297 {
4298         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4299 }
4300
4301 tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
4302 {
4303         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4304 }
4305
4306 tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
4307 {
4308         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4309 }
4310
4311 tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
4312 {
4313         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4314 }
4315
4316 tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
4317 {
4318         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4319 }
4320
4321 tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
4322 {
4323         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4324 }
4325
4326 tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4327 {
4328         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4329 }
4330
4331 tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
4332 {
4333         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4334 }
4335
4336 tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
4337 {
4338         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4339 }
4340
4341 tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
4342 {
4343         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4344 }
4345
4346 tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4347 {
4348         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4349 }
4350
4351 tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
4352 {
4353         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4354 }
4355
4356 tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
4357 {
4358         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4359 }
4360
4361 tcu::Format::Bitfield<32> getVideoDecodeH264CreateFlagsEXTStr (VkVideoDecodeH264CreateFlagsEXT value)
4362 {
4363         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4364 }
4365
4366 tcu::Format::Bitfield<32> getVideoDecodeH265CreateFlagsEXTStr (VkVideoDecodeH265CreateFlagsEXT value)
4367 {
4368         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4369 }
4370
4371 tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4372 {
4373         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4374 }
4375
4376 tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4377 {
4378         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4379 }
4380
4381 tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4382 {
4383         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4384 }
4385
4386 tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4387 {
4388         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4389 }
4390
4391 tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4392 {
4393         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4394 }
4395
4396 tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4397 {
4398         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4399 }
4400
4401 tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4402 {
4403         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4404 }
4405
4406 tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4407 {
4408         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4409 }
4410
4411 tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4412 {
4413         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4414 }
4415
4416 tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4417 {
4418         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4419 }
4420
4421 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
4422 {
4423         static const tcu::Format::BitDesc s_desc[] =
4424         {
4425                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4426                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4427                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4428                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4429                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4430                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
4431                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4432                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4433                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4434                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4435                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4436                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4437         };
4438         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4439 }
4440
4441 std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
4442 {
4443         s << "VkExtent2D = {\n";
4444         s << "\twidth = " << value.width << '\n';
4445         s << "\theight = " << value.height << '\n';
4446         s << '}';
4447         return s;
4448 }
4449
4450 std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
4451 {
4452         s << "VkExtent3D = {\n";
4453         s << "\twidth = " << value.width << '\n';
4454         s << "\theight = " << value.height << '\n';
4455         s << "\tdepth = " << value.depth << '\n';
4456         s << '}';
4457         return s;
4458 }
4459
4460 std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
4461 {
4462         s << "VkOffset2D = {\n";
4463         s << "\tx = " << value.x << '\n';
4464         s << "\ty = " << value.y << '\n';
4465         s << '}';
4466         return s;
4467 }
4468
4469 std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
4470 {
4471         s << "VkOffset3D = {\n";
4472         s << "\tx = " << value.x << '\n';
4473         s << "\ty = " << value.y << '\n';
4474         s << "\tz = " << value.z << '\n';
4475         s << '}';
4476         return s;
4477 }
4478
4479 std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
4480 {
4481         s << "VkRect2D = {\n";
4482         s << "\toffset = " << value.offset << '\n';
4483         s << "\textent = " << value.extent << '\n';
4484         s << '}';
4485         return s;
4486 }
4487
4488 std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
4489 {
4490         s << "VkBaseInStructure = {\n";
4491         s << "\tsType = " << value.sType << '\n';
4492         s << "\tpNext = " << value.pNext << '\n';
4493         s << '}';
4494         return s;
4495 }
4496
4497 std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
4498 {
4499         s << "VkBaseOutStructure = {\n";
4500         s << "\tsType = " << value.sType << '\n';
4501         s << "\tpNext = " << value.pNext << '\n';
4502         s << '}';
4503         return s;
4504 }
4505
4506 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
4507 {
4508         s << "VkBufferMemoryBarrier = {\n";
4509         s << "\tsType = " << value.sType << '\n';
4510         s << "\tpNext = " << value.pNext << '\n';
4511         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4512         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4513         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4514         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4515         s << "\tbuffer = " << value.buffer << '\n';
4516         s << "\toffset = " << value.offset << '\n';
4517         s << "\tsize = " << value.size << '\n';
4518         s << '}';
4519         return s;
4520 }
4521
4522 std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
4523 {
4524         s << "VkDispatchIndirectCommand = {\n";
4525         s << "\tx = " << value.x << '\n';
4526         s << "\ty = " << value.y << '\n';
4527         s << "\tz = " << value.z << '\n';
4528         s << '}';
4529         return s;
4530 }
4531
4532 std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
4533 {
4534         s << "VkDrawIndexedIndirectCommand = {\n";
4535         s << "\tindexCount = " << value.indexCount << '\n';
4536         s << "\tinstanceCount = " << value.instanceCount << '\n';
4537         s << "\tfirstIndex = " << value.firstIndex << '\n';
4538         s << "\tvertexOffset = " << value.vertexOffset << '\n';
4539         s << "\tfirstInstance = " << value.firstInstance << '\n';
4540         s << '}';
4541         return s;
4542 }
4543
4544 std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
4545 {
4546         s << "VkDrawIndirectCommand = {\n";
4547         s << "\tvertexCount = " << value.vertexCount << '\n';
4548         s << "\tinstanceCount = " << value.instanceCount << '\n';
4549         s << "\tfirstVertex = " << value.firstVertex << '\n';
4550         s << "\tfirstInstance = " << value.firstInstance << '\n';
4551         s << '}';
4552         return s;
4553 }
4554
4555 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
4556 {
4557         s << "VkImageSubresourceRange = {\n";
4558         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
4559         s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
4560         s << "\tlevelCount = " << value.levelCount << '\n';
4561         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
4562         s << "\tlayerCount = " << value.layerCount << '\n';
4563         s << '}';
4564         return s;
4565 }
4566
4567 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
4568 {
4569         s << "VkImageMemoryBarrier = {\n";
4570         s << "\tsType = " << value.sType << '\n';
4571         s << "\tpNext = " << value.pNext << '\n';
4572         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4573         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4574         s << "\toldLayout = " << value.oldLayout << '\n';
4575         s << "\tnewLayout = " << value.newLayout << '\n';
4576         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4577         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4578         s << "\timage = " << value.image << '\n';
4579         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
4580         s << '}';
4581         return s;
4582 }
4583
4584 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
4585 {
4586         s << "VkMemoryBarrier = {\n";
4587         s << "\tsType = " << value.sType << '\n';
4588         s << "\tpNext = " << value.pNext << '\n';
4589         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4590         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4591         s << '}';
4592         return s;
4593 }
4594
4595 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
4596 {
4597         s << "VkPipelineCacheHeaderVersionOne = {\n";
4598         s << "\theaderSize = " << value.headerSize << '\n';
4599         s << "\theaderVersion = " << value.headerVersion << '\n';
4600         s << "\tvendorID = " << value.vendorID << '\n';
4601         s << "\tdeviceID = " << value.deviceID << '\n';
4602         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';
4603         s << '}';
4604         return s;
4605 }
4606
4607 std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
4608 {
4609         s << "VkAllocationCallbacks = {\n";
4610         s << "\tpUserData = " << value.pUserData << '\n';
4611         s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
4612         s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
4613         s << "\tpfnFree = " << value.pfnFree << '\n';
4614         s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
4615         s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
4616         s << '}';
4617         return s;
4618 }
4619
4620 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
4621 {
4622         s << "VkApplicationInfo = {\n";
4623         s << "\tsType = " << value.sType << '\n';
4624         s << "\tpNext = " << value.pNext << '\n';
4625         s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
4626         s << "\tapplicationVersion = " << value.applicationVersion << '\n';
4627         s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
4628         s << "\tengineVersion = " << value.engineVersion << '\n';
4629         s << "\tapiVersion = " << value.apiVersion << '\n';
4630         s << '}';
4631         return s;
4632 }
4633
4634 std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
4635 {
4636         s << "VkFormatProperties = {\n";
4637         s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
4638         s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
4639         s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
4640         s << '}';
4641         return s;
4642 }
4643
4644 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
4645 {
4646         s << "VkImageFormatProperties = {\n";
4647         s << "\tmaxExtent = " << value.maxExtent << '\n';
4648         s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
4649         s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
4650         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
4651         s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
4652         s << '}';
4653         return s;
4654 }
4655
4656 std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
4657 {
4658         s << "VkInstanceCreateInfo = {\n";
4659         s << "\tsType = " << value.sType << '\n';
4660         s << "\tpNext = " << value.pNext << '\n';
4661         s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
4662         s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
4663         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4664         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4665         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4666         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4667         s << '}';
4668         return s;
4669 }
4670
4671 std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
4672 {
4673         s << "VkMemoryHeap = {\n";
4674         s << "\tsize = " << value.size << '\n';
4675         s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
4676         s << '}';
4677         return s;
4678 }
4679
4680 std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
4681 {
4682         s << "VkMemoryType = {\n";
4683         s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
4684         s << "\theapIndex = " << value.heapIndex << '\n';
4685         s << '}';
4686         return s;
4687 }
4688
4689 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
4690 {
4691         s << "VkPhysicalDeviceFeatures = {\n";
4692         s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
4693         s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
4694         s << "\timageCubeArray = " << value.imageCubeArray << '\n';
4695         s << "\tindependentBlend = " << value.independentBlend << '\n';
4696         s << "\tgeometryShader = " << value.geometryShader << '\n';
4697         s << "\ttessellationShader = " << value.tessellationShader << '\n';
4698         s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
4699         s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
4700         s << "\tlogicOp = " << value.logicOp << '\n';
4701         s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
4702         s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
4703         s << "\tdepthClamp = " << value.depthClamp << '\n';
4704         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
4705         s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
4706         s << "\tdepthBounds = " << value.depthBounds << '\n';
4707         s << "\twideLines = " << value.wideLines << '\n';
4708         s << "\tlargePoints = " << value.largePoints << '\n';
4709         s << "\talphaToOne = " << value.alphaToOne << '\n';
4710         s << "\tmultiViewport = " << value.multiViewport << '\n';
4711         s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
4712         s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
4713         s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
4714         s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
4715         s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
4716         s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
4717         s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
4718         s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
4719         s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
4720         s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
4721         s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
4722         s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
4723         s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
4724         s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
4725         s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
4726         s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
4727         s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
4728         s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
4729         s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
4730         s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
4731         s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
4732         s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
4733         s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
4734         s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
4735         s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
4736         s << "\tsparseBinding = " << value.sparseBinding << '\n';
4737         s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
4738         s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
4739         s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
4740         s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
4741         s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
4742         s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
4743         s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
4744         s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
4745         s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
4746         s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
4747         s << '}';
4748         return s;
4749 }
4750
4751 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
4752 {
4753         s << "VkPhysicalDeviceLimits = {\n";
4754         s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
4755         s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
4756         s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
4757         s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
4758         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
4759         s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
4760         s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
4761         s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
4762         s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
4763         s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
4764         s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
4765         s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
4766         s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
4767         s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
4768         s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
4769         s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
4770         s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
4771         s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
4772         s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
4773         s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
4774         s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
4775         s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
4776         s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
4777         s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
4778         s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
4779         s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
4780         s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
4781         s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
4782         s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
4783         s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
4784         s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
4785         s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
4786         s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
4787         s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
4788         s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
4789         s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
4790         s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
4791         s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
4792         s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
4793         s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
4794         s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
4795         s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
4796         s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
4797         s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
4798         s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
4799         s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
4800         s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
4801         s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
4802         s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
4803         s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
4804         s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
4805         s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
4806         s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
4807         s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
4808         s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
4809         s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
4810         s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
4811         s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
4812         s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
4813         s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
4814         s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
4815         s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
4816         s << "\tmaxViewports = " << value.maxViewports << '\n';
4817         s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
4818         s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
4819         s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
4820         s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
4821         s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
4822         s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
4823         s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
4824         s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
4825         s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
4826         s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
4827         s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
4828         s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
4829         s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
4830         s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
4831         s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
4832         s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
4833         s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
4834         s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
4835         s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
4836         s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
4837         s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
4838         s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
4839         s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
4840         s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
4841         s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
4842         s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
4843         s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
4844         s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
4845         s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
4846         s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
4847         s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
4848         s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
4849         s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
4850         s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
4851         s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
4852         s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
4853         s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
4854         s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
4855         s << "\tstrictLines = " << value.strictLines << '\n';
4856         s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
4857         s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
4858         s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
4859         s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
4860         s << '}';
4861         return s;
4862 }
4863
4864 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
4865 {
4866         s << "VkPhysicalDeviceMemoryProperties = {\n";
4867         s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
4868         s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
4869         s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
4870         s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
4871         s << '}';
4872         return s;
4873 }
4874
4875 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
4876 {
4877         s << "VkPhysicalDeviceSparseProperties = {\n";
4878         s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
4879         s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
4880         s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
4881         s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
4882         s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
4883         s << '}';
4884         return s;
4885 }
4886
4887 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
4888 {
4889         s << "VkPhysicalDeviceProperties = {\n";
4890         s << "\tapiVersion = " << value.apiVersion << '\n';
4891         s << "\tdriverVersion = " << value.driverVersion << '\n';
4892         s << "\tvendorID = " << value.vendorID << '\n';
4893         s << "\tdeviceID = " << value.deviceID << '\n';
4894         s << "\tdeviceType = " << value.deviceType << '\n';
4895         s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
4896         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';
4897         s << "\tlimits = " << value.limits << '\n';
4898         s << "\tsparseProperties = " << value.sparseProperties << '\n';
4899         s << '}';
4900         return s;
4901 }
4902
4903 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
4904 {
4905         s << "VkQueueFamilyProperties = {\n";
4906         s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
4907         s << "\tqueueCount = " << value.queueCount << '\n';
4908         s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
4909         s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
4910         s << '}';
4911         return s;
4912 }
4913
4914 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
4915 {
4916         s << "VkDeviceQueueCreateInfo = {\n";
4917         s << "\tsType = " << value.sType << '\n';
4918         s << "\tpNext = " << value.pNext << '\n';
4919         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
4920         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
4921         s << "\tqueueCount = " << value.queueCount << '\n';
4922         s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
4923         s << '}';
4924         return s;
4925 }
4926
4927 std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
4928 {
4929         s << "VkDeviceCreateInfo = {\n";
4930         s << "\tsType = " << value.sType << '\n';
4931         s << "\tpNext = " << value.pNext << '\n';
4932         s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
4933         s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
4934         s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
4935         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
4936         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
4937         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
4938         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
4939         s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
4940         s << '}';
4941         return s;
4942 }
4943
4944 std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
4945 {
4946         s << "VkExtensionProperties = {\n";
4947         s << "\textensionName = " << (const char*)value.extensionName << '\n';
4948         s << "\tspecVersion = " << value.specVersion << '\n';
4949         s << '}';
4950         return s;
4951 }
4952
4953 std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
4954 {
4955         s << "VkLayerProperties = {\n";
4956         s << "\tlayerName = " << (const char*)value.layerName << '\n';
4957         s << "\tspecVersion = " << value.specVersion << '\n';
4958         s << "\timplementationVersion = " << value.implementationVersion << '\n';
4959         s << "\tdescription = " << (const char*)value.description << '\n';
4960         s << '}';
4961         return s;
4962 }
4963
4964 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
4965 {
4966         s << "VkSubmitInfo = {\n";
4967         s << "\tsType = " << value.sType << '\n';
4968         s << "\tpNext = " << value.pNext << '\n';
4969         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
4970         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
4971         s << "\tpWaitDstStageMask = " << value.pWaitDstStageMask << '\n';
4972         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
4973         s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
4974         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
4975         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
4976         s << '}';
4977         return s;
4978 }
4979
4980 std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
4981 {
4982         s << "VkMappedMemoryRange = {\n";
4983         s << "\tsType = " << value.sType << '\n';
4984         s << "\tpNext = " << value.pNext << '\n';
4985         s << "\tmemory = " << value.memory << '\n';
4986         s << "\toffset = " << value.offset << '\n';
4987         s << "\tsize = " << value.size << '\n';
4988         s << '}';
4989         return s;
4990 }
4991
4992 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
4993 {
4994         s << "VkMemoryAllocateInfo = {\n";
4995         s << "\tsType = " << value.sType << '\n';
4996         s << "\tpNext = " << value.pNext << '\n';
4997         s << "\tallocationSize = " << value.allocationSize << '\n';
4998         s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
4999         s << '}';
5000         return s;
5001 }
5002
5003 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5004 {
5005         s << "VkMemoryRequirements = {\n";
5006         s << "\tsize = " << value.size << '\n';
5007         s << "\talignment = " << value.alignment << '\n';
5008         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5009         s << '}';
5010         return s;
5011 }
5012
5013 std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5014 {
5015         s << "VkSparseMemoryBind = {\n";
5016         s << "\tresourceOffset = " << value.resourceOffset << '\n';
5017         s << "\tsize = " << value.size << '\n';
5018         s << "\tmemory = " << value.memory << '\n';
5019         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5020         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5021         s << '}';
5022         return s;
5023 }
5024
5025 std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5026 {
5027         s << "VkSparseBufferMemoryBindInfo = {\n";
5028         s << "\tbuffer = " << value.buffer << '\n';
5029         s << "\tbindCount = " << value.bindCount << '\n';
5030         s << "\tpBinds = " << value.pBinds << '\n';
5031         s << '}';
5032         return s;
5033 }
5034
5035 std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5036 {
5037         s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5038         s << "\timage = " << value.image << '\n';
5039         s << "\tbindCount = " << value.bindCount << '\n';
5040         s << "\tpBinds = " << value.pBinds << '\n';
5041         s << '}';
5042         return s;
5043 }
5044
5045 std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5046 {
5047         s << "VkImageSubresource = {\n";
5048         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5049         s << "\tmipLevel = " << value.mipLevel << '\n';
5050         s << "\tarrayLayer = " << value.arrayLayer << '\n';
5051         s << '}';
5052         return s;
5053 }
5054
5055 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5056 {
5057         s << "VkSparseImageMemoryBind = {\n";
5058         s << "\tsubresource = " << value.subresource << '\n';
5059         s << "\toffset = " << value.offset << '\n';
5060         s << "\textent = " << value.extent << '\n';
5061         s << "\tmemory = " << value.memory << '\n';
5062         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5063         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5064         s << '}';
5065         return s;
5066 }
5067
5068 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5069 {
5070         s << "VkSparseImageMemoryBindInfo = {\n";
5071         s << "\timage = " << value.image << '\n';
5072         s << "\tbindCount = " << value.bindCount << '\n';
5073         s << "\tpBinds = " << value.pBinds << '\n';
5074         s << '}';
5075         return s;
5076 }
5077
5078 std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5079 {
5080         s << "VkBindSparseInfo = {\n";
5081         s << "\tsType = " << value.sType << '\n';
5082         s << "\tpNext = " << value.pNext << '\n';
5083         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5084         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5085         s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5086         s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5087         s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5088         s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5089         s << "\timageBindCount = " << value.imageBindCount << '\n';
5090         s << "\tpImageBinds = " << value.pImageBinds << '\n';
5091         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5092         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5093         s << '}';
5094         return s;
5095 }
5096
5097 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5098 {
5099         s << "VkSparseImageFormatProperties = {\n";
5100         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5101         s << "\timageGranularity = " << value.imageGranularity << '\n';
5102         s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5103         s << '}';
5104         return s;
5105 }
5106
5107 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5108 {
5109         s << "VkSparseImageMemoryRequirements = {\n";
5110         s << "\tformatProperties = " << value.formatProperties << '\n';
5111         s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5112         s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5113         s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5114         s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5115         s << '}';
5116         return s;
5117 }
5118
5119 std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
5120 {
5121         s << "VkFenceCreateInfo = {\n";
5122         s << "\tsType = " << value.sType << '\n';
5123         s << "\tpNext = " << value.pNext << '\n';
5124         s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
5125         s << '}';
5126         return s;
5127 }
5128
5129 std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
5130 {
5131         s << "VkSemaphoreCreateInfo = {\n";
5132         s << "\tsType = " << value.sType << '\n';
5133         s << "\tpNext = " << value.pNext << '\n';
5134         s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
5135         s << '}';
5136         return s;
5137 }
5138
5139 std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
5140 {
5141         s << "VkEventCreateInfo = {\n";
5142         s << "\tsType = " << value.sType << '\n';
5143         s << "\tpNext = " << value.pNext << '\n';
5144         s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
5145         s << '}';
5146         return s;
5147 }
5148
5149 std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
5150 {
5151         s << "VkQueryPoolCreateInfo = {\n";
5152         s << "\tsType = " << value.sType << '\n';
5153         s << "\tpNext = " << value.pNext << '\n';
5154         s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
5155         s << "\tqueryType = " << value.queryType << '\n';
5156         s << "\tqueryCount = " << value.queryCount << '\n';
5157         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5158         s << '}';
5159         return s;
5160 }
5161
5162 std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5163 {
5164         s << "VkBufferCreateInfo = {\n";
5165         s << "\tsType = " << value.sType << '\n';
5166         s << "\tpNext = " << value.pNext << '\n';
5167         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5168         s << "\tsize = " << value.size << '\n';
5169         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5170         s << "\tsharingMode = " << value.sharingMode << '\n';
5171         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5172         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5173         s << '}';
5174         return s;
5175 }
5176
5177 std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5178 {
5179         s << "VkBufferViewCreateInfo = {\n";
5180         s << "\tsType = " << value.sType << '\n';
5181         s << "\tpNext = " << value.pNext << '\n';
5182         s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5183         s << "\tbuffer = " << value.buffer << '\n';
5184         s << "\tformat = " << value.format << '\n';
5185         s << "\toffset = " << value.offset << '\n';
5186         s << "\trange = " << value.range << '\n';
5187         s << '}';
5188         return s;
5189 }
5190
5191 std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5192 {
5193         s << "VkImageCreateInfo = {\n";
5194         s << "\tsType = " << value.sType << '\n';
5195         s << "\tpNext = " << value.pNext << '\n';
5196         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5197         s << "\timageType = " << value.imageType << '\n';
5198         s << "\tformat = " << value.format << '\n';
5199         s << "\textent = " << value.extent << '\n';
5200         s << "\tmipLevels = " << value.mipLevels << '\n';
5201         s << "\tarrayLayers = " << value.arrayLayers << '\n';
5202         s << "\tsamples = " << value.samples << '\n';
5203         s << "\ttiling = " << value.tiling << '\n';
5204         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5205         s << "\tsharingMode = " << value.sharingMode << '\n';
5206         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5207         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5208         s << "\tinitialLayout = " << value.initialLayout << '\n';
5209         s << '}';
5210         return s;
5211 }
5212
5213 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5214 {
5215         s << "VkSubresourceLayout = {\n";
5216         s << "\toffset = " << value.offset << '\n';
5217         s << "\tsize = " << value.size << '\n';
5218         s << "\trowPitch = " << value.rowPitch << '\n';
5219         s << "\tarrayPitch = " << value.arrayPitch << '\n';
5220         s << "\tdepthPitch = " << value.depthPitch << '\n';
5221         s << '}';
5222         return s;
5223 }
5224
5225 std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5226 {
5227         s << "VkComponentMapping = {\n";
5228         s << "\tr = " << value.r << '\n';
5229         s << "\tg = " << value.g << '\n';
5230         s << "\tb = " << value.b << '\n';
5231         s << "\ta = " << value.a << '\n';
5232         s << '}';
5233         return s;
5234 }
5235
5236 std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5237 {
5238         s << "VkImageViewCreateInfo = {\n";
5239         s << "\tsType = " << value.sType << '\n';
5240         s << "\tpNext = " << value.pNext << '\n';
5241         s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5242         s << "\timage = " << value.image << '\n';
5243         s << "\tviewType = " << value.viewType << '\n';
5244         s << "\tformat = " << value.format << '\n';
5245         s << "\tcomponents = " << value.components << '\n';
5246         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5247         s << '}';
5248         return s;
5249 }
5250
5251 std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5252 {
5253         s << "VkShaderModuleCreateInfo = {\n";
5254         s << "\tsType = " << value.sType << '\n';
5255         s << "\tpNext = " << value.pNext << '\n';
5256         s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5257         s << "\tcodeSize = " << value.codeSize << '\n';
5258         s << "\tpCode = " << value.pCode << '\n';
5259         s << '}';
5260         return s;
5261 }
5262
5263 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
5264 {
5265         s << "VkPipelineCacheCreateInfo = {\n";
5266         s << "\tsType = " << value.sType << '\n';
5267         s << "\tpNext = " << value.pNext << '\n';
5268         s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
5269         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
5270         s << "\tpInitialData = " << value.pInitialData << '\n';
5271         s << '}';
5272         return s;
5273 }
5274
5275 std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5276 {
5277         s << "VkSpecializationMapEntry = {\n";
5278         s << "\tconstantID = " << value.constantID << '\n';
5279         s << "\toffset = " << value.offset << '\n';
5280         s << "\tsize = " << value.size << '\n';
5281         s << '}';
5282         return s;
5283 }
5284
5285 std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5286 {
5287         s << "VkSpecializationInfo = {\n";
5288         s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5289         s << "\tpMapEntries = " << value.pMapEntries << '\n';
5290         s << "\tdataSize = " << value.dataSize << '\n';
5291         s << "\tpData = " << value.pData << '\n';
5292         s << '}';
5293         return s;
5294 }
5295
5296 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5297 {
5298         s << "VkPipelineShaderStageCreateInfo = {\n";
5299         s << "\tsType = " << value.sType << '\n';
5300         s << "\tpNext = " << value.pNext << '\n';
5301         s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5302         s << "\tstage = " << value.stage << '\n';
5303         s << "\tmodule = " << value.module << '\n';
5304         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5305         s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5306         s << '}';
5307         return s;
5308 }
5309
5310 std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5311 {
5312         s << "VkComputePipelineCreateInfo = {\n";
5313         s << "\tsType = " << value.sType << '\n';
5314         s << "\tpNext = " << value.pNext << '\n';
5315         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5316         s << "\tstage = " << value.stage << '\n';
5317         s << "\tlayout = " << value.layout << '\n';
5318         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5319         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5320         s << '}';
5321         return s;
5322 }
5323
5324 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5325 {
5326         s << "VkVertexInputBindingDescription = {\n";
5327         s << "\tbinding = " << value.binding << '\n';
5328         s << "\tstride = " << value.stride << '\n';
5329         s << "\tinputRate = " << value.inputRate << '\n';
5330         s << '}';
5331         return s;
5332 }
5333
5334 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5335 {
5336         s << "VkVertexInputAttributeDescription = {\n";
5337         s << "\tlocation = " << value.location << '\n';
5338         s << "\tbinding = " << value.binding << '\n';
5339         s << "\tformat = " << value.format << '\n';
5340         s << "\toffset = " << value.offset << '\n';
5341         s << '}';
5342         return s;
5343 }
5344
5345 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5346 {
5347         s << "VkPipelineVertexInputStateCreateInfo = {\n";
5348         s << "\tsType = " << value.sType << '\n';
5349         s << "\tpNext = " << value.pNext << '\n';
5350         s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5351         s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5352         s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5353         s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5354         s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5355         s << '}';
5356         return s;
5357 }
5358
5359 std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5360 {
5361         s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5362         s << "\tsType = " << value.sType << '\n';
5363         s << "\tpNext = " << value.pNext << '\n';
5364         s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5365         s << "\ttopology = " << value.topology << '\n';
5366         s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5367         s << '}';
5368         return s;
5369 }
5370
5371 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5372 {
5373         s << "VkPipelineTessellationStateCreateInfo = {\n";
5374         s << "\tsType = " << value.sType << '\n';
5375         s << "\tpNext = " << value.pNext << '\n';
5376         s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5377         s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5378         s << '}';
5379         return s;
5380 }
5381
5382 std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5383 {
5384         s << "VkViewport = {\n";
5385         s << "\tx = " << value.x << '\n';
5386         s << "\ty = " << value.y << '\n';
5387         s << "\twidth = " << value.width << '\n';
5388         s << "\theight = " << value.height << '\n';
5389         s << "\tminDepth = " << value.minDepth << '\n';
5390         s << "\tmaxDepth = " << value.maxDepth << '\n';
5391         s << '}';
5392         return s;
5393 }
5394
5395 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5396 {
5397         s << "VkPipelineViewportStateCreateInfo = {\n";
5398         s << "\tsType = " << value.sType << '\n';
5399         s << "\tpNext = " << value.pNext << '\n';
5400         s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5401         s << "\tviewportCount = " << value.viewportCount << '\n';
5402         s << "\tpViewports = " << value.pViewports << '\n';
5403         s << "\tscissorCount = " << value.scissorCount << '\n';
5404         s << "\tpScissors = " << value.pScissors << '\n';
5405         s << '}';
5406         return s;
5407 }
5408
5409 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5410 {
5411         s << "VkPipelineRasterizationStateCreateInfo = {\n";
5412         s << "\tsType = " << value.sType << '\n';
5413         s << "\tpNext = " << value.pNext << '\n';
5414         s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5415         s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5416         s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5417         s << "\tpolygonMode = " << value.polygonMode << '\n';
5418         s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5419         s << "\tfrontFace = " << value.frontFace << '\n';
5420         s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5421         s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5422         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5423         s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5424         s << "\tlineWidth = " << value.lineWidth << '\n';
5425         s << '}';
5426         return s;
5427 }
5428
5429 std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5430 {
5431         s << "VkPipelineMultisampleStateCreateInfo = {\n";
5432         s << "\tsType = " << value.sType << '\n';
5433         s << "\tpNext = " << value.pNext << '\n';
5434         s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5435         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5436         s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5437         s << "\tminSampleShading = " << value.minSampleShading << '\n';
5438         s << "\tpSampleMask = " << value.pSampleMask << '\n';
5439         s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5440         s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5441         s << '}';
5442         return s;
5443 }
5444
5445 std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
5446 {
5447         s << "VkStencilOpState = {\n";
5448         s << "\tfailOp = " << value.failOp << '\n';
5449         s << "\tpassOp = " << value.passOp << '\n';
5450         s << "\tdepthFailOp = " << value.depthFailOp << '\n';
5451         s << "\tcompareOp = " << value.compareOp << '\n';
5452         s << "\tcompareMask = " << value.compareMask << '\n';
5453         s << "\twriteMask = " << value.writeMask << '\n';
5454         s << "\treference = " << value.reference << '\n';
5455         s << '}';
5456         return s;
5457 }
5458
5459 std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
5460 {
5461         s << "VkPipelineDepthStencilStateCreateInfo = {\n";
5462         s << "\tsType = " << value.sType << '\n';
5463         s << "\tpNext = " << value.pNext << '\n';
5464         s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
5465         s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
5466         s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
5467         s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
5468         s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
5469         s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
5470         s << "\tfront = " << value.front << '\n';
5471         s << "\tback = " << value.back << '\n';
5472         s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
5473         s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
5474         s << '}';
5475         return s;
5476 }
5477
5478 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5479 {
5480         s << "VkPipelineColorBlendAttachmentState = {\n";
5481         s << "\tblendEnable = " << value.blendEnable << '\n';
5482         s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5483         s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5484         s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5485         s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5486         s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5487         s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5488         s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5489         s << '}';
5490         return s;
5491 }
5492
5493 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
5494 {
5495         s << "VkPipelineColorBlendStateCreateInfo = {\n";
5496         s << "\tsType = " << value.sType << '\n';
5497         s << "\tpNext = " << value.pNext << '\n';
5498         s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
5499         s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
5500         s << "\tlogicOp = " << value.logicOp << '\n';
5501         s << "\tattachmentCount = " << value.attachmentCount << '\n';
5502         s << "\tpAttachments = " << value.pAttachments << '\n';
5503         s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
5504         s << '}';
5505         return s;
5506 }
5507
5508 std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
5509 {
5510         s << "VkPipelineDynamicStateCreateInfo = {\n";
5511         s << "\tsType = " << value.sType << '\n';
5512         s << "\tpNext = " << value.pNext << '\n';
5513         s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
5514         s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
5515         s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
5516         s << '}';
5517         return s;
5518 }
5519
5520 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
5521 {
5522         s << "VkGraphicsPipelineCreateInfo = {\n";
5523         s << "\tsType = " << value.sType << '\n';
5524         s << "\tpNext = " << value.pNext << '\n';
5525         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5526         s << "\tstageCount = " << value.stageCount << '\n';
5527         s << "\tpStages = " << value.pStages << '\n';
5528         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
5529         s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
5530         s << "\tpTessellationState = " << value.pTessellationState << '\n';
5531         s << "\tpViewportState = " << value.pViewportState << '\n';
5532         s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
5533         s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
5534         s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
5535         s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
5536         s << "\tpDynamicState = " << value.pDynamicState << '\n';
5537         s << "\tlayout = " << value.layout << '\n';
5538         s << "\trenderPass = " << value.renderPass << '\n';
5539         s << "\tsubpass = " << value.subpass << '\n';
5540         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5541         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5542         s << '}';
5543         return s;
5544 }
5545
5546 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
5547 {
5548         s << "VkPushConstantRange = {\n";
5549         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5550         s << "\toffset = " << value.offset << '\n';
5551         s << "\tsize = " << value.size << '\n';
5552         s << '}';
5553         return s;
5554 }
5555
5556 std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
5557 {
5558         s << "VkPipelineLayoutCreateInfo = {\n";
5559         s << "\tsType = " << value.sType << '\n';
5560         s << "\tpNext = " << value.pNext << '\n';
5561         s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
5562         s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
5563         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5564         s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
5565         s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
5566         s << '}';
5567         return s;
5568 }
5569
5570 std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
5571 {
5572         s << "VkSamplerCreateInfo = {\n";
5573         s << "\tsType = " << value.sType << '\n';
5574         s << "\tpNext = " << value.pNext << '\n';
5575         s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
5576         s << "\tmagFilter = " << value.magFilter << '\n';
5577         s << "\tminFilter = " << value.minFilter << '\n';
5578         s << "\tmipmapMode = " << value.mipmapMode << '\n';
5579         s << "\taddressModeU = " << value.addressModeU << '\n';
5580         s << "\taddressModeV = " << value.addressModeV << '\n';
5581         s << "\taddressModeW = " << value.addressModeW << '\n';
5582         s << "\tmipLodBias = " << value.mipLodBias << '\n';
5583         s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
5584         s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
5585         s << "\tcompareEnable = " << value.compareEnable << '\n';
5586         s << "\tcompareOp = " << value.compareOp << '\n';
5587         s << "\tminLod = " << value.minLod << '\n';
5588         s << "\tmaxLod = " << value.maxLod << '\n';
5589         s << "\tborderColor = " << value.borderColor << '\n';
5590         s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
5591         s << '}';
5592         return s;
5593 }
5594
5595 std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
5596 {
5597         s << "VkCopyDescriptorSet = {\n";
5598         s << "\tsType = " << value.sType << '\n';
5599         s << "\tpNext = " << value.pNext << '\n';
5600         s << "\tsrcSet = " << value.srcSet << '\n';
5601         s << "\tsrcBinding = " << value.srcBinding << '\n';
5602         s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
5603         s << "\tdstSet = " << value.dstSet << '\n';
5604         s << "\tdstBinding = " << value.dstBinding << '\n';
5605         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5606         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5607         s << '}';
5608         return s;
5609 }
5610
5611 std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
5612 {
5613         s << "VkDescriptorBufferInfo = {\n";
5614         s << "\tbuffer = " << value.buffer << '\n';
5615         s << "\toffset = " << value.offset << '\n';
5616         s << "\trange = " << value.range << '\n';
5617         s << '}';
5618         return s;
5619 }
5620
5621 std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
5622 {
5623         s << "VkDescriptorImageInfo = {\n";
5624         s << "\tsampler = " << value.sampler << '\n';
5625         s << "\timageView = " << value.imageView << '\n';
5626         s << "\timageLayout = " << value.imageLayout << '\n';
5627         s << '}';
5628         return s;
5629 }
5630
5631 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
5632 {
5633         s << "VkDescriptorPoolSize = {\n";
5634         s << "\ttype = " << value.type << '\n';
5635         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5636         s << '}';
5637         return s;
5638 }
5639
5640 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
5641 {
5642         s << "VkDescriptorPoolCreateInfo = {\n";
5643         s << "\tsType = " << value.sType << '\n';
5644         s << "\tpNext = " << value.pNext << '\n';
5645         s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
5646         s << "\tmaxSets = " << value.maxSets << '\n';
5647         s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
5648         s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
5649         s << '}';
5650         return s;
5651 }
5652
5653 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
5654 {
5655         s << "VkDescriptorSetAllocateInfo = {\n";
5656         s << "\tsType = " << value.sType << '\n';
5657         s << "\tpNext = " << value.pNext << '\n';
5658         s << "\tdescriptorPool = " << value.descriptorPool << '\n';
5659         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
5660         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5661         s << '}';
5662         return s;
5663 }
5664
5665 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
5666 {
5667         s << "VkDescriptorSetLayoutBinding = {\n";
5668         s << "\tbinding = " << value.binding << '\n';
5669         s << "\tdescriptorType = " << value.descriptorType << '\n';
5670         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5671         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5672         s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
5673         s << '}';
5674         return s;
5675 }
5676
5677 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
5678 {
5679         s << "VkDescriptorSetLayoutCreateInfo = {\n";
5680         s << "\tsType = " << value.sType << '\n';
5681         s << "\tpNext = " << value.pNext << '\n';
5682         s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
5683         s << "\tbindingCount = " << value.bindingCount << '\n';
5684         s << "\tpBindings = " << value.pBindings << '\n';
5685         s << '}';
5686         return s;
5687 }
5688
5689 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
5690 {
5691         s << "VkWriteDescriptorSet = {\n";
5692         s << "\tsType = " << value.sType << '\n';
5693         s << "\tpNext = " << value.pNext << '\n';
5694         s << "\tdstSet = " << value.dstSet << '\n';
5695         s << "\tdstBinding = " << value.dstBinding << '\n';
5696         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
5697         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
5698         s << "\tdescriptorType = " << value.descriptorType << '\n';
5699         s << "\tpImageInfo = " << value.pImageInfo << '\n';
5700         s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
5701         s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
5702         s << '}';
5703         return s;
5704 }
5705
5706 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
5707 {
5708         s << "VkAttachmentDescription = {\n";
5709         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
5710         s << "\tformat = " << value.format << '\n';
5711         s << "\tsamples = " << value.samples << '\n';
5712         s << "\tloadOp = " << value.loadOp << '\n';
5713         s << "\tstoreOp = " << value.storeOp << '\n';
5714         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
5715         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
5716         s << "\tinitialLayout = " << value.initialLayout << '\n';
5717         s << "\tfinalLayout = " << value.finalLayout << '\n';
5718         s << '}';
5719         return s;
5720 }
5721
5722 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
5723 {
5724         s << "VkAttachmentReference = {\n";
5725         s << "\tattachment = " << value.attachment << '\n';
5726         s << "\tlayout = " << value.layout << '\n';
5727         s << '}';
5728         return s;
5729 }
5730
5731 std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
5732 {
5733         s << "VkFramebufferCreateInfo = {\n";
5734         s << "\tsType = " << value.sType << '\n';
5735         s << "\tpNext = " << value.pNext << '\n';
5736         s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
5737         s << "\trenderPass = " << value.renderPass << '\n';
5738         s << "\tattachmentCount = " << value.attachmentCount << '\n';
5739         s << "\tpAttachments = " << value.pAttachments << '\n';
5740         s << "\twidth = " << value.width << '\n';
5741         s << "\theight = " << value.height << '\n';
5742         s << "\tlayers = " << value.layers << '\n';
5743         s << '}';
5744         return s;
5745 }
5746
5747 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
5748 {
5749         s << "VkSubpassDescription = {\n";
5750         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
5751         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
5752         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
5753         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
5754         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
5755         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
5756         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
5757         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
5758         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
5759         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
5760         s << '}';
5761         return s;
5762 }
5763
5764 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
5765 {
5766         s << "VkSubpassDependency = {\n";
5767         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
5768         s << "\tdstSubpass = " << value.dstSubpass << '\n';
5769         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
5770         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
5771         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5772         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5773         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
5774         s << '}';
5775         return s;
5776 }
5777
5778 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
5779 {
5780         s << "VkRenderPassCreateInfo = {\n";
5781         s << "\tsType = " << value.sType << '\n';
5782         s << "\tpNext = " << value.pNext << '\n';
5783         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
5784         s << "\tattachmentCount = " << value.attachmentCount << '\n';
5785         s << "\tpAttachments = " << value.pAttachments << '\n';
5786         s << "\tsubpassCount = " << value.subpassCount << '\n';
5787         s << "\tpSubpasses = " << value.pSubpasses << '\n';
5788         s << "\tdependencyCount = " << value.dependencyCount << '\n';
5789         s << "\tpDependencies = " << value.pDependencies << '\n';
5790         s << '}';
5791         return s;
5792 }
5793
5794 std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
5795 {
5796         s << "VkCommandPoolCreateInfo = {\n";
5797         s << "\tsType = " << value.sType << '\n';
5798         s << "\tpNext = " << value.pNext << '\n';
5799         s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
5800         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5801         s << '}';
5802         return s;
5803 }
5804
5805 std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
5806 {
5807         s << "VkCommandBufferAllocateInfo = {\n";
5808         s << "\tsType = " << value.sType << '\n';
5809         s << "\tpNext = " << value.pNext << '\n';
5810         s << "\tcommandPool = " << value.commandPool << '\n';
5811         s << "\tlevel = " << value.level << '\n';
5812         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
5813         s << '}';
5814         return s;
5815 }
5816
5817 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
5818 {
5819         s << "VkCommandBufferInheritanceInfo = {\n";
5820         s << "\tsType = " << value.sType << '\n';
5821         s << "\tpNext = " << value.pNext << '\n';
5822         s << "\trenderPass = " << value.renderPass << '\n';
5823         s << "\tsubpass = " << value.subpass << '\n';
5824         s << "\tframebuffer = " << value.framebuffer << '\n';
5825         s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
5826         s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
5827         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5828         s << '}';
5829         return s;
5830 }
5831
5832 std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
5833 {
5834         s << "VkCommandBufferBeginInfo = {\n";
5835         s << "\tsType = " << value.sType << '\n';
5836         s << "\tpNext = " << value.pNext << '\n';
5837         s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
5838         s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
5839         s << '}';
5840         return s;
5841 }
5842
5843 std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
5844 {
5845         s << "VkBufferCopy = {\n";
5846         s << "\tsrcOffset = " << value.srcOffset << '\n';
5847         s << "\tdstOffset = " << value.dstOffset << '\n';
5848         s << "\tsize = " << value.size << '\n';
5849         s << '}';
5850         return s;
5851 }
5852
5853 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
5854 {
5855         s << "VkImageSubresourceLayers = {\n";
5856         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5857         s << "\tmipLevel = " << value.mipLevel << '\n';
5858         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5859         s << "\tlayerCount = " << value.layerCount << '\n';
5860         s << '}';
5861         return s;
5862 }
5863
5864 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
5865 {
5866         s << "VkBufferImageCopy = {\n";
5867         s << "\tbufferOffset = " << value.bufferOffset << '\n';
5868         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
5869         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
5870         s << "\timageSubresource = " << value.imageSubresource << '\n';
5871         s << "\timageOffset = " << value.imageOffset << '\n';
5872         s << "\timageExtent = " << value.imageExtent << '\n';
5873         s << '}';
5874         return s;
5875 }
5876
5877 std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
5878 {
5879         s << "VkClearColorValue = {\n";
5880         s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
5881         s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
5882         s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
5883         s << '}';
5884         return s;
5885 }
5886
5887 std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
5888 {
5889         s << "VkClearDepthStencilValue = {\n";
5890         s << "\tdepth = " << value.depth << '\n';
5891         s << "\tstencil = " << value.stencil << '\n';
5892         s << '}';
5893         return s;
5894 }
5895
5896 std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
5897 {
5898         s << "VkClearValue = {\n";
5899         s << "\tcolor = " << value.color << '\n';
5900         s << "\tdepthStencil = " << value.depthStencil << '\n';
5901         s << '}';
5902         return s;
5903 }
5904
5905 std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
5906 {
5907         s << "VkClearAttachment = {\n";
5908         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5909         s << "\tcolorAttachment = " << value.colorAttachment << '\n';
5910         s << "\tclearValue = " << value.clearValue << '\n';
5911         s << '}';
5912         return s;
5913 }
5914
5915 std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
5916 {
5917         s << "VkClearRect = {\n";
5918         s << "\trect = " << value.rect << '\n';
5919         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
5920         s << "\tlayerCount = " << value.layerCount << '\n';
5921         s << '}';
5922         return s;
5923 }
5924
5925 std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
5926 {
5927         s << "VkImageBlit = {\n";
5928         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5929         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
5930         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5931         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
5932         s << '}';
5933         return s;
5934 }
5935
5936 std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
5937 {
5938         s << "VkImageCopy = {\n";
5939         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5940         s << "\tsrcOffset = " << value.srcOffset << '\n';
5941         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5942         s << "\tdstOffset = " << value.dstOffset << '\n';
5943         s << "\textent = " << value.extent << '\n';
5944         s << '}';
5945         return s;
5946 }
5947
5948 std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
5949 {
5950         s << "VkImageResolve = {\n";
5951         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
5952         s << "\tsrcOffset = " << value.srcOffset << '\n';
5953         s << "\tdstSubresource = " << value.dstSubresource << '\n';
5954         s << "\tdstOffset = " << value.dstOffset << '\n';
5955         s << "\textent = " << value.extent << '\n';
5956         s << '}';
5957         return s;
5958 }
5959
5960 std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
5961 {
5962         s << "VkRenderPassBeginInfo = {\n";
5963         s << "\tsType = " << value.sType << '\n';
5964         s << "\tpNext = " << value.pNext << '\n';
5965         s << "\trenderPass = " << value.renderPass << '\n';
5966         s << "\tframebuffer = " << value.framebuffer << '\n';
5967         s << "\trenderArea = " << value.renderArea << '\n';
5968         s << "\tclearValueCount = " << value.clearValueCount << '\n';
5969         s << "\tpClearValues = " << value.pClearValues << '\n';
5970         s << '}';
5971         return s;
5972 }
5973
5974 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
5975 {
5976         s << "VkPhysicalDeviceSubgroupProperties = {\n";
5977         s << "\tsType = " << value.sType << '\n';
5978         s << "\tpNext = " << value.pNext << '\n';
5979         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
5980         s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
5981         s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
5982         s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
5983         s << '}';
5984         return s;
5985 }
5986
5987 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
5988 {
5989         s << "VkBindBufferMemoryInfo = {\n";
5990         s << "\tsType = " << value.sType << '\n';
5991         s << "\tpNext = " << value.pNext << '\n';
5992         s << "\tbuffer = " << value.buffer << '\n';
5993         s << "\tmemory = " << value.memory << '\n';
5994         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5995         s << '}';
5996         return s;
5997 }
5998
5999 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
6000 {
6001         s << "VkBindImageMemoryInfo = {\n";
6002         s << "\tsType = " << value.sType << '\n';
6003         s << "\tpNext = " << value.pNext << '\n';
6004         s << "\timage = " << value.image << '\n';
6005         s << "\tmemory = " << value.memory << '\n';
6006         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6007         s << '}';
6008         return s;
6009 }
6010
6011 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
6012 {
6013         s << "VkPhysicalDevice16BitStorageFeatures = {\n";
6014         s << "\tsType = " << value.sType << '\n';
6015         s << "\tpNext = " << value.pNext << '\n';
6016         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6017         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6018         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6019         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6020         s << '}';
6021         return s;
6022 }
6023
6024 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
6025 {
6026         s << "VkMemoryDedicatedRequirements = {\n";
6027         s << "\tsType = " << value.sType << '\n';
6028         s << "\tpNext = " << value.pNext << '\n';
6029         s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
6030         s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
6031         s << '}';
6032         return s;
6033 }
6034
6035 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
6036 {
6037         s << "VkMemoryDedicatedAllocateInfo = {\n";
6038         s << "\tsType = " << value.sType << '\n';
6039         s << "\tpNext = " << value.pNext << '\n';
6040         s << "\timage = " << value.image << '\n';
6041         s << "\tbuffer = " << value.buffer << '\n';
6042         s << '}';
6043         return s;
6044 }
6045
6046 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
6047 {
6048         s << "VkMemoryAllocateFlagsInfo = {\n";
6049         s << "\tsType = " << value.sType << '\n';
6050         s << "\tpNext = " << value.pNext << '\n';
6051         s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
6052         s << "\tdeviceMask = " << value.deviceMask << '\n';
6053         s << '}';
6054         return s;
6055 }
6056
6057 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
6058 {
6059         s << "VkDeviceGroupRenderPassBeginInfo = {\n";
6060         s << "\tsType = " << value.sType << '\n';
6061         s << "\tpNext = " << value.pNext << '\n';
6062         s << "\tdeviceMask = " << value.deviceMask << '\n';
6063         s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
6064         s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
6065         s << '}';
6066         return s;
6067 }
6068
6069 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
6070 {
6071         s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
6072         s << "\tsType = " << value.sType << '\n';
6073         s << "\tpNext = " << value.pNext << '\n';
6074         s << "\tdeviceMask = " << value.deviceMask << '\n';
6075         s << '}';
6076         return s;
6077 }
6078
6079 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
6080 {
6081         s << "VkDeviceGroupSubmitInfo = {\n";
6082         s << "\tsType = " << value.sType << '\n';
6083         s << "\tpNext = " << value.pNext << '\n';
6084         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6085         s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
6086         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6087         s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
6088         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6089         s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
6090         s << '}';
6091         return s;
6092 }
6093
6094 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
6095 {
6096         s << "VkDeviceGroupBindSparseInfo = {\n";
6097         s << "\tsType = " << value.sType << '\n';
6098         s << "\tpNext = " << value.pNext << '\n';
6099         s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
6100         s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
6101         s << '}';
6102         return s;
6103 }
6104
6105 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
6106 {
6107         s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
6108         s << "\tsType = " << value.sType << '\n';
6109         s << "\tpNext = " << value.pNext << '\n';
6110         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6111         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6112         s << '}';
6113         return s;
6114 }
6115
6116 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
6117 {
6118         s << "VkBindImageMemoryDeviceGroupInfo = {\n";
6119         s << "\tsType = " << value.sType << '\n';
6120         s << "\tpNext = " << value.pNext << '\n';
6121         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6122         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6123         s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
6124         s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
6125         s << '}';
6126         return s;
6127 }
6128
6129 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
6130 {
6131         s << "VkPhysicalDeviceGroupProperties = {\n";
6132         s << "\tsType = " << value.sType << '\n';
6133         s << "\tpNext = " << value.pNext << '\n';
6134         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6135         s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
6136         s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
6137         s << '}';
6138         return s;
6139 }
6140
6141 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
6142 {
6143         s << "VkDeviceGroupDeviceCreateInfo = {\n";
6144         s << "\tsType = " << value.sType << '\n';
6145         s << "\tpNext = " << value.pNext << '\n';
6146         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6147         s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
6148         s << '}';
6149         return s;
6150 }
6151
6152 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
6153 {
6154         s << "VkBufferMemoryRequirementsInfo2 = {\n";
6155         s << "\tsType = " << value.sType << '\n';
6156         s << "\tpNext = " << value.pNext << '\n';
6157         s << "\tbuffer = " << value.buffer << '\n';
6158         s << '}';
6159         return s;
6160 }
6161
6162 std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
6163 {
6164         s << "VkImageMemoryRequirementsInfo2 = {\n";
6165         s << "\tsType = " << value.sType << '\n';
6166         s << "\tpNext = " << value.pNext << '\n';
6167         s << "\timage = " << value.image << '\n';
6168         s << '}';
6169         return s;
6170 }
6171
6172 std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
6173 {
6174         s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
6175         s << "\tsType = " << value.sType << '\n';
6176         s << "\tpNext = " << value.pNext << '\n';
6177         s << "\timage = " << value.image << '\n';
6178         s << '}';
6179         return s;
6180 }
6181
6182 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
6183 {
6184         s << "VkMemoryRequirements2 = {\n";
6185         s << "\tsType = " << value.sType << '\n';
6186         s << "\tpNext = " << value.pNext << '\n';
6187         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6188         s << '}';
6189         return s;
6190 }
6191
6192 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
6193 {
6194         s << "VkSparseImageMemoryRequirements2 = {\n";
6195         s << "\tsType = " << value.sType << '\n';
6196         s << "\tpNext = " << value.pNext << '\n';
6197         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6198         s << '}';
6199         return s;
6200 }
6201
6202 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
6203 {
6204         s << "VkPhysicalDeviceFeatures2 = {\n";
6205         s << "\tsType = " << value.sType << '\n';
6206         s << "\tpNext = " << value.pNext << '\n';
6207         s << "\tfeatures = " << value.features << '\n';
6208         s << '}';
6209         return s;
6210 }
6211
6212 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
6213 {
6214         s << "VkPhysicalDeviceProperties2 = {\n";
6215         s << "\tsType = " << value.sType << '\n';
6216         s << "\tpNext = " << value.pNext << '\n';
6217         s << "\tproperties = " << value.properties << '\n';
6218         s << '}';
6219         return s;
6220 }
6221
6222 std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
6223 {
6224         s << "VkFormatProperties2 = {\n";
6225         s << "\tsType = " << value.sType << '\n';
6226         s << "\tpNext = " << value.pNext << '\n';
6227         s << "\tformatProperties = " << value.formatProperties << '\n';
6228         s << '}';
6229         return s;
6230 }
6231
6232 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
6233 {
6234         s << "VkImageFormatProperties2 = {\n";
6235         s << "\tsType = " << value.sType << '\n';
6236         s << "\tpNext = " << value.pNext << '\n';
6237         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
6238         s << '}';
6239         return s;
6240 }
6241
6242 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
6243 {
6244         s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
6245         s << "\tsType = " << value.sType << '\n';
6246         s << "\tpNext = " << value.pNext << '\n';
6247         s << "\tformat = " << value.format << '\n';
6248         s << "\ttype = " << value.type << '\n';
6249         s << "\ttiling = " << value.tiling << '\n';
6250         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6251         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6252         s << '}';
6253         return s;
6254 }
6255
6256 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
6257 {
6258         s << "VkQueueFamilyProperties2 = {\n";
6259         s << "\tsType = " << value.sType << '\n';
6260         s << "\tpNext = " << value.pNext << '\n';
6261         s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
6262         s << '}';
6263         return s;
6264 }
6265
6266 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
6267 {
6268         s << "VkPhysicalDeviceMemoryProperties2 = {\n";
6269         s << "\tsType = " << value.sType << '\n';
6270         s << "\tpNext = " << value.pNext << '\n';
6271         s << "\tmemoryProperties = " << value.memoryProperties << '\n';
6272         s << '}';
6273         return s;
6274 }
6275
6276 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
6277 {
6278         s << "VkSparseImageFormatProperties2 = {\n";
6279         s << "\tsType = " << value.sType << '\n';
6280         s << "\tpNext = " << value.pNext << '\n';
6281         s << "\tproperties = " << value.properties << '\n';
6282         s << '}';
6283         return s;
6284 }
6285
6286 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
6287 {
6288         s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
6289         s << "\tsType = " << value.sType << '\n';
6290         s << "\tpNext = " << value.pNext << '\n';
6291         s << "\tformat = " << value.format << '\n';
6292         s << "\ttype = " << value.type << '\n';
6293         s << "\tsamples = " << value.samples << '\n';
6294         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6295         s << "\ttiling = " << value.tiling << '\n';
6296         s << '}';
6297         return s;
6298 }
6299
6300 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
6301 {
6302         s << "VkPhysicalDevicePointClippingProperties = {\n";
6303         s << "\tsType = " << value.sType << '\n';
6304         s << "\tpNext = " << value.pNext << '\n';
6305         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6306         s << '}';
6307         return s;
6308 }
6309
6310 std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
6311 {
6312         s << "VkInputAttachmentAspectReference = {\n";
6313         s << "\tsubpass = " << value.subpass << '\n';
6314         s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
6315         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6316         s << '}';
6317         return s;
6318 }
6319
6320 std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
6321 {
6322         s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
6323         s << "\tsType = " << value.sType << '\n';
6324         s << "\tpNext = " << value.pNext << '\n';
6325         s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
6326         s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
6327         s << '}';
6328         return s;
6329 }
6330
6331 std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
6332 {
6333         s << "VkImageViewUsageCreateInfo = {\n";
6334         s << "\tsType = " << value.sType << '\n';
6335         s << "\tpNext = " << value.pNext << '\n';
6336         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6337         s << '}';
6338         return s;
6339 }
6340
6341 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
6342 {
6343         s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
6344         s << "\tsType = " << value.sType << '\n';
6345         s << "\tpNext = " << value.pNext << '\n';
6346         s << "\tdomainOrigin = " << value.domainOrigin << '\n';
6347         s << '}';
6348         return s;
6349 }
6350
6351 std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
6352 {
6353         s << "VkRenderPassMultiviewCreateInfo = {\n";
6354         s << "\tsType = " << value.sType << '\n';
6355         s << "\tpNext = " << value.pNext << '\n';
6356         s << "\tsubpassCount = " << value.subpassCount << '\n';
6357         s << "\tpViewMasks = " << value.pViewMasks << '\n';
6358         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6359         s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
6360         s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
6361         s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
6362         s << '}';
6363         return s;
6364 }
6365
6366 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
6367 {
6368         s << "VkPhysicalDeviceMultiviewFeatures = {\n";
6369         s << "\tsType = " << value.sType << '\n';
6370         s << "\tpNext = " << value.pNext << '\n';
6371         s << "\tmultiview = " << value.multiview << '\n';
6372         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6373         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6374         s << '}';
6375         return s;
6376 }
6377
6378 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
6379 {
6380         s << "VkPhysicalDeviceMultiviewProperties = {\n";
6381         s << "\tsType = " << value.sType << '\n';
6382         s << "\tpNext = " << value.pNext << '\n';
6383         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6384         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6385         s << '}';
6386         return s;
6387 }
6388
6389 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
6390 {
6391         s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
6392         s << "\tsType = " << value.sType << '\n';
6393         s << "\tpNext = " << value.pNext << '\n';
6394         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6395         s << "\tvariablePointers = " << value.variablePointers << '\n';
6396         s << '}';
6397         return s;
6398 }
6399
6400 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
6401 {
6402         s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
6403         s << "\tsType = " << value.sType << '\n';
6404         s << "\tpNext = " << value.pNext << '\n';
6405         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6406         s << '}';
6407         return s;
6408 }
6409
6410 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
6411 {
6412         s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
6413         s << "\tsType = " << value.sType << '\n';
6414         s << "\tpNext = " << value.pNext << '\n';
6415         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6416         s << '}';
6417         return s;
6418 }
6419
6420 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
6421 {
6422         s << "VkDeviceQueueInfo2 = {\n";
6423         s << "\tsType = " << value.sType << '\n';
6424         s << "\tpNext = " << value.pNext << '\n';
6425         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
6426         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6427         s << "\tqueueIndex = " << value.queueIndex << '\n';
6428         s << '}';
6429         return s;
6430 }
6431
6432 std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
6433 {
6434         s << "VkProtectedSubmitInfo = {\n";
6435         s << "\tsType = " << value.sType << '\n';
6436         s << "\tpNext = " << value.pNext << '\n';
6437         s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
6438         s << '}';
6439         return s;
6440 }
6441
6442 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
6443 {
6444         s << "VkSamplerYcbcrConversionCreateInfo = {\n";
6445         s << "\tsType = " << value.sType << '\n';
6446         s << "\tpNext = " << value.pNext << '\n';
6447         s << "\tformat = " << value.format << '\n';
6448         s << "\tycbcrModel = " << value.ycbcrModel << '\n';
6449         s << "\tycbcrRange = " << value.ycbcrRange << '\n';
6450         s << "\tcomponents = " << value.components << '\n';
6451         s << "\txChromaOffset = " << value.xChromaOffset << '\n';
6452         s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
6453         s << "\tchromaFilter = " << value.chromaFilter << '\n';
6454         s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
6455         s << '}';
6456         return s;
6457 }
6458
6459 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
6460 {
6461         s << "VkSamplerYcbcrConversionInfo = {\n";
6462         s << "\tsType = " << value.sType << '\n';
6463         s << "\tpNext = " << value.pNext << '\n';
6464         s << "\tconversion = " << value.conversion << '\n';
6465         s << '}';
6466         return s;
6467 }
6468
6469 std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
6470 {
6471         s << "VkBindImagePlaneMemoryInfo = {\n";
6472         s << "\tsType = " << value.sType << '\n';
6473         s << "\tpNext = " << value.pNext << '\n';
6474         s << "\tplaneAspect = " << value.planeAspect << '\n';
6475         s << '}';
6476         return s;
6477 }
6478
6479 std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
6480 {
6481         s << "VkImagePlaneMemoryRequirementsInfo = {\n";
6482         s << "\tsType = " << value.sType << '\n';
6483         s << "\tpNext = " << value.pNext << '\n';
6484         s << "\tplaneAspect = " << value.planeAspect << '\n';
6485         s << '}';
6486         return s;
6487 }
6488
6489 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
6490 {
6491         s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
6492         s << "\tsType = " << value.sType << '\n';
6493         s << "\tpNext = " << value.pNext << '\n';
6494         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6495         s << '}';
6496         return s;
6497 }
6498
6499 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
6500 {
6501         s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
6502         s << "\tsType = " << value.sType << '\n';
6503         s << "\tpNext = " << value.pNext << '\n';
6504         s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
6505         s << '}';
6506         return s;
6507 }
6508
6509 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
6510 {
6511         s << "VkDescriptorUpdateTemplateEntry = {\n";
6512         s << "\tdstBinding = " << value.dstBinding << '\n';
6513         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6514         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6515         s << "\tdescriptorType = " << value.descriptorType << '\n';
6516         s << "\toffset = " << value.offset << '\n';
6517         s << "\tstride = " << value.stride << '\n';
6518         s << '}';
6519         return s;
6520 }
6521
6522 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
6523 {
6524         s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
6525         s << "\tsType = " << value.sType << '\n';
6526         s << "\tpNext = " << value.pNext << '\n';
6527         s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
6528         s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
6529         s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
6530         s << "\ttemplateType = " << value.templateType << '\n';
6531         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
6532         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6533         s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
6534         s << "\tset = " << value.set << '\n';
6535         s << '}';
6536         return s;
6537 }
6538
6539 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
6540 {
6541         s << "VkExternalMemoryProperties = {\n";
6542         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
6543         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6544         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6545         s << '}';
6546         return s;
6547 }
6548
6549 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
6550 {
6551         s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
6552         s << "\tsType = " << value.sType << '\n';
6553         s << "\tpNext = " << value.pNext << '\n';
6554         s << "\thandleType = " << value.handleType << '\n';
6555         s << '}';
6556         return s;
6557 }
6558
6559 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
6560 {
6561         s << "VkExternalImageFormatProperties = {\n";
6562         s << "\tsType = " << value.sType << '\n';
6563         s << "\tpNext = " << value.pNext << '\n';
6564         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6565         s << '}';
6566         return s;
6567 }
6568
6569 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
6570 {
6571         s << "VkPhysicalDeviceExternalBufferInfo = {\n";
6572         s << "\tsType = " << value.sType << '\n';
6573         s << "\tpNext = " << value.pNext << '\n';
6574         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6575         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6576         s << "\thandleType = " << value.handleType << '\n';
6577         s << '}';
6578         return s;
6579 }
6580
6581 std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
6582 {
6583         s << "VkExternalBufferProperties = {\n";
6584         s << "\tsType = " << value.sType << '\n';
6585         s << "\tpNext = " << value.pNext << '\n';
6586         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6587         s << '}';
6588         return s;
6589 }
6590
6591 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
6592 {
6593         s << "VkPhysicalDeviceIDProperties = {\n";
6594         s << "\tsType = " << value.sType << '\n';
6595         s << "\tpNext = " << value.pNext << '\n';
6596         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';
6597         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';
6598         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';
6599         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
6600         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
6601         s << '}';
6602         return s;
6603 }
6604
6605 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
6606 {
6607         s << "VkExternalMemoryImageCreateInfo = {\n";
6608         s << "\tsType = " << value.sType << '\n';
6609         s << "\tpNext = " << value.pNext << '\n';
6610         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6611         s << '}';
6612         return s;
6613 }
6614
6615 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
6616 {
6617         s << "VkExternalMemoryBufferCreateInfo = {\n";
6618         s << "\tsType = " << value.sType << '\n';
6619         s << "\tpNext = " << value.pNext << '\n';
6620         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6621         s << '}';
6622         return s;
6623 }
6624
6625 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
6626 {
6627         s << "VkExportMemoryAllocateInfo = {\n";
6628         s << "\tsType = " << value.sType << '\n';
6629         s << "\tpNext = " << value.pNext << '\n';
6630         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
6631         s << '}';
6632         return s;
6633 }
6634
6635 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
6636 {
6637         s << "VkPhysicalDeviceExternalFenceInfo = {\n";
6638         s << "\tsType = " << value.sType << '\n';
6639         s << "\tpNext = " << value.pNext << '\n';
6640         s << "\thandleType = " << value.handleType << '\n';
6641         s << '}';
6642         return s;
6643 }
6644
6645 std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
6646 {
6647         s << "VkExternalFenceProperties = {\n";
6648         s << "\tsType = " << value.sType << '\n';
6649         s << "\tpNext = " << value.pNext << '\n';
6650         s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6651         s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6652         s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
6653         s << '}';
6654         return s;
6655 }
6656
6657 std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
6658 {
6659         s << "VkExportFenceCreateInfo = {\n";
6660         s << "\tsType = " << value.sType << '\n';
6661         s << "\tpNext = " << value.pNext << '\n';
6662         s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
6663         s << '}';
6664         return s;
6665 }
6666
6667 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
6668 {
6669         s << "VkExportSemaphoreCreateInfo = {\n";
6670         s << "\tsType = " << value.sType << '\n';
6671         s << "\tpNext = " << value.pNext << '\n';
6672         s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
6673         s << '}';
6674         return s;
6675 }
6676
6677 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
6678 {
6679         s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
6680         s << "\tsType = " << value.sType << '\n';
6681         s << "\tpNext = " << value.pNext << '\n';
6682         s << "\thandleType = " << value.handleType << '\n';
6683         s << '}';
6684         return s;
6685 }
6686
6687 std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
6688 {
6689         s << "VkExternalSemaphoreProperties = {\n";
6690         s << "\tsType = " << value.sType << '\n';
6691         s << "\tpNext = " << value.pNext << '\n';
6692         s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6693         s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6694         s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
6695         s << '}';
6696         return s;
6697 }
6698
6699 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
6700 {
6701         s << "VkPhysicalDeviceMaintenance3Properties = {\n";
6702         s << "\tsType = " << value.sType << '\n';
6703         s << "\tpNext = " << value.pNext << '\n';
6704         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
6705         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
6706         s << '}';
6707         return s;
6708 }
6709
6710 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
6711 {
6712         s << "VkDescriptorSetLayoutSupport = {\n";
6713         s << "\tsType = " << value.sType << '\n';
6714         s << "\tpNext = " << value.pNext << '\n';
6715         s << "\tsupported = " << value.supported << '\n';
6716         s << '}';
6717         return s;
6718 }
6719
6720 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
6721 {
6722         s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
6723         s << "\tsType = " << value.sType << '\n';
6724         s << "\tpNext = " << value.pNext << '\n';
6725         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6726         s << '}';
6727         return s;
6728 }
6729
6730 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
6731 {
6732         s << "VkPhysicalDeviceVulkan11Features = {\n";
6733         s << "\tsType = " << value.sType << '\n';
6734         s << "\tpNext = " << value.pNext << '\n';
6735         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6736         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6737         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6738         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6739         s << "\tmultiview = " << value.multiview << '\n';
6740         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6741         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6742         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6743         s << "\tvariablePointers = " << value.variablePointers << '\n';
6744         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6745         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6746         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
6747         s << '}';
6748         return s;
6749 }
6750
6751 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
6752 {
6753         s << "VkPhysicalDeviceVulkan11Properties = {\n";
6754         s << "\tsType = " << value.sType << '\n';
6755         s << "\tpNext = " << value.pNext << '\n';
6756         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';
6757         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';
6758         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';
6759         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
6760         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
6761         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
6762         s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
6763         s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
6764         s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
6765         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6766         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6767         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6768         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6769         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
6770         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
6771         s << '}';
6772         return s;
6773 }
6774
6775 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
6776 {
6777         s << "VkPhysicalDeviceVulkan12Features = {\n";
6778         s << "\tsType = " << value.sType << '\n';
6779         s << "\tpNext = " << value.pNext << '\n';
6780         s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
6781         s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
6782         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
6783         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
6784         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
6785         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
6786         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
6787         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
6788         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
6789         s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
6790         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
6791         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
6792         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
6793         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
6794         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
6795         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
6796         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
6797         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
6798         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
6799         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
6800         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
6801         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
6802         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
6803         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
6804         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
6805         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
6806         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
6807         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
6808         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
6809         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
6810         s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
6811         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
6812         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
6813         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
6814         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
6815         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
6816         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
6817         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
6818         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
6819         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
6820         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
6821         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
6822         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
6823         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
6824         s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
6825         s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
6826         s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
6827         s << '}';
6828         return s;
6829 }
6830
6831 std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
6832 {
6833         s << "VkConformanceVersion = {\n";
6834         s << "\tmajor = " << value.major << '\n';
6835         s << "\tminor = " << value.minor << '\n';
6836         s << "\tsubminor = " << value.subminor << '\n';
6837         s << "\tpatch = " << value.patch << '\n';
6838         s << '}';
6839         return s;
6840 }
6841
6842 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
6843 {
6844         s << "VkPhysicalDeviceVulkan12Properties = {\n";
6845         s << "\tsType = " << value.sType << '\n';
6846         s << "\tpNext = " << value.pNext << '\n';
6847         s << "\tdriverID = " << value.driverID << '\n';
6848         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
6849         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
6850         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
6851         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
6852         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
6853         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
6854         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
6855         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
6856         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
6857         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
6858         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
6859         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
6860         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
6861         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
6862         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
6863         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
6864         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
6865         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
6866         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
6867         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
6868         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
6869         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
6870         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
6871         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
6872         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
6873         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
6874         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
6875         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
6876         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
6877         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
6878         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
6879         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
6880         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
6881         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
6882         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
6883         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
6884         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
6885         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
6886         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
6887         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
6888         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
6889         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
6890         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
6891         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
6892         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
6893         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
6894         s << "\tindependentResolve = " << value.independentResolve << '\n';
6895         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
6896         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
6897         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
6898         s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
6899         s << '}';
6900         return s;
6901 }
6902
6903 std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
6904 {
6905         s << "VkImageFormatListCreateInfo = {\n";
6906         s << "\tsType = " << value.sType << '\n';
6907         s << "\tpNext = " << value.pNext << '\n';
6908         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
6909         s << "\tpViewFormats = " << value.pViewFormats << '\n';
6910         s << '}';
6911         return s;
6912 }
6913
6914 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
6915 {
6916         s << "VkAttachmentDescription2 = {\n";
6917         s << "\tsType = " << value.sType << '\n';
6918         s << "\tpNext = " << value.pNext << '\n';
6919         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6920         s << "\tformat = " << value.format << '\n';
6921         s << "\tsamples = " << value.samples << '\n';
6922         s << "\tloadOp = " << value.loadOp << '\n';
6923         s << "\tstoreOp = " << value.storeOp << '\n';
6924         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6925         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6926         s << "\tinitialLayout = " << value.initialLayout << '\n';
6927         s << "\tfinalLayout = " << value.finalLayout << '\n';
6928         s << '}';
6929         return s;
6930 }
6931
6932 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
6933 {
6934         s << "VkAttachmentReference2 = {\n";
6935         s << "\tsType = " << value.sType << '\n';
6936         s << "\tpNext = " << value.pNext << '\n';
6937         s << "\tattachment = " << value.attachment << '\n';
6938         s << "\tlayout = " << value.layout << '\n';
6939         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6940         s << '}';
6941         return s;
6942 }
6943
6944 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
6945 {
6946         s << "VkSubpassDescription2 = {\n";
6947         s << "\tsType = " << value.sType << '\n';
6948         s << "\tpNext = " << value.pNext << '\n';
6949         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6950         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6951         s << "\tviewMask = " << value.viewMask << '\n';
6952         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6953         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6954         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6955         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6956         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6957         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6958         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6959         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6960         s << '}';
6961         return s;
6962 }
6963
6964 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
6965 {
6966         s << "VkSubpassDependency2 = {\n";
6967         s << "\tsType = " << value.sType << '\n';
6968         s << "\tpNext = " << value.pNext << '\n';
6969         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6970         s << "\tdstSubpass = " << value.dstSubpass << '\n';
6971         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6972         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6973         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6974         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6975         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6976         s << "\tviewOffset = " << value.viewOffset << '\n';
6977         s << '}';
6978         return s;
6979 }
6980
6981 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
6982 {
6983         s << "VkRenderPassCreateInfo2 = {\n";
6984         s << "\tsType = " << value.sType << '\n';
6985         s << "\tpNext = " << value.pNext << '\n';
6986         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6987         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6988         s << "\tpAttachments = " << value.pAttachments << '\n';
6989         s << "\tsubpassCount = " << value.subpassCount << '\n';
6990         s << "\tpSubpasses = " << value.pSubpasses << '\n';
6991         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6992         s << "\tpDependencies = " << value.pDependencies << '\n';
6993         s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
6994         s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
6995         s << '}';
6996         return s;
6997 }
6998
6999 std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
7000 {
7001         s << "VkSubpassBeginInfo = {\n";
7002         s << "\tsType = " << value.sType << '\n';
7003         s << "\tpNext = " << value.pNext << '\n';
7004         s << "\tcontents = " << value.contents << '\n';
7005         s << '}';
7006         return s;
7007 }
7008
7009 std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
7010 {
7011         s << "VkSubpassEndInfo = {\n";
7012         s << "\tsType = " << value.sType << '\n';
7013         s << "\tpNext = " << value.pNext << '\n';
7014         s << '}';
7015         return s;
7016 }
7017
7018 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
7019 {
7020         s << "VkPhysicalDevice8BitStorageFeatures = {\n";
7021         s << "\tsType = " << value.sType << '\n';
7022         s << "\tpNext = " << value.pNext << '\n';
7023         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
7024         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
7025         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
7026         s << '}';
7027         return s;
7028 }
7029
7030 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7031 {
7032         s << "VkPhysicalDeviceDriverProperties = {\n";
7033         s << "\tsType = " << value.sType << '\n';
7034         s << "\tpNext = " << value.pNext << '\n';
7035         s << "\tdriverID = " << value.driverID << '\n';
7036         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7037         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7038         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7039         s << '}';
7040         return s;
7041 }
7042
7043 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
7044 {
7045         s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
7046         s << "\tsType = " << value.sType << '\n';
7047         s << "\tpNext = " << value.pNext << '\n';
7048         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
7049         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
7050         s << '}';
7051         return s;
7052 }
7053
7054 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
7055 {
7056         s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
7057         s << "\tsType = " << value.sType << '\n';
7058         s << "\tpNext = " << value.pNext << '\n';
7059         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
7060         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
7061         s << '}';
7062         return s;
7063 }
7064
7065 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
7066 {
7067         s << "VkPhysicalDeviceFloatControlsProperties = {\n";
7068         s << "\tsType = " << value.sType << '\n';
7069         s << "\tpNext = " << value.pNext << '\n';
7070         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
7071         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
7072         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
7073         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
7074         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
7075         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
7076         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
7077         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
7078         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
7079         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
7080         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
7081         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
7082         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
7083         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
7084         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
7085         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
7086         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7087         s << '}';
7088         return s;
7089 }
7090
7091 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
7092 {
7093         s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
7094         s << "\tsType = " << value.sType << '\n';
7095         s << "\tpNext = " << value.pNext << '\n';
7096         s << "\tbindingCount = " << value.bindingCount << '\n';
7097         s << "\tpBindingFlags = " << value.pBindingFlags << '\n';
7098         s << '}';
7099         return s;
7100 }
7101
7102 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
7103 {
7104         s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
7105         s << "\tsType = " << value.sType << '\n';
7106         s << "\tpNext = " << value.pNext << '\n';
7107         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7108         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7109         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7110         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7111         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7112         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7113         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7114         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7115         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7116         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7117         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7118         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7119         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7120         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7121         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7122         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7123         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7124         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7125         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7126         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7127         s << '}';
7128         return s;
7129 }
7130
7131 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
7132 {
7133         s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
7134         s << "\tsType = " << value.sType << '\n';
7135         s << "\tpNext = " << value.pNext << '\n';
7136         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7137         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7138         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7139         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7140         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7141         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7142         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7143         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7144         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7145         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7146         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7147         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7148         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7149         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7150         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7151         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7152         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7153         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7154         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7155         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7156         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7157         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7158         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7159         s << '}';
7160         return s;
7161 }
7162
7163 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
7164 {
7165         s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
7166         s << "\tsType = " << value.sType << '\n';
7167         s << "\tpNext = " << value.pNext << '\n';
7168         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
7169         s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
7170         s << '}';
7171         return s;
7172 }
7173
7174 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
7175 {
7176         s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
7177         s << "\tsType = " << value.sType << '\n';
7178         s << "\tpNext = " << value.pNext << '\n';
7179         s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
7180         s << '}';
7181         return s;
7182 }
7183
7184 std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
7185 {
7186         s << "VkSubpassDescriptionDepthStencilResolve = {\n";
7187         s << "\tsType = " << value.sType << '\n';
7188         s << "\tpNext = " << value.pNext << '\n';
7189         s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
7190         s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
7191         s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
7192         s << '}';
7193         return s;
7194 }
7195
7196 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
7197 {
7198         s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
7199         s << "\tsType = " << value.sType << '\n';
7200         s << "\tpNext = " << value.pNext << '\n';
7201         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7202         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7203         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7204         s << "\tindependentResolve = " << value.independentResolve << '\n';
7205         s << '}';
7206         return s;
7207 }
7208
7209 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
7210 {
7211         s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
7212         s << "\tsType = " << value.sType << '\n';
7213         s << "\tpNext = " << value.pNext << '\n';
7214         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7215         s << '}';
7216         return s;
7217 }
7218
7219 std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
7220 {
7221         s << "VkImageStencilUsageCreateInfo = {\n";
7222         s << "\tsType = " << value.sType << '\n';
7223         s << "\tpNext = " << value.pNext << '\n';
7224         s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
7225         s << '}';
7226         return s;
7227 }
7228
7229 std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
7230 {
7231         s << "VkSamplerReductionModeCreateInfo = {\n";
7232         s << "\tsType = " << value.sType << '\n';
7233         s << "\tpNext = " << value.pNext << '\n';
7234         s << "\treductionMode = " << value.reductionMode << '\n';
7235         s << '}';
7236         return s;
7237 }
7238
7239 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
7240 {
7241         s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
7242         s << "\tsType = " << value.sType << '\n';
7243         s << "\tpNext = " << value.pNext << '\n';
7244         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7245         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7246         s << '}';
7247         return s;
7248 }
7249
7250 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
7251 {
7252         s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
7253         s << "\tsType = " << value.sType << '\n';
7254         s << "\tpNext = " << value.pNext << '\n';
7255         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7256         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7257         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7258         s << '}';
7259         return s;
7260 }
7261
7262 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
7263 {
7264         s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
7265         s << "\tsType = " << value.sType << '\n';
7266         s << "\tpNext = " << value.pNext << '\n';
7267         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7268         s << '}';
7269         return s;
7270 }
7271
7272 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
7273 {
7274         s << "VkFramebufferAttachmentImageInfo = {\n";
7275         s << "\tsType = " << value.sType << '\n';
7276         s << "\tpNext = " << value.pNext << '\n';
7277         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7278         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7279         s << "\twidth = " << value.width << '\n';
7280         s << "\theight = " << value.height << '\n';
7281         s << "\tlayerCount = " << value.layerCount << '\n';
7282         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7283         s << "\tpViewFormats = " << value.pViewFormats << '\n';
7284         s << '}';
7285         return s;
7286 }
7287
7288 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
7289 {
7290         s << "VkFramebufferAttachmentsCreateInfo = {\n";
7291         s << "\tsType = " << value.sType << '\n';
7292         s << "\tpNext = " << value.pNext << '\n';
7293         s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
7294         s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
7295         s << '}';
7296         return s;
7297 }
7298
7299 std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
7300 {
7301         s << "VkRenderPassAttachmentBeginInfo = {\n";
7302         s << "\tsType = " << value.sType << '\n';
7303         s << "\tpNext = " << value.pNext << '\n';
7304         s << "\tattachmentCount = " << value.attachmentCount << '\n';
7305         s << "\tpAttachments = " << value.pAttachments << '\n';
7306         s << '}';
7307         return s;
7308 }
7309
7310 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
7311 {
7312         s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
7313         s << "\tsType = " << value.sType << '\n';
7314         s << "\tpNext = " << value.pNext << '\n';
7315         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7316         s << '}';
7317         return s;
7318 }
7319
7320 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
7321 {
7322         s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
7323         s << "\tsType = " << value.sType << '\n';
7324         s << "\tpNext = " << value.pNext << '\n';
7325         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7326         s << '}';
7327         return s;
7328 }
7329
7330 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
7331 {
7332         s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
7333         s << "\tsType = " << value.sType << '\n';
7334         s << "\tpNext = " << value.pNext << '\n';
7335         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7336         s << '}';
7337         return s;
7338 }
7339
7340 std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
7341 {
7342         s << "VkAttachmentReferenceStencilLayout = {\n";
7343         s << "\tsType = " << value.sType << '\n';
7344         s << "\tpNext = " << value.pNext << '\n';
7345         s << "\tstencilLayout = " << value.stencilLayout << '\n';
7346         s << '}';
7347         return s;
7348 }
7349
7350 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
7351 {
7352         s << "VkAttachmentDescriptionStencilLayout = {\n";
7353         s << "\tsType = " << value.sType << '\n';
7354         s << "\tpNext = " << value.pNext << '\n';
7355         s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
7356         s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
7357         s << '}';
7358         return s;
7359 }
7360
7361 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
7362 {
7363         s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
7364         s << "\tsType = " << value.sType << '\n';
7365         s << "\tpNext = " << value.pNext << '\n';
7366         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7367         s << '}';
7368         return s;
7369 }
7370
7371 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
7372 {
7373         s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
7374         s << "\tsType = " << value.sType << '\n';
7375         s << "\tpNext = " << value.pNext << '\n';
7376         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7377         s << '}';
7378         return s;
7379 }
7380
7381 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
7382 {
7383         s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
7384         s << "\tsType = " << value.sType << '\n';
7385         s << "\tpNext = " << value.pNext << '\n';
7386         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7387         s << '}';
7388         return s;
7389 }
7390
7391 std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
7392 {
7393         s << "VkSemaphoreTypeCreateInfo = {\n";
7394         s << "\tsType = " << value.sType << '\n';
7395         s << "\tpNext = " << value.pNext << '\n';
7396         s << "\tsemaphoreType = " << value.semaphoreType << '\n';
7397         s << "\tinitialValue = " << value.initialValue << '\n';
7398         s << '}';
7399         return s;
7400 }
7401
7402 std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
7403 {
7404         s << "VkTimelineSemaphoreSubmitInfo = {\n";
7405         s << "\tsType = " << value.sType << '\n';
7406         s << "\tpNext = " << value.pNext << '\n';
7407         s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
7408         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7409         s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
7410         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7411         s << '}';
7412         return s;
7413 }
7414
7415 std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
7416 {
7417         s << "VkSemaphoreWaitInfo = {\n";
7418         s << "\tsType = " << value.sType << '\n';
7419         s << "\tpNext = " << value.pNext << '\n';
7420         s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
7421         s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
7422         s << "\tpSemaphores = " << value.pSemaphores << '\n';
7423         s << "\tpValues = " << value.pValues << '\n';
7424         s << '}';
7425         return s;
7426 }
7427
7428 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
7429 {
7430         s << "VkSemaphoreSignalInfo = {\n";
7431         s << "\tsType = " << value.sType << '\n';
7432         s << "\tpNext = " << value.pNext << '\n';
7433         s << "\tsemaphore = " << value.semaphore << '\n';
7434         s << "\tvalue = " << value.value << '\n';
7435         s << '}';
7436         return s;
7437 }
7438
7439 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
7440 {
7441         s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
7442         s << "\tsType = " << value.sType << '\n';
7443         s << "\tpNext = " << value.pNext << '\n';
7444         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7445         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7446         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7447         s << '}';
7448         return s;
7449 }
7450
7451 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
7452 {
7453         s << "VkBufferDeviceAddressInfo = {\n";
7454         s << "\tsType = " << value.sType << '\n';
7455         s << "\tpNext = " << value.pNext << '\n';
7456         s << "\tbuffer = " << value.buffer << '\n';
7457         s << '}';
7458         return s;
7459 }
7460
7461 std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
7462 {
7463         s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
7464         s << "\tsType = " << value.sType << '\n';
7465         s << "\tpNext = " << value.pNext << '\n';
7466         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7467         s << '}';
7468         return s;
7469 }
7470
7471 std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
7472 {
7473         s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
7474         s << "\tsType = " << value.sType << '\n';
7475         s << "\tpNext = " << value.pNext << '\n';
7476         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7477         s << '}';
7478         return s;
7479 }
7480
7481 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
7482 {
7483         s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
7484         s << "\tsType = " << value.sType << '\n';
7485         s << "\tpNext = " << value.pNext << '\n';
7486         s << "\tmemory = " << value.memory << '\n';
7487         s << '}';
7488         return s;
7489 }
7490
7491 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
7492 {
7493         s << "VkSurfaceCapabilitiesKHR = {\n";
7494         s << "\tminImageCount = " << value.minImageCount << '\n';
7495         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
7496         s << "\tcurrentExtent = " << value.currentExtent << '\n';
7497         s << "\tminImageExtent = " << value.minImageExtent << '\n';
7498         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
7499         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
7500         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7501         s << "\tcurrentTransform = " << value.currentTransform << '\n';
7502         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
7503         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
7504         s << '}';
7505         return s;
7506 }
7507
7508 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
7509 {
7510         s << "VkSurfaceFormatKHR = {\n";
7511         s << "\tformat = " << value.format << '\n';
7512         s << "\tcolorSpace = " << value.colorSpace << '\n';
7513         s << '}';
7514         return s;
7515 }
7516
7517 std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
7518 {
7519         s << "VkSwapchainCreateInfoKHR = {\n";
7520         s << "\tsType = " << value.sType << '\n';
7521         s << "\tpNext = " << value.pNext << '\n';
7522         s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
7523         s << "\tsurface = " << value.surface << '\n';
7524         s << "\tminImageCount = " << value.minImageCount << '\n';
7525         s << "\timageFormat = " << value.imageFormat << '\n';
7526         s << "\timageColorSpace = " << value.imageColorSpace << '\n';
7527         s << "\timageExtent = " << value.imageExtent << '\n';
7528         s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
7529         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
7530         s << "\timageSharingMode = " << value.imageSharingMode << '\n';
7531         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
7532         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
7533         s << "\tpreTransform = " << value.preTransform << '\n';
7534         s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
7535         s << "\tpresentMode = " << value.presentMode << '\n';
7536         s << "\tclipped = " << value.clipped << '\n';
7537         s << "\toldSwapchain = " << value.oldSwapchain << '\n';
7538         s << '}';
7539         return s;
7540 }
7541
7542 std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
7543 {
7544         s << "VkPresentInfoKHR = {\n";
7545         s << "\tsType = " << value.sType << '\n';
7546         s << "\tpNext = " << value.pNext << '\n';
7547         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
7548         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
7549         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7550         s << "\tpSwapchains = " << value.pSwapchains << '\n';
7551         s << "\tpImageIndices = " << value.pImageIndices << '\n';
7552         s << "\tpResults = " << value.pResults << '\n';
7553         s << '}';
7554         return s;
7555 }
7556
7557 std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
7558 {
7559         s << "VkImageSwapchainCreateInfoKHR = {\n";
7560         s << "\tsType = " << value.sType << '\n';
7561         s << "\tpNext = " << value.pNext << '\n';
7562         s << "\tswapchain = " << value.swapchain << '\n';
7563         s << '}';
7564         return s;
7565 }
7566
7567 std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
7568 {
7569         s << "VkBindImageMemorySwapchainInfoKHR = {\n";
7570         s << "\tsType = " << value.sType << '\n';
7571         s << "\tpNext = " << value.pNext << '\n';
7572         s << "\tswapchain = " << value.swapchain << '\n';
7573         s << "\timageIndex = " << value.imageIndex << '\n';
7574         s << '}';
7575         return s;
7576 }
7577
7578 std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
7579 {
7580         s << "VkAcquireNextImageInfoKHR = {\n";
7581         s << "\tsType = " << value.sType << '\n';
7582         s << "\tpNext = " << value.pNext << '\n';
7583         s << "\tswapchain = " << value.swapchain << '\n';
7584         s << "\ttimeout = " << value.timeout << '\n';
7585         s << "\tsemaphore = " << value.semaphore << '\n';
7586         s << "\tfence = " << value.fence << '\n';
7587         s << "\tdeviceMask = " << value.deviceMask << '\n';
7588         s << '}';
7589         return s;
7590 }
7591
7592 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
7593 {
7594         s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
7595         s << "\tsType = " << value.sType << '\n';
7596         s << "\tpNext = " << value.pNext << '\n';
7597         s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
7598         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7599         s << '}';
7600         return s;
7601 }
7602
7603 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
7604 {
7605         s << "VkDeviceGroupPresentInfoKHR = {\n";
7606         s << "\tsType = " << value.sType << '\n';
7607         s << "\tpNext = " << value.pNext << '\n';
7608         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7609         s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
7610         s << "\tmode = " << value.mode << '\n';
7611         s << '}';
7612         return s;
7613 }
7614
7615 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
7616 {
7617         s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
7618         s << "\tsType = " << value.sType << '\n';
7619         s << "\tpNext = " << value.pNext << '\n';
7620         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
7621         s << '}';
7622         return s;
7623 }
7624
7625 std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
7626 {
7627         s << "VkDisplayModeParametersKHR = {\n";
7628         s << "\tvisibleRegion = " << value.visibleRegion << '\n';
7629         s << "\trefreshRate = " << value.refreshRate << '\n';
7630         s << '}';
7631         return s;
7632 }
7633
7634 std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
7635 {
7636         s << "VkDisplayModeCreateInfoKHR = {\n";
7637         s << "\tsType = " << value.sType << '\n';
7638         s << "\tpNext = " << value.pNext << '\n';
7639         s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
7640         s << "\tparameters = " << value.parameters << '\n';
7641         s << '}';
7642         return s;
7643 }
7644
7645 std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
7646 {
7647         s << "VkDisplayModePropertiesKHR = {\n";
7648         s << "\tdisplayMode = " << value.displayMode << '\n';
7649         s << "\tparameters = " << value.parameters << '\n';
7650         s << '}';
7651         return s;
7652 }
7653
7654 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
7655 {
7656         s << "VkDisplayPlaneCapabilitiesKHR = {\n";
7657         s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
7658         s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
7659         s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
7660         s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
7661         s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
7662         s << "\tminDstPosition = " << value.minDstPosition << '\n';
7663         s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
7664         s << "\tminDstExtent = " << value.minDstExtent << '\n';
7665         s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
7666         s << '}';
7667         return s;
7668 }
7669
7670 std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
7671 {
7672         s << "VkDisplayPlanePropertiesKHR = {\n";
7673         s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
7674         s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
7675         s << '}';
7676         return s;
7677 }
7678
7679 std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
7680 {
7681         s << "VkDisplayPropertiesKHR = {\n";
7682         s << "\tdisplay = " << value.display << '\n';
7683         s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
7684         s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
7685         s << "\tphysicalResolution = " << value.physicalResolution << '\n';
7686         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
7687         s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
7688         s << "\tpersistentContent = " << value.persistentContent << '\n';
7689         s << '}';
7690         return s;
7691 }
7692
7693 std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
7694 {
7695         s << "VkDisplaySurfaceCreateInfoKHR = {\n";
7696         s << "\tsType = " << value.sType << '\n';
7697         s << "\tpNext = " << value.pNext << '\n';
7698         s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
7699         s << "\tdisplayMode = " << value.displayMode << '\n';
7700         s << "\tplaneIndex = " << value.planeIndex << '\n';
7701         s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
7702         s << "\ttransform = " << value.transform << '\n';
7703         s << "\tglobalAlpha = " << value.globalAlpha << '\n';
7704         s << "\talphaMode = " << value.alphaMode << '\n';
7705         s << "\timageExtent = " << value.imageExtent << '\n';
7706         s << '}';
7707         return s;
7708 }
7709
7710 std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
7711 {
7712         s << "VkDisplayPresentInfoKHR = {\n";
7713         s << "\tsType = " << value.sType << '\n';
7714         s << "\tpNext = " << value.pNext << '\n';
7715         s << "\tsrcRect = " << value.srcRect << '\n';
7716         s << "\tdstRect = " << value.dstRect << '\n';
7717         s << "\tpersistent = " << value.persistent << '\n';
7718         s << '}';
7719         return s;
7720 }
7721
7722 std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
7723 {
7724         s << "VkImportMemoryFdInfoKHR = {\n";
7725         s << "\tsType = " << value.sType << '\n';
7726         s << "\tpNext = " << value.pNext << '\n';
7727         s << "\thandleType = " << value.handleType << '\n';
7728         s << "\tfd = " << value.fd << '\n';
7729         s << '}';
7730         return s;
7731 }
7732
7733 std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
7734 {
7735         s << "VkMemoryFdPropertiesKHR = {\n";
7736         s << "\tsType = " << value.sType << '\n';
7737         s << "\tpNext = " << value.pNext << '\n';
7738         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
7739         s << '}';
7740         return s;
7741 }
7742
7743 std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
7744 {
7745         s << "VkMemoryGetFdInfoKHR = {\n";
7746         s << "\tsType = " << value.sType << '\n';
7747         s << "\tpNext = " << value.pNext << '\n';
7748         s << "\tmemory = " << value.memory << '\n';
7749         s << "\thandleType = " << value.handleType << '\n';
7750         s << '}';
7751         return s;
7752 }
7753
7754 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
7755 {
7756         s << "VkImportSemaphoreFdInfoKHR = {\n";
7757         s << "\tsType = " << value.sType << '\n';
7758         s << "\tpNext = " << value.pNext << '\n';
7759         s << "\tsemaphore = " << value.semaphore << '\n';
7760         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
7761         s << "\thandleType = " << value.handleType << '\n';
7762         s << "\tfd = " << value.fd << '\n';
7763         s << '}';
7764         return s;
7765 }
7766
7767 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
7768 {
7769         s << "VkSemaphoreGetFdInfoKHR = {\n";
7770         s << "\tsType = " << value.sType << '\n';
7771         s << "\tpNext = " << value.pNext << '\n';
7772         s << "\tsemaphore = " << value.semaphore << '\n';
7773         s << "\thandleType = " << value.handleType << '\n';
7774         s << '}';
7775         return s;
7776 }
7777
7778 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
7779 {
7780         s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
7781         s << "\tsType = " << value.sType << '\n';
7782         s << "\tpNext = " << value.pNext << '\n';
7783         s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
7784         s << '}';
7785         return s;
7786 }
7787
7788 std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
7789 {
7790         s << "VkRectLayerKHR = {\n";
7791         s << "\toffset = " << value.offset << '\n';
7792         s << "\textent = " << value.extent << '\n';
7793         s << "\tlayer = " << value.layer << '\n';
7794         s << '}';
7795         return s;
7796 }
7797
7798 std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
7799 {
7800         s << "VkPresentRegionKHR = {\n";
7801         s << "\trectangleCount = " << value.rectangleCount << '\n';
7802         s << "\tpRectangles = " << value.pRectangles << '\n';
7803         s << '}';
7804         return s;
7805 }
7806
7807 std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
7808 {
7809         s << "VkPresentRegionsKHR = {\n";
7810         s << "\tsType = " << value.sType << '\n';
7811         s << "\tpNext = " << value.pNext << '\n';
7812         s << "\tswapchainCount = " << value.swapchainCount << '\n';
7813         s << "\tpRegions = " << value.pRegions << '\n';
7814         s << '}';
7815         return s;
7816 }
7817
7818 std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
7819 {
7820         s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
7821         s << "\tsType = " << value.sType << '\n';
7822         s << "\tpNext = " << value.pNext << '\n';
7823         s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
7824         s << '}';
7825         return s;
7826 }
7827
7828 std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
7829 {
7830         s << "VkImportFenceFdInfoKHR = {\n";
7831         s << "\tsType = " << value.sType << '\n';
7832         s << "\tpNext = " << value.pNext << '\n';
7833         s << "\tfence = " << value.fence << '\n';
7834         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
7835         s << "\thandleType = " << value.handleType << '\n';
7836         s << "\tfd = " << value.fd << '\n';
7837         s << '}';
7838         return s;
7839 }
7840
7841 std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
7842 {
7843         s << "VkFenceGetFdInfoKHR = {\n";
7844         s << "\tsType = " << value.sType << '\n';
7845         s << "\tpNext = " << value.pNext << '\n';
7846         s << "\tfence = " << value.fence << '\n';
7847         s << "\thandleType = " << value.handleType << '\n';
7848         s << '}';
7849         return s;
7850 }
7851
7852 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
7853 {
7854         s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
7855         s << "\tsType = " << value.sType << '\n';
7856         s << "\tpNext = " << value.pNext << '\n';
7857         s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
7858         s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
7859         s << '}';
7860         return s;
7861 }
7862
7863 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
7864 {
7865         s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
7866         s << "\tsType = " << value.sType << '\n';
7867         s << "\tpNext = " << value.pNext << '\n';
7868         s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
7869         s << '}';
7870         return s;
7871 }
7872
7873 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
7874 {
7875         s << "VkPerformanceCounterKHR = {\n";
7876         s << "\tsType = " << value.sType << '\n';
7877         s << "\tpNext = " << value.pNext << '\n';
7878         s << "\tunit = " << value.unit << '\n';
7879         s << "\tscope = " << value.scope << '\n';
7880         s << "\tstorage = " << value.storage << '\n';
7881         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';
7882         s << '}';
7883         return s;
7884 }
7885
7886 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
7887 {
7888         s << "VkPerformanceCounterDescriptionKHR = {\n";
7889         s << "\tsType = " << value.sType << '\n';
7890         s << "\tpNext = " << value.pNext << '\n';
7891         s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
7892         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
7893         s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
7894         s << "\tdescription = " << (const char*)value.description << '\n';
7895         s << '}';
7896         return s;
7897 }
7898
7899 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
7900 {
7901         s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
7902         s << "\tsType = " << value.sType << '\n';
7903         s << "\tpNext = " << value.pNext << '\n';
7904         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
7905         s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
7906         s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
7907         s << '}';
7908         return s;
7909 }
7910
7911 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
7912 {
7913         s << "VkPerformanceCounterResultKHR = {\n";
7914         s << "\tint32 = " << value.int32 << '\n';
7915         s << "\tint64 = " << value.int64 << '\n';
7916         s << "\tuint32 = " << value.uint32 << '\n';
7917         s << "\tuint64 = " << value.uint64 << '\n';
7918         s << "\tfloat32 = " << value.float32 << '\n';
7919         s << "\tfloat64 = " << value.float64 << '\n';
7920         s << '}';
7921         return s;
7922 }
7923
7924 std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
7925 {
7926         s << "VkAcquireProfilingLockInfoKHR = {\n";
7927         s << "\tsType = " << value.sType << '\n';
7928         s << "\tpNext = " << value.pNext << '\n';
7929         s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
7930         s << "\ttimeout = " << value.timeout << '\n';
7931         s << '}';
7932         return s;
7933 }
7934
7935 std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
7936 {
7937         s << "VkPerformanceQuerySubmitInfoKHR = {\n";
7938         s << "\tsType = " << value.sType << '\n';
7939         s << "\tpNext = " << value.pNext << '\n';
7940         s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
7941         s << '}';
7942         return s;
7943 }
7944
7945 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
7946 {
7947         s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
7948         s << "\tsType = " << value.sType << '\n';
7949         s << "\tpNext = " << value.pNext << '\n';
7950         s << "\tsurface = " << value.surface << '\n';
7951         s << '}';
7952         return s;
7953 }
7954
7955 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
7956 {
7957         s << "VkSurfaceCapabilities2KHR = {\n";
7958         s << "\tsType = " << value.sType << '\n';
7959         s << "\tpNext = " << value.pNext << '\n';
7960         s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
7961         s << '}';
7962         return s;
7963 }
7964
7965 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
7966 {
7967         s << "VkSurfaceFormat2KHR = {\n";
7968         s << "\tsType = " << value.sType << '\n';
7969         s << "\tpNext = " << value.pNext << '\n';
7970         s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
7971         s << '}';
7972         return s;
7973 }
7974
7975 std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
7976 {
7977         s << "VkDisplayProperties2KHR = {\n";
7978         s << "\tsType = " << value.sType << '\n';
7979         s << "\tpNext = " << value.pNext << '\n';
7980         s << "\tdisplayProperties = " << value.displayProperties << '\n';
7981         s << '}';
7982         return s;
7983 }
7984
7985 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
7986 {
7987         s << "VkDisplayPlaneProperties2KHR = {\n";
7988         s << "\tsType = " << value.sType << '\n';
7989         s << "\tpNext = " << value.pNext << '\n';
7990         s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
7991         s << '}';
7992         return s;
7993 }
7994
7995 std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
7996 {
7997         s << "VkDisplayModeProperties2KHR = {\n";
7998         s << "\tsType = " << value.sType << '\n';
7999         s << "\tpNext = " << value.pNext << '\n';
8000         s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
8001         s << '}';
8002         return s;
8003 }
8004
8005 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
8006 {
8007         s << "VkDisplayPlaneInfo2KHR = {\n";
8008         s << "\tsType = " << value.sType << '\n';
8009         s << "\tpNext = " << value.pNext << '\n';
8010         s << "\tmode = " << value.mode << '\n';
8011         s << "\tplaneIndex = " << value.planeIndex << '\n';
8012         s << '}';
8013         return s;
8014 }
8015
8016 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
8017 {
8018         s << "VkDisplayPlaneCapabilities2KHR = {\n";
8019         s << "\tsType = " << value.sType << '\n';
8020         s << "\tpNext = " << value.pNext << '\n';
8021         s << "\tcapabilities = " << value.capabilities << '\n';
8022         s << '}';
8023         return s;
8024 }
8025
8026 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
8027 {
8028         s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
8029         s << "\tsType = " << value.sType << '\n';
8030         s << "\tpNext = " << value.pNext << '\n';
8031         s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
8032         s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
8033         s << '}';
8034         return s;
8035 }
8036
8037 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR& value)
8038 {
8039         s << "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR = {\n";
8040         s << "\tsType = " << value.sType << '\n';
8041         s << "\tpNext = " << value.pNext << '\n';
8042         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
8043         s << '}';
8044         return s;
8045 }
8046
8047 std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
8048 {
8049         s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
8050         s << "\tsType = " << value.sType << '\n';
8051         s << "\tpNext = " << value.pNext << '\n';
8052         s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
8053         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
8054         s << '}';
8055         return s;
8056 }
8057
8058 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
8059 {
8060         s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
8061         s << "\tsType = " << value.sType << '\n';
8062         s << "\tpNext = " << value.pNext << '\n';
8063         s << "\tfragmentSize = " << value.fragmentSize << '\n';
8064         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
8065         s << '}';
8066         return s;
8067 }
8068
8069 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
8070 {
8071         s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
8072         s << "\tsType = " << value.sType << '\n';
8073         s << "\tpNext = " << value.pNext << '\n';
8074         s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
8075         s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
8076         s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
8077         s << '}';
8078         return s;
8079 }
8080
8081 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
8082 {
8083         s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
8084         s << "\tsType = " << value.sType << '\n';
8085         s << "\tpNext = " << value.pNext << '\n';
8086         s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
8087         s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
8088         s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
8089         s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
8090         s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
8091         s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
8092         s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
8093         s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
8094         s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
8095         s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
8096         s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
8097         s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
8098         s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
8099         s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
8100         s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
8101         s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
8102         s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
8103         s << '}';
8104         return s;
8105 }
8106
8107 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
8108 {
8109         s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
8110         s << "\tsType = " << value.sType << '\n';
8111         s << "\tpNext = " << value.pNext << '\n';
8112         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
8113         s << "\tfragmentSize = " << value.fragmentSize << '\n';
8114         s << '}';
8115         return s;
8116 }
8117
8118 std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
8119 {
8120         s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
8121         s << "\tsType = " << value.sType << '\n';
8122         s << "\tpNext = " << value.pNext << '\n';
8123         s << "\tsupportsProtected = " << value.supportsProtected << '\n';
8124         s << '}';
8125         return s;
8126 }
8127
8128 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
8129 {
8130         s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
8131         s << "\tsType = " << value.sType << '\n';
8132         s << "\tpNext = " << value.pNext << '\n';
8133         s << "\tpresentWait = " << value.presentWait << '\n';
8134         s << '}';
8135         return s;
8136 }
8137
8138 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
8139 {
8140         s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
8141         s << "\tsType = " << value.sType << '\n';
8142         s << "\tpNext = " << value.pNext << '\n';
8143         s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
8144         s << '}';
8145         return s;
8146 }
8147
8148 std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
8149 {
8150         s << "VkPipelineInfoKHR = {\n";
8151         s << "\tsType = " << value.sType << '\n';
8152         s << "\tpNext = " << value.pNext << '\n';
8153         s << "\tpipeline = " << value.pipeline << '\n';
8154         s << '}';
8155         return s;
8156 }
8157
8158 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
8159 {
8160         s << "VkPipelineExecutablePropertiesKHR = {\n";
8161         s << "\tsType = " << value.sType << '\n';
8162         s << "\tpNext = " << value.pNext << '\n';
8163         s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
8164         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8165         s << "\tdescription = " << (const char*)value.description << '\n';
8166         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
8167         s << '}';
8168         return s;
8169 }
8170
8171 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
8172 {
8173         s << "VkPipelineExecutableInfoKHR = {\n";
8174         s << "\tsType = " << value.sType << '\n';
8175         s << "\tpNext = " << value.pNext << '\n';
8176         s << "\tpipeline = " << value.pipeline << '\n';
8177         s << "\texecutableIndex = " << value.executableIndex << '\n';
8178         s << '}';
8179         return s;
8180 }
8181
8182 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
8183 {
8184         s << "VkPipelineExecutableStatisticValueKHR = {\n";
8185         s << "\tb32 = " << value.b32 << '\n';
8186         s << "\ti64 = " << value.i64 << '\n';
8187         s << "\tu64 = " << value.u64 << '\n';
8188         s << "\tf64 = " << value.f64 << '\n';
8189         s << '}';
8190         return s;
8191 }
8192
8193 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
8194 {
8195         s << "VkPipelineExecutableStatisticKHR = {\n";
8196         s << "\tsType = " << value.sType << '\n';
8197         s << "\tpNext = " << value.pNext << '\n';
8198         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8199         s << "\tdescription = " << (const char*)value.description << '\n';
8200         s << "\tformat = " << value.format << '\n';
8201         s << "\tvalue = " << value.value << '\n';
8202         s << '}';
8203         return s;
8204 }
8205
8206 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
8207 {
8208         s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
8209         s << "\tsType = " << value.sType << '\n';
8210         s << "\tpNext = " << value.pNext << '\n';
8211         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8212         s << "\tdescription = " << (const char*)value.description << '\n';
8213         s << "\tisText = " << value.isText << '\n';
8214         s << "\tdataSize = " << value.dataSize << '\n';
8215         s << "\tpData = " << value.pData << '\n';
8216         s << '}';
8217         return s;
8218 }
8219
8220 std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
8221 {
8222         s << "VkPipelineLibraryCreateInfoKHR = {\n";
8223         s << "\tsType = " << value.sType << '\n';
8224         s << "\tpNext = " << value.pNext << '\n';
8225         s << "\tlibraryCount = " << value.libraryCount << '\n';
8226         s << "\tpLibraries = " << value.pLibraries << '\n';
8227         s << '}';
8228         return s;
8229 }
8230
8231 std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
8232 {
8233         s << "VkPresentIdKHR = {\n";
8234         s << "\tsType = " << value.sType << '\n';
8235         s << "\tpNext = " << value.pNext << '\n';
8236         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8237         s << "\tpPresentIds = " << value.pPresentIds << '\n';
8238         s << '}';
8239         return s;
8240 }
8241
8242 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
8243 {
8244         s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
8245         s << "\tsType = " << value.sType << '\n';
8246         s << "\tpNext = " << value.pNext << '\n';
8247         s << "\tpresentId = " << value.presentId << '\n';
8248         s << '}';
8249         return s;
8250 }
8251
8252 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2KHR& value)
8253 {
8254         s << "VkMemoryBarrier2KHR = {\n";
8255         s << "\tsType = " << value.sType << '\n';
8256         s << "\tpNext = " << value.pNext << '\n';
8257         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8258         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8259         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8260         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8261         s << '}';
8262         return s;
8263 }
8264
8265 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2KHR& value)
8266 {
8267         s << "VkBufferMemoryBarrier2KHR = {\n";
8268         s << "\tsType = " << value.sType << '\n';
8269         s << "\tpNext = " << value.pNext << '\n';
8270         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8271         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8272         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8273         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8274         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8275         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8276         s << "\tbuffer = " << value.buffer << '\n';
8277         s << "\toffset = " << value.offset << '\n';
8278         s << "\tsize = " << value.size << '\n';
8279         s << '}';
8280         return s;
8281 }
8282
8283 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2KHR& value)
8284 {
8285         s << "VkImageMemoryBarrier2KHR = {\n";
8286         s << "\tsType = " << value.sType << '\n';
8287         s << "\tpNext = " << value.pNext << '\n';
8288         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8289         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8290         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8291         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8292         s << "\toldLayout = " << value.oldLayout << '\n';
8293         s << "\tnewLayout = " << value.newLayout << '\n';
8294         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8295         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8296         s << "\timage = " << value.image << '\n';
8297         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
8298         s << '}';
8299         return s;
8300 }
8301
8302 std::ostream& operator<< (std::ostream& s, const VkDependencyInfoKHR& value)
8303 {
8304         s << "VkDependencyInfoKHR = {\n";
8305         s << "\tsType = " << value.sType << '\n';
8306         s << "\tpNext = " << value.pNext << '\n';
8307         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
8308         s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
8309         s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
8310         s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
8311         s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
8312         s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
8313         s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
8314         s << '}';
8315         return s;
8316 }
8317
8318 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfoKHR& value)
8319 {
8320         s << "VkSemaphoreSubmitInfoKHR = {\n";
8321         s << "\tsType = " << value.sType << '\n';
8322         s << "\tpNext = " << value.pNext << '\n';
8323         s << "\tsemaphore = " << value.semaphore << '\n';
8324         s << "\tvalue = " << value.value << '\n';
8325         s << "\tstageMask = " << value.stageMask << '\n';
8326         s << "\tdeviceIndex = " << value.deviceIndex << '\n';
8327         s << '}';
8328         return s;
8329 }
8330
8331 std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfoKHR& value)
8332 {
8333         s << "VkCommandBufferSubmitInfoKHR = {\n";
8334         s << "\tsType = " << value.sType << '\n';
8335         s << "\tpNext = " << value.pNext << '\n';
8336         s << "\tcommandBuffer = " << value.commandBuffer << '\n';
8337         s << "\tdeviceMask = " << value.deviceMask << '\n';
8338         s << '}';
8339         return s;
8340 }
8341
8342 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2KHR& value)
8343 {
8344         s << "VkSubmitInfo2KHR = {\n";
8345         s << "\tsType = " << value.sType << '\n';
8346         s << "\tpNext = " << value.pNext << '\n';
8347         s << "\tflags = " << getSubmitFlagsKHRStr(value.flags) << '\n';
8348         s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
8349         s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
8350         s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
8351         s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
8352         s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
8353         s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
8354         s << '}';
8355         return s;
8356 }
8357
8358 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2FeaturesKHR& value)
8359 {
8360         s << "VkPhysicalDeviceSynchronization2FeaturesKHR = {\n";
8361         s << "\tsType = " << value.sType << '\n';
8362         s << "\tpNext = " << value.pNext << '\n';
8363         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
8364         s << '}';
8365         return s;
8366 }
8367
8368 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
8369 {
8370         s << "VkQueueFamilyCheckpointProperties2NV = {\n";
8371         s << "\tsType = " << value.sType << '\n';
8372         s << "\tpNext = " << value.pNext << '\n';
8373         s << "\tcheckpointExecutionStageMask = " << value.checkpointExecutionStageMask << '\n';
8374         s << '}';
8375         return s;
8376 }
8377
8378 std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
8379 {
8380         s << "VkCheckpointData2NV = {\n";
8381         s << "\tsType = " << value.sType << '\n';
8382         s << "\tpNext = " << value.pNext << '\n';
8383         s << "\tstage = " << value.stage << '\n';
8384         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
8385         s << '}';
8386         return s;
8387 }
8388
8389 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
8390 {
8391         s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
8392         s << "\tsType = " << value.sType << '\n';
8393         s << "\tpNext = " << value.pNext << '\n';
8394         s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
8395         s << '}';
8396         return s;
8397 }
8398
8399 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR& value)
8400 {
8401         s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = {\n";
8402         s << "\tsType = " << value.sType << '\n';
8403         s << "\tpNext = " << value.pNext << '\n';
8404         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
8405         s << '}';
8406         return s;
8407 }
8408
8409 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
8410 {
8411         s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
8412         s << "\tsType = " << value.sType << '\n';
8413         s << "\tpNext = " << value.pNext << '\n';
8414         s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
8415         s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
8416         s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
8417         s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
8418         s << '}';
8419         return s;
8420 }
8421
8422 std::ostream& operator<< (std::ostream& s, const VkBufferCopy2KHR& value)
8423 {
8424         s << "VkBufferCopy2KHR = {\n";
8425         s << "\tsType = " << value.sType << '\n';
8426         s << "\tpNext = " << value.pNext << '\n';
8427         s << "\tsrcOffset = " << value.srcOffset << '\n';
8428         s << "\tdstOffset = " << value.dstOffset << '\n';
8429         s << "\tsize = " << value.size << '\n';
8430         s << '}';
8431         return s;
8432 }
8433
8434 std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2KHR& value)
8435 {
8436         s << "VkCopyBufferInfo2KHR = {\n";
8437         s << "\tsType = " << value.sType << '\n';
8438         s << "\tpNext = " << value.pNext << '\n';
8439         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8440         s << "\tdstBuffer = " << value.dstBuffer << '\n';
8441         s << "\tregionCount = " << value.regionCount << '\n';
8442         s << "\tpRegions = " << value.pRegions << '\n';
8443         s << '}';
8444         return s;
8445 }
8446
8447 std::ostream& operator<< (std::ostream& s, const VkImageCopy2KHR& value)
8448 {
8449         s << "VkImageCopy2KHR = {\n";
8450         s << "\tsType = " << value.sType << '\n';
8451         s << "\tpNext = " << value.pNext << '\n';
8452         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8453         s << "\tsrcOffset = " << value.srcOffset << '\n';
8454         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8455         s << "\tdstOffset = " << value.dstOffset << '\n';
8456         s << "\textent = " << value.extent << '\n';
8457         s << '}';
8458         return s;
8459 }
8460
8461 std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2KHR& value)
8462 {
8463         s << "VkCopyImageInfo2KHR = {\n";
8464         s << "\tsType = " << value.sType << '\n';
8465         s << "\tpNext = " << value.pNext << '\n';
8466         s << "\tsrcImage = " << value.srcImage << '\n';
8467         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8468         s << "\tdstImage = " << value.dstImage << '\n';
8469         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8470         s << "\tregionCount = " << value.regionCount << '\n';
8471         s << "\tpRegions = " << value.pRegions << '\n';
8472         s << '}';
8473         return s;
8474 }
8475
8476 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2KHR& value)
8477 {
8478         s << "VkBufferImageCopy2KHR = {\n";
8479         s << "\tsType = " << value.sType << '\n';
8480         s << "\tpNext = " << value.pNext << '\n';
8481         s << "\tbufferOffset = " << value.bufferOffset << '\n';
8482         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
8483         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
8484         s << "\timageSubresource = " << value.imageSubresource << '\n';
8485         s << "\timageOffset = " << value.imageOffset << '\n';
8486         s << "\timageExtent = " << value.imageExtent << '\n';
8487         s << '}';
8488         return s;
8489 }
8490
8491 std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2KHR& value)
8492 {
8493         s << "VkCopyBufferToImageInfo2KHR = {\n";
8494         s << "\tsType = " << value.sType << '\n';
8495         s << "\tpNext = " << value.pNext << '\n';
8496         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8497         s << "\tdstImage = " << value.dstImage << '\n';
8498         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8499         s << "\tregionCount = " << value.regionCount << '\n';
8500         s << "\tpRegions = " << value.pRegions << '\n';
8501         s << '}';
8502         return s;
8503 }
8504
8505 std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2KHR& value)
8506 {
8507         s << "VkCopyImageToBufferInfo2KHR = {\n";
8508         s << "\tsType = " << value.sType << '\n';
8509         s << "\tpNext = " << value.pNext << '\n';
8510         s << "\tsrcImage = " << value.srcImage << '\n';
8511         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8512         s << "\tdstBuffer = " << value.dstBuffer << '\n';
8513         s << "\tregionCount = " << value.regionCount << '\n';
8514         s << "\tpRegions = " << value.pRegions << '\n';
8515         s << '}';
8516         return s;
8517 }
8518
8519 std::ostream& operator<< (std::ostream& s, const VkImageBlit2KHR& value)
8520 {
8521         s << "VkImageBlit2KHR = {\n";
8522         s << "\tsType = " << value.sType << '\n';
8523         s << "\tpNext = " << value.pNext << '\n';
8524         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8525         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
8526         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8527         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
8528         s << '}';
8529         return s;
8530 }
8531
8532 std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2KHR& value)
8533 {
8534         s << "VkBlitImageInfo2KHR = {\n";
8535         s << "\tsType = " << value.sType << '\n';
8536         s << "\tpNext = " << value.pNext << '\n';
8537         s << "\tsrcImage = " << value.srcImage << '\n';
8538         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8539         s << "\tdstImage = " << value.dstImage << '\n';
8540         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8541         s << "\tregionCount = " << value.regionCount << '\n';
8542         s << "\tpRegions = " << value.pRegions << '\n';
8543         s << "\tfilter = " << value.filter << '\n';
8544         s << '}';
8545         return s;
8546 }
8547
8548 std::ostream& operator<< (std::ostream& s, const VkImageResolve2KHR& value)
8549 {
8550         s << "VkImageResolve2KHR = {\n";
8551         s << "\tsType = " << value.sType << '\n';
8552         s << "\tpNext = " << value.pNext << '\n';
8553         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8554         s << "\tsrcOffset = " << value.srcOffset << '\n';
8555         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8556         s << "\tdstOffset = " << value.dstOffset << '\n';
8557         s << "\textent = " << value.extent << '\n';
8558         s << '}';
8559         return s;
8560 }
8561
8562 std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2KHR& value)
8563 {
8564         s << "VkResolveImageInfo2KHR = {\n";
8565         s << "\tsType = " << value.sType << '\n';
8566         s << "\tpNext = " << value.pNext << '\n';
8567         s << "\tsrcImage = " << value.srcImage << '\n';
8568         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8569         s << "\tdstImage = " << value.dstImage << '\n';
8570         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8571         s << "\tregionCount = " << value.regionCount << '\n';
8572         s << "\tpRegions = " << value.pRegions << '\n';
8573         s << '}';
8574         return s;
8575 }
8576
8577 std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
8578 {
8579         s << "VkDebugReportCallbackCreateInfoEXT = {\n";
8580         s << "\tsType = " << value.sType << '\n';
8581         s << "\tpNext = " << value.pNext << '\n';
8582         s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
8583         s << "\tpfnCallback = " << value.pfnCallback << '\n';
8584         s << "\tpUserData = " << value.pUserData << '\n';
8585         s << '}';
8586         return s;
8587 }
8588
8589 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
8590 {
8591         s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
8592         s << "\tsType = " << value.sType << '\n';
8593         s << "\tpNext = " << value.pNext << '\n';
8594         s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
8595         s << '}';
8596         return s;
8597 }
8598
8599 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
8600 {
8601         s << "VkDebugMarkerObjectNameInfoEXT = {\n";
8602         s << "\tsType = " << value.sType << '\n';
8603         s << "\tpNext = " << value.pNext << '\n';
8604         s << "\tobjectType = " << value.objectType << '\n';
8605         s << "\tobject = " << value.object << '\n';
8606         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
8607         s << '}';
8608         return s;
8609 }
8610
8611 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
8612 {
8613         s << "VkDebugMarkerObjectTagInfoEXT = {\n";
8614         s << "\tsType = " << value.sType << '\n';
8615         s << "\tpNext = " << value.pNext << '\n';
8616         s << "\tobjectType = " << value.objectType << '\n';
8617         s << "\tobject = " << value.object << '\n';
8618         s << "\ttagName = " << value.tagName << '\n';
8619         s << "\ttagSize = " << value.tagSize << '\n';
8620         s << "\tpTag = " << value.pTag << '\n';
8621         s << '}';
8622         return s;
8623 }
8624
8625 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
8626 {
8627         s << "VkDebugMarkerMarkerInfoEXT = {\n";
8628         s << "\tsType = " << value.sType << '\n';
8629         s << "\tpNext = " << value.pNext << '\n';
8630         s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
8631         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
8632         s << '}';
8633         return s;
8634 }
8635
8636 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
8637 {
8638         s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
8639         s << "\tsType = " << value.sType << '\n';
8640         s << "\tpNext = " << value.pNext << '\n';
8641         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8642         s << '}';
8643         return s;
8644 }
8645
8646 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
8647 {
8648         s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
8649         s << "\tsType = " << value.sType << '\n';
8650         s << "\tpNext = " << value.pNext << '\n';
8651         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
8652         s << '}';
8653         return s;
8654 }
8655
8656 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
8657 {
8658         s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
8659         s << "\tsType = " << value.sType << '\n';
8660         s << "\tpNext = " << value.pNext << '\n';
8661         s << "\timage = " << value.image << '\n';
8662         s << "\tbuffer = " << value.buffer << '\n';
8663         s << '}';
8664         return s;
8665 }
8666
8667 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
8668 {
8669         s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
8670         s << "\tsType = " << value.sType << '\n';
8671         s << "\tpNext = " << value.pNext << '\n';
8672         s << "\ttransformFeedback = " << value.transformFeedback << '\n';
8673         s << "\tgeometryStreams = " << value.geometryStreams << '\n';
8674         s << '}';
8675         return s;
8676 }
8677
8678 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
8679 {
8680         s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
8681         s << "\tsType = " << value.sType << '\n';
8682         s << "\tpNext = " << value.pNext << '\n';
8683         s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
8684         s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
8685         s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
8686         s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
8687         s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
8688         s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
8689         s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
8690         s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
8691         s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
8692         s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
8693         s << '}';
8694         return s;
8695 }
8696
8697 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
8698 {
8699         s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
8700         s << "\tsType = " << value.sType << '\n';
8701         s << "\tpNext = " << value.pNext << '\n';
8702         s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
8703         s << "\trasterizationStream = " << value.rasterizationStream << '\n';
8704         s << '}';
8705         return s;
8706 }
8707
8708 std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
8709 {
8710         s << "VkCuModuleCreateInfoNVX = {\n";
8711         s << "\tsType = " << value.sType << '\n';
8712         s << "\tpNext = " << value.pNext << '\n';
8713         s << "\tdataSize = " << value.dataSize << '\n';
8714         s << "\tpData = " << value.pData << '\n';
8715         s << '}';
8716         return s;
8717 }
8718
8719 std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
8720 {
8721         s << "VkCuFunctionCreateInfoNVX = {\n";
8722         s << "\tsType = " << value.sType << '\n';
8723         s << "\tpNext = " << value.pNext << '\n';
8724         s << "\tmodule = " << value.module << '\n';
8725         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
8726         s << '}';
8727         return s;
8728 }
8729
8730 std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
8731 {
8732         s << "VkCuLaunchInfoNVX = {\n";
8733         s << "\tsType = " << value.sType << '\n';
8734         s << "\tpNext = " << value.pNext << '\n';
8735         s << "\tfunction = " << value.function << '\n';
8736         s << "\tgridDimX = " << value.gridDimX << '\n';
8737         s << "\tgridDimY = " << value.gridDimY << '\n';
8738         s << "\tgridDimZ = " << value.gridDimZ << '\n';
8739         s << "\tblockDimX = " << value.blockDimX << '\n';
8740         s << "\tblockDimY = " << value.blockDimY << '\n';
8741         s << "\tblockDimZ = " << value.blockDimZ << '\n';
8742         s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
8743         s << "\tparamCount = " << value.paramCount << '\n';
8744         s << "\tpParams = " << value.pParams << '\n';
8745         s << "\textraCount = " << value.extraCount << '\n';
8746         s << "\tpExtras = " << value.pExtras << '\n';
8747         s << '}';
8748         return s;
8749 }
8750
8751 std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
8752 {
8753         s << "VkImageViewHandleInfoNVX = {\n";
8754         s << "\tsType = " << value.sType << '\n';
8755         s << "\tpNext = " << value.pNext << '\n';
8756         s << "\timageView = " << value.imageView << '\n';
8757         s << "\tdescriptorType = " << value.descriptorType << '\n';
8758         s << "\tsampler = " << value.sampler << '\n';
8759         s << '}';
8760         return s;
8761 }
8762
8763 std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
8764 {
8765         s << "VkImageViewAddressPropertiesNVX = {\n";
8766         s << "\tsType = " << value.sType << '\n';
8767         s << "\tpNext = " << value.pNext << '\n';
8768         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
8769         s << "\tsize = " << value.size << '\n';
8770         s << '}';
8771         return s;
8772 }
8773
8774 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
8775 {
8776         s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
8777         s << "\tsType = " << value.sType << '\n';
8778         s << "\tpNext = " << value.pNext << '\n';
8779         s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
8780         s << '}';
8781         return s;
8782 }
8783
8784 std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
8785 {
8786         s << "VkShaderResourceUsageAMD = {\n";
8787         s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
8788         s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
8789         s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
8790         s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
8791         s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
8792         s << '}';
8793         return s;
8794 }
8795
8796 std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
8797 {
8798         s << "VkShaderStatisticsInfoAMD = {\n";
8799         s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
8800         s << "\tresourceUsage = " << value.resourceUsage << '\n';
8801         s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
8802         s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
8803         s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
8804         s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
8805         s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
8806         s << '}';
8807         return s;
8808 }
8809
8810 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
8811 {
8812         s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
8813         s << "\tsType = " << value.sType << '\n';
8814         s << "\tpNext = " << value.pNext << '\n';
8815         s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
8816         s << '}';
8817         return s;
8818 }
8819
8820 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
8821 {
8822         s << "VkExternalImageFormatPropertiesNV = {\n";
8823         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
8824         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
8825         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
8826         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
8827         s << '}';
8828         return s;
8829 }
8830
8831 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
8832 {
8833         s << "VkExternalMemoryImageCreateInfoNV = {\n";
8834         s << "\tsType = " << value.sType << '\n';
8835         s << "\tpNext = " << value.pNext << '\n';
8836         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8837         s << '}';
8838         return s;
8839 }
8840
8841 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
8842 {
8843         s << "VkExportMemoryAllocateInfoNV = {\n";
8844         s << "\tsType = " << value.sType << '\n';
8845         s << "\tpNext = " << value.pNext << '\n';
8846         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
8847         s << '}';
8848         return s;
8849 }
8850
8851 std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
8852 {
8853         s << "VkValidationFlagsEXT = {\n";
8854         s << "\tsType = " << value.sType << '\n';
8855         s << "\tpNext = " << value.pNext << '\n';
8856         s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
8857         s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
8858         s << '}';
8859         return s;
8860 }
8861
8862 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& value)
8863 {
8864         s << "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT = {\n";
8865         s << "\tsType = " << value.sType << '\n';
8866         s << "\tpNext = " << value.pNext << '\n';
8867         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
8868         s << '}';
8869         return s;
8870 }
8871
8872 std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
8873 {
8874         s << "VkImageViewASTCDecodeModeEXT = {\n";
8875         s << "\tsType = " << value.sType << '\n';
8876         s << "\tpNext = " << value.pNext << '\n';
8877         s << "\tdecodeMode = " << value.decodeMode << '\n';
8878         s << '}';
8879         return s;
8880 }
8881
8882 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
8883 {
8884         s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
8885         s << "\tsType = " << value.sType << '\n';
8886         s << "\tpNext = " << value.pNext << '\n';
8887         s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
8888         s << '}';
8889         return s;
8890 }
8891
8892 std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
8893 {
8894         s << "VkConditionalRenderingBeginInfoEXT = {\n";
8895         s << "\tsType = " << value.sType << '\n';
8896         s << "\tpNext = " << value.pNext << '\n';
8897         s << "\tbuffer = " << value.buffer << '\n';
8898         s << "\toffset = " << value.offset << '\n';
8899         s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
8900         s << '}';
8901         return s;
8902 }
8903
8904 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
8905 {
8906         s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
8907         s << "\tsType = " << value.sType << '\n';
8908         s << "\tpNext = " << value.pNext << '\n';
8909         s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
8910         s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
8911         s << '}';
8912         return s;
8913 }
8914
8915 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
8916 {
8917         s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
8918         s << "\tsType = " << value.sType << '\n';
8919         s << "\tpNext = " << value.pNext << '\n';
8920         s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
8921         s << '}';
8922         return s;
8923 }
8924
8925 std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
8926 {
8927         s << "VkViewportWScalingNV = {\n";
8928         s << "\txcoeff = " << value.xcoeff << '\n';
8929         s << "\tycoeff = " << value.ycoeff << '\n';
8930         s << '}';
8931         return s;
8932 }
8933
8934 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
8935 {
8936         s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
8937         s << "\tsType = " << value.sType << '\n';
8938         s << "\tpNext = " << value.pNext << '\n';
8939         s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
8940         s << "\tviewportCount = " << value.viewportCount << '\n';
8941         s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
8942         s << '}';
8943         return s;
8944 }
8945
8946 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
8947 {
8948         s << "VkSurfaceCapabilities2EXT = {\n";
8949         s << "\tsType = " << value.sType << '\n';
8950         s << "\tpNext = " << value.pNext << '\n';
8951         s << "\tminImageCount = " << value.minImageCount << '\n';
8952         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8953         s << "\tcurrentExtent = " << value.currentExtent << '\n';
8954         s << "\tminImageExtent = " << value.minImageExtent << '\n';
8955         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8956         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8957         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8958         s << "\tcurrentTransform = " << value.currentTransform << '\n';
8959         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8960         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8961         s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
8962         s << '}';
8963         return s;
8964 }
8965
8966 std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
8967 {
8968         s << "VkDisplayPowerInfoEXT = {\n";
8969         s << "\tsType = " << value.sType << '\n';
8970         s << "\tpNext = " << value.pNext << '\n';
8971         s << "\tpowerState = " << value.powerState << '\n';
8972         s << '}';
8973         return s;
8974 }
8975
8976 std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
8977 {
8978         s << "VkDeviceEventInfoEXT = {\n";
8979         s << "\tsType = " << value.sType << '\n';
8980         s << "\tpNext = " << value.pNext << '\n';
8981         s << "\tdeviceEvent = " << value.deviceEvent << '\n';
8982         s << '}';
8983         return s;
8984 }
8985
8986 std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
8987 {
8988         s << "VkDisplayEventInfoEXT = {\n";
8989         s << "\tsType = " << value.sType << '\n';
8990         s << "\tpNext = " << value.pNext << '\n';
8991         s << "\tdisplayEvent = " << value.displayEvent << '\n';
8992         s << '}';
8993         return s;
8994 }
8995
8996 std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
8997 {
8998         s << "VkSwapchainCounterCreateInfoEXT = {\n";
8999         s << "\tsType = " << value.sType << '\n';
9000         s << "\tpNext = " << value.pNext << '\n';
9001         s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
9002         s << '}';
9003         return s;
9004 }
9005
9006 std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
9007 {
9008         s << "VkRefreshCycleDurationGOOGLE = {\n";
9009         s << "\trefreshDuration = " << value.refreshDuration << '\n';
9010         s << '}';
9011         return s;
9012 }
9013
9014 std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
9015 {
9016         s << "VkPastPresentationTimingGOOGLE = {\n";
9017         s << "\tpresentID = " << value.presentID << '\n';
9018         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9019         s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
9020         s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
9021         s << "\tpresentMargin = " << value.presentMargin << '\n';
9022         s << '}';
9023         return s;
9024 }
9025
9026 std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
9027 {
9028         s << "VkPresentTimeGOOGLE = {\n";
9029         s << "\tpresentID = " << value.presentID << '\n';
9030         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
9031         s << '}';
9032         return s;
9033 }
9034
9035 std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
9036 {
9037         s << "VkPresentTimesInfoGOOGLE = {\n";
9038         s << "\tsType = " << value.sType << '\n';
9039         s << "\tpNext = " << value.pNext << '\n';
9040         s << "\tswapchainCount = " << value.swapchainCount << '\n';
9041         s << "\tpTimes = " << value.pTimes << '\n';
9042         s << '}';
9043         return s;
9044 }
9045
9046 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
9047 {
9048         s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
9049         s << "\tsType = " << value.sType << '\n';
9050         s << "\tpNext = " << value.pNext << '\n';
9051         s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
9052         s << '}';
9053         return s;
9054 }
9055
9056 std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
9057 {
9058         s << "VkViewportSwizzleNV = {\n";
9059         s << "\tx = " << value.x << '\n';
9060         s << "\ty = " << value.y << '\n';
9061         s << "\tz = " << value.z << '\n';
9062         s << "\tw = " << value.w << '\n';
9063         s << '}';
9064         return s;
9065 }
9066
9067 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
9068 {
9069         s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
9070         s << "\tsType = " << value.sType << '\n';
9071         s << "\tpNext = " << value.pNext << '\n';
9072         s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
9073         s << "\tviewportCount = " << value.viewportCount << '\n';
9074         s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
9075         s << '}';
9076         return s;
9077 }
9078
9079 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
9080 {
9081         s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
9082         s << "\tsType = " << value.sType << '\n';
9083         s << "\tpNext = " << value.pNext << '\n';
9084         s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
9085         s << '}';
9086         return s;
9087 }
9088
9089 std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
9090 {
9091         s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
9092         s << "\tsType = " << value.sType << '\n';
9093         s << "\tpNext = " << value.pNext << '\n';
9094         s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
9095         s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
9096         s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
9097         s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
9098         s << '}';
9099         return s;
9100 }
9101
9102 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
9103 {
9104         s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
9105         s << "\tsType = " << value.sType << '\n';
9106         s << "\tpNext = " << value.pNext << '\n';
9107         s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
9108         s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
9109         s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
9110         s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
9111         s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
9112         s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
9113         s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
9114         s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
9115         s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
9116         s << '}';
9117         return s;
9118 }
9119
9120 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
9121 {
9122         s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
9123         s << "\tsType = " << value.sType << '\n';
9124         s << "\tpNext = " << value.pNext << '\n';
9125         s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
9126         s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
9127         s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
9128         s << '}';
9129         return s;
9130 }
9131
9132 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
9133 {
9134         s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
9135         s << "\tsType = " << value.sType << '\n';
9136         s << "\tpNext = " << value.pNext << '\n';
9137         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
9138         s << '}';
9139         return s;
9140 }
9141
9142 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
9143 {
9144         s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
9145         s << "\tsType = " << value.sType << '\n';
9146         s << "\tpNext = " << value.pNext << '\n';
9147         s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
9148         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
9149         s << '}';
9150         return s;
9151 }
9152
9153 std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
9154 {
9155         s << "VkXYColorEXT = {\n";
9156         s << "\tx = " << value.x << '\n';
9157         s << "\ty = " << value.y << '\n';
9158         s << '}';
9159         return s;
9160 }
9161
9162 std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
9163 {
9164         s << "VkHdrMetadataEXT = {\n";
9165         s << "\tsType = " << value.sType << '\n';
9166         s << "\tpNext = " << value.pNext << '\n';
9167         s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
9168         s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
9169         s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
9170         s << "\twhitePoint = " << value.whitePoint << '\n';
9171         s << "\tmaxLuminance = " << value.maxLuminance << '\n';
9172         s << "\tminLuminance = " << value.minLuminance << '\n';
9173         s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
9174         s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
9175         s << '}';
9176         return s;
9177 }
9178
9179 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
9180 {
9181         s << "VkDebugUtilsLabelEXT = {\n";
9182         s << "\tsType = " << value.sType << '\n';
9183         s << "\tpNext = " << value.pNext << '\n';
9184         s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
9185         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9186         s << '}';
9187         return s;
9188 }
9189
9190 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
9191 {
9192         s << "VkDebugUtilsObjectNameInfoEXT = {\n";
9193         s << "\tsType = " << value.sType << '\n';
9194         s << "\tpNext = " << value.pNext << '\n';
9195         s << "\tobjectType = " << value.objectType << '\n';
9196         s << "\tobjectHandle = " << value.objectHandle << '\n';
9197         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9198         s << '}';
9199         return s;
9200 }
9201
9202 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
9203 {
9204         s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
9205         s << "\tsType = " << value.sType << '\n';
9206         s << "\tpNext = " << value.pNext << '\n';
9207         s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
9208         s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
9209         s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
9210         s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
9211         s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
9212         s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
9213         s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
9214         s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
9215         s << "\tobjectCount = " << value.objectCount << '\n';
9216         s << "\tpObjects = " << value.pObjects << '\n';
9217         s << '}';
9218         return s;
9219 }
9220
9221 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
9222 {
9223         s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
9224         s << "\tsType = " << value.sType << '\n';
9225         s << "\tpNext = " << value.pNext << '\n';
9226         s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
9227         s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
9228         s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
9229         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
9230         s << "\tpUserData = " << value.pUserData << '\n';
9231         s << '}';
9232         return s;
9233 }
9234
9235 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
9236 {
9237         s << "VkDebugUtilsObjectTagInfoEXT = {\n";
9238         s << "\tsType = " << value.sType << '\n';
9239         s << "\tpNext = " << value.pNext << '\n';
9240         s << "\tobjectType = " << value.objectType << '\n';
9241         s << "\tobjectHandle = " << value.objectHandle << '\n';
9242         s << "\ttagName = " << value.tagName << '\n';
9243         s << "\ttagSize = " << value.tagSize << '\n';
9244         s << "\tpTag = " << value.pTag << '\n';
9245         s << '}';
9246         return s;
9247 }
9248
9249 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeaturesEXT& value)
9250 {
9251         s << "VkPhysicalDeviceInlineUniformBlockFeaturesEXT = {\n";
9252         s << "\tsType = " << value.sType << '\n';
9253         s << "\tpNext = " << value.pNext << '\n';
9254         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
9255         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
9256         s << '}';
9257         return s;
9258 }
9259
9260 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockPropertiesEXT& value)
9261 {
9262         s << "VkPhysicalDeviceInlineUniformBlockPropertiesEXT = {\n";
9263         s << "\tsType = " << value.sType << '\n';
9264         s << "\tpNext = " << value.pNext << '\n';
9265         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
9266         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
9267         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
9268         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
9269         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
9270         s << '}';
9271         return s;
9272 }
9273
9274 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlockEXT& value)
9275 {
9276         s << "VkWriteDescriptorSetInlineUniformBlockEXT = {\n";
9277         s << "\tsType = " << value.sType << '\n';
9278         s << "\tpNext = " << value.pNext << '\n';
9279         s << "\tdataSize = " << value.dataSize << '\n';
9280         s << "\tpData = " << value.pData << '\n';
9281         s << '}';
9282         return s;
9283 }
9284
9285 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfoEXT& value)
9286 {
9287         s << "VkDescriptorPoolInlineUniformBlockCreateInfoEXT = {\n";
9288         s << "\tsType = " << value.sType << '\n';
9289         s << "\tpNext = " << value.pNext << '\n';
9290         s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
9291         s << '}';
9292         return s;
9293 }
9294
9295 std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
9296 {
9297         s << "VkSampleLocationEXT = {\n";
9298         s << "\tx = " << value.x << '\n';
9299         s << "\ty = " << value.y << '\n';
9300         s << '}';
9301         return s;
9302 }
9303
9304 std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
9305 {
9306         s << "VkSampleLocationsInfoEXT = {\n";
9307         s << "\tsType = " << value.sType << '\n';
9308         s << "\tpNext = " << value.pNext << '\n';
9309         s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
9310         s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
9311         s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
9312         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9313         s << '}';
9314         return s;
9315 }
9316
9317 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
9318 {
9319         s << "VkAttachmentSampleLocationsEXT = {\n";
9320         s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
9321         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9322         s << '}';
9323         return s;
9324 }
9325
9326 std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
9327 {
9328         s << "VkSubpassSampleLocationsEXT = {\n";
9329         s << "\tsubpassIndex = " << value.subpassIndex << '\n';
9330         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9331         s << '}';
9332         return s;
9333 }
9334
9335 std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
9336 {
9337         s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
9338         s << "\tsType = " << value.sType << '\n';
9339         s << "\tpNext = " << value.pNext << '\n';
9340         s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
9341         s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
9342         s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
9343         s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
9344         s << '}';
9345         return s;
9346 }
9347
9348 std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
9349 {
9350         s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
9351         s << "\tsType = " << value.sType << '\n';
9352         s << "\tpNext = " << value.pNext << '\n';
9353         s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
9354         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
9355         s << '}';
9356         return s;
9357 }
9358
9359 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
9360 {
9361         s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
9362         s << "\tsType = " << value.sType << '\n';
9363         s << "\tpNext = " << value.pNext << '\n';
9364         s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
9365         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9366         s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
9367         s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
9368         s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
9369         s << '}';
9370         return s;
9371 }
9372
9373 std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
9374 {
9375         s << "VkMultisamplePropertiesEXT = {\n";
9376         s << "\tsType = " << value.sType << '\n';
9377         s << "\tpNext = " << value.pNext << '\n';
9378         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
9379         s << '}';
9380         return s;
9381 }
9382
9383 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
9384 {
9385         s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
9386         s << "\tsType = " << value.sType << '\n';
9387         s << "\tpNext = " << value.pNext << '\n';
9388         s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
9389         s << '}';
9390         return s;
9391 }
9392
9393 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
9394 {
9395         s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
9396         s << "\tsType = " << value.sType << '\n';
9397         s << "\tpNext = " << value.pNext << '\n';
9398         s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
9399         s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
9400         s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
9401         s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
9402         s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
9403         s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
9404         s << '}';
9405         return s;
9406 }
9407
9408 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
9409 {
9410         s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
9411         s << "\tsType = " << value.sType << '\n';
9412         s << "\tpNext = " << value.pNext << '\n';
9413         s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
9414         s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
9415         s << "\tblendOverlap = " << value.blendOverlap << '\n';
9416         s << '}';
9417         return s;
9418 }
9419
9420 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
9421 {
9422         s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
9423         s << "\tsType = " << value.sType << '\n';
9424         s << "\tpNext = " << value.pNext << '\n';
9425         s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
9426         s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
9427         s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
9428         s << '}';
9429         return s;
9430 }
9431
9432 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
9433 {
9434         s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
9435         s << "\tsType = " << value.sType << '\n';
9436         s << "\tpNext = " << value.pNext << '\n';
9437         s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
9438         s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
9439         s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
9440         s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
9441         s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
9442         s << '}';
9443         return s;
9444 }
9445
9446 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
9447 {
9448         s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
9449         s << "\tsType = " << value.sType << '\n';
9450         s << "\tpNext = " << value.pNext << '\n';
9451         s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
9452         s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
9453         s << '}';
9454         return s;
9455 }
9456
9457 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
9458 {
9459         s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
9460         s << "\tsType = " << value.sType << '\n';
9461         s << "\tpNext = " << value.pNext << '\n';
9462         s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
9463         s << '}';
9464         return s;
9465 }
9466
9467 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
9468 {
9469         s << "VkDrmFormatModifierPropertiesEXT = {\n";
9470         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9471         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
9472         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
9473         s << '}';
9474         return s;
9475 }
9476
9477 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
9478 {
9479         s << "VkDrmFormatModifierPropertiesListEXT = {\n";
9480         s << "\tsType = " << value.sType << '\n';
9481         s << "\tpNext = " << value.pNext << '\n';
9482         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
9483         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
9484         s << '}';
9485         return s;
9486 }
9487
9488 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
9489 {
9490         s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
9491         s << "\tsType = " << value.sType << '\n';
9492         s << "\tpNext = " << value.pNext << '\n';
9493         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9494         s << "\tsharingMode = " << value.sharingMode << '\n';
9495         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
9496         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
9497         s << '}';
9498         return s;
9499 }
9500
9501 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
9502 {
9503         s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
9504         s << "\tsType = " << value.sType << '\n';
9505         s << "\tpNext = " << value.pNext << '\n';
9506         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
9507         s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
9508         s << '}';
9509         return s;
9510 }
9511
9512 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
9513 {
9514         s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
9515         s << "\tsType = " << value.sType << '\n';
9516         s << "\tpNext = " << value.pNext << '\n';
9517         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9518         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
9519         s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
9520         s << '}';
9521         return s;
9522 }
9523
9524 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
9525 {
9526         s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
9527         s << "\tsType = " << value.sType << '\n';
9528         s << "\tpNext = " << value.pNext << '\n';
9529         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
9530         s << '}';
9531         return s;
9532 }
9533
9534 std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
9535 {
9536         s << "VkValidationCacheCreateInfoEXT = {\n";
9537         s << "\tsType = " << value.sType << '\n';
9538         s << "\tpNext = " << value.pNext << '\n';
9539         s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
9540         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
9541         s << "\tpInitialData = " << value.pInitialData << '\n';
9542         s << '}';
9543         return s;
9544 }
9545
9546 std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
9547 {
9548         s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
9549         s << "\tsType = " << value.sType << '\n';
9550         s << "\tpNext = " << value.pNext << '\n';
9551         s << "\tvalidationCache = " << value.validationCache << '\n';
9552         s << '}';
9553         return s;
9554 }
9555
9556 std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
9557 {
9558         s << "VkShadingRatePaletteNV = {\n";
9559         s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
9560         s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
9561         s << '}';
9562         return s;
9563 }
9564
9565 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
9566 {
9567         s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
9568         s << "\tsType = " << value.sType << '\n';
9569         s << "\tpNext = " << value.pNext << '\n';
9570         s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
9571         s << "\tviewportCount = " << value.viewportCount << '\n';
9572         s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
9573         s << '}';
9574         return s;
9575 }
9576
9577 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
9578 {
9579         s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
9580         s << "\tsType = " << value.sType << '\n';
9581         s << "\tpNext = " << value.pNext << '\n';
9582         s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
9583         s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
9584         s << '}';
9585         return s;
9586 }
9587
9588 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
9589 {
9590         s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
9591         s << "\tsType = " << value.sType << '\n';
9592         s << "\tpNext = " << value.pNext << '\n';
9593         s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
9594         s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
9595         s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
9596         s << '}';
9597         return s;
9598 }
9599
9600 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
9601 {
9602         s << "VkCoarseSampleLocationNV = {\n";
9603         s << "\tpixelX = " << value.pixelX << '\n';
9604         s << "\tpixelY = " << value.pixelY << '\n';
9605         s << "\tsample = " << value.sample << '\n';
9606         s << '}';
9607         return s;
9608 }
9609
9610 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
9611 {
9612         s << "VkCoarseSampleOrderCustomNV = {\n";
9613         s << "\tshadingRate = " << value.shadingRate << '\n';
9614         s << "\tsampleCount = " << value.sampleCount << '\n';
9615         s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
9616         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
9617         s << '}';
9618         return s;
9619 }
9620
9621 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
9622 {
9623         s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
9624         s << "\tsType = " << value.sType << '\n';
9625         s << "\tpNext = " << value.pNext << '\n';
9626         s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
9627         s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
9628         s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
9629         s << '}';
9630         return s;
9631 }
9632
9633 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
9634 {
9635         s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
9636         s << "\tsType = " << value.sType << '\n';
9637         s << "\tpNext = " << value.pNext << '\n';
9638         s << "\ttype = " << value.type << '\n';
9639         s << "\tgeneralShader = " << value.generalShader << '\n';
9640         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
9641         s << "\tanyHitShader = " << value.anyHitShader << '\n';
9642         s << "\tintersectionShader = " << value.intersectionShader << '\n';
9643         s << '}';
9644         return s;
9645 }
9646
9647 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
9648 {
9649         s << "VkRayTracingPipelineCreateInfoNV = {\n";
9650         s << "\tsType = " << value.sType << '\n';
9651         s << "\tpNext = " << value.pNext << '\n';
9652         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
9653         s << "\tstageCount = " << value.stageCount << '\n';
9654         s << "\tpStages = " << value.pStages << '\n';
9655         s << "\tgroupCount = " << value.groupCount << '\n';
9656         s << "\tpGroups = " << value.pGroups << '\n';
9657         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
9658         s << "\tlayout = " << value.layout << '\n';
9659         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
9660         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
9661         s << '}';
9662         return s;
9663 }
9664
9665 std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
9666 {
9667         s << "VkGeometryTrianglesNV = {\n";
9668         s << "\tsType = " << value.sType << '\n';
9669         s << "\tpNext = " << value.pNext << '\n';
9670         s << "\tvertexData = " << value.vertexData << '\n';
9671         s << "\tvertexOffset = " << value.vertexOffset << '\n';
9672         s << "\tvertexCount = " << value.vertexCount << '\n';
9673         s << "\tvertexStride = " << value.vertexStride << '\n';
9674         s << "\tvertexFormat = " << value.vertexFormat << '\n';
9675         s << "\tindexData = " << value.indexData << '\n';
9676         s << "\tindexOffset = " << value.indexOffset << '\n';
9677         s << "\tindexCount = " << value.indexCount << '\n';
9678         s << "\tindexType = " << value.indexType << '\n';
9679         s << "\ttransformData = " << value.transformData << '\n';
9680         s << "\ttransformOffset = " << value.transformOffset << '\n';
9681         s << '}';
9682         return s;
9683 }
9684
9685 std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
9686 {
9687         s << "VkGeometryAABBNV = {\n";
9688         s << "\tsType = " << value.sType << '\n';
9689         s << "\tpNext = " << value.pNext << '\n';
9690         s << "\taabbData = " << value.aabbData << '\n';
9691         s << "\tnumAABBs = " << value.numAABBs << '\n';
9692         s << "\tstride = " << value.stride << '\n';
9693         s << "\toffset = " << value.offset << '\n';
9694         s << '}';
9695         return s;
9696 }
9697
9698 std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
9699 {
9700         s << "VkGeometryDataNV = {\n";
9701         s << "\ttriangles = " << value.triangles << '\n';
9702         s << "\taabbs = " << value.aabbs << '\n';
9703         s << '}';
9704         return s;
9705 }
9706
9707 std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
9708 {
9709         s << "VkGeometryNV = {\n";
9710         s << "\tsType = " << value.sType << '\n';
9711         s << "\tpNext = " << value.pNext << '\n';
9712         s << "\tgeometryType = " << value.geometryType << '\n';
9713         s << "\tgeometry = " << value.geometry << '\n';
9714         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
9715         s << '}';
9716         return s;
9717 }
9718
9719 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
9720 {
9721         s << "VkAccelerationStructureInfoNV = {\n";
9722         s << "\tsType = " << value.sType << '\n';
9723         s << "\tpNext = " << value.pNext << '\n';
9724         s << "\ttype = " << value.type << '\n';
9725         s << "\tflags = " << getBuildAccelerationStructureFlagsNVStr(value.flags) << '\n';
9726         s << "\tinstanceCount = " << value.instanceCount << '\n';
9727         s << "\tgeometryCount = " << value.geometryCount << '\n';
9728         s << "\tpGeometries = " << value.pGeometries << '\n';
9729         s << '}';
9730         return s;
9731 }
9732
9733 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
9734 {
9735         s << "VkAccelerationStructureCreateInfoNV = {\n";
9736         s << "\tsType = " << value.sType << '\n';
9737         s << "\tpNext = " << value.pNext << '\n';
9738         s << "\tcompactedSize = " << value.compactedSize << '\n';
9739         s << "\tinfo = " << value.info << '\n';
9740         s << '}';
9741         return s;
9742 }
9743
9744 std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
9745 {
9746         s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
9747         s << "\tsType = " << value.sType << '\n';
9748         s << "\tpNext = " << value.pNext << '\n';
9749         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
9750         s << "\tmemory = " << value.memory << '\n';
9751         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
9752         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
9753         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
9754         s << '}';
9755         return s;
9756 }
9757
9758 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
9759 {
9760         s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
9761         s << "\tsType = " << value.sType << '\n';
9762         s << "\tpNext = " << value.pNext << '\n';
9763         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
9764         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
9765         s << '}';
9766         return s;
9767 }
9768
9769 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
9770 {
9771         s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
9772         s << "\tsType = " << value.sType << '\n';
9773         s << "\tpNext = " << value.pNext << '\n';
9774         s << "\ttype = " << value.type << '\n';
9775         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
9776         s << '}';
9777         return s;
9778 }
9779
9780 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
9781 {
9782         s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
9783         s << "\tsType = " << value.sType << '\n';
9784         s << "\tpNext = " << value.pNext << '\n';
9785         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
9786         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
9787         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
9788         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
9789         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
9790         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
9791         s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
9792         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
9793         s << '}';
9794         return s;
9795 }
9796
9797 std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
9798 {
9799         s << "VkTransformMatrixKHR = {\n";
9800         s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
9801         s << '}';
9802         return s;
9803 }
9804
9805 std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
9806 {
9807         s << "VkAabbPositionsKHR = {\n";
9808         s << "\tminX = " << value.minX << '\n';
9809         s << "\tminY = " << value.minY << '\n';
9810         s << "\tminZ = " << value.minZ << '\n';
9811         s << "\tmaxX = " << value.maxX << '\n';
9812         s << "\tmaxY = " << value.maxY << '\n';
9813         s << "\tmaxZ = " << value.maxZ << '\n';
9814         s << '}';
9815         return s;
9816 }
9817
9818 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
9819 {
9820         s << "VkAccelerationStructureInstanceKHR = {\n";
9821         s << "\ttransform = " << value.transform << '\n';
9822         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
9823         s << "\tmask = " << value.mask << '\n';
9824         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
9825         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
9826         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
9827         s << '}';
9828         return s;
9829 }
9830
9831 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
9832 {
9833         s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
9834         s << "\tsType = " << value.sType << '\n';
9835         s << "\tpNext = " << value.pNext << '\n';
9836         s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
9837         s << '}';
9838         return s;
9839 }
9840
9841 std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
9842 {
9843         s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
9844         s << "\tsType = " << value.sType << '\n';
9845         s << "\tpNext = " << value.pNext << '\n';
9846         s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
9847         s << '}';
9848         return s;
9849 }
9850
9851 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
9852 {
9853         s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
9854         s << "\tsType = " << value.sType << '\n';
9855         s << "\tpNext = " << value.pNext << '\n';
9856         s << "\timageViewType = " << value.imageViewType << '\n';
9857         s << '}';
9858         return s;
9859 }
9860
9861 std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
9862 {
9863         s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
9864         s << "\tsType = " << value.sType << '\n';
9865         s << "\tpNext = " << value.pNext << '\n';
9866         s << "\tfilterCubic = " << value.filterCubic << '\n';
9867         s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
9868         s << '}';
9869         return s;
9870 }
9871
9872 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoEXT& value)
9873 {
9874         s << "VkDeviceQueueGlobalPriorityCreateInfoEXT = {\n";
9875         s << "\tsType = " << value.sType << '\n';
9876         s << "\tpNext = " << value.pNext << '\n';
9877         s << "\tglobalPriority = " << value.globalPriority << '\n';
9878         s << '}';
9879         return s;
9880 }
9881
9882 std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
9883 {
9884         s << "VkImportMemoryHostPointerInfoEXT = {\n";
9885         s << "\tsType = " << value.sType << '\n';
9886         s << "\tpNext = " << value.pNext << '\n';
9887         s << "\thandleType = " << value.handleType << '\n';
9888         s << "\tpHostPointer = " << value.pHostPointer << '\n';
9889         s << '}';
9890         return s;
9891 }
9892
9893 std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
9894 {
9895         s << "VkMemoryHostPointerPropertiesEXT = {\n";
9896         s << "\tsType = " << value.sType << '\n';
9897         s << "\tpNext = " << value.pNext << '\n';
9898         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
9899         s << '}';
9900         return s;
9901 }
9902
9903 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
9904 {
9905         s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
9906         s << "\tsType = " << value.sType << '\n';
9907         s << "\tpNext = " << value.pNext << '\n';
9908         s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
9909         s << '}';
9910         return s;
9911 }
9912
9913 std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
9914 {
9915         s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
9916         s << "\tsType = " << value.sType << '\n';
9917         s << "\tpNext = " << value.pNext << '\n';
9918         s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
9919         s << '}';
9920         return s;
9921 }
9922
9923 std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
9924 {
9925         s << "VkCalibratedTimestampInfoEXT = {\n";
9926         s << "\tsType = " << value.sType << '\n';
9927         s << "\tpNext = " << value.pNext << '\n';
9928         s << "\ttimeDomain = " << value.timeDomain << '\n';
9929         s << '}';
9930         return s;
9931 }
9932
9933 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
9934 {
9935         s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
9936         s << "\tsType = " << value.sType << '\n';
9937         s << "\tpNext = " << value.pNext << '\n';
9938         s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
9939         s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
9940         s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
9941         s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
9942         s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
9943         s << "\twavefrontSize = " << value.wavefrontSize << '\n';
9944         s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
9945         s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
9946         s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
9947         s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
9948         s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
9949         s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
9950         s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
9951         s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
9952         s << '}';
9953         return s;
9954 }
9955
9956 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
9957 {
9958         s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
9959         s << "\tsType = " << value.sType << '\n';
9960         s << "\tpNext = " << value.pNext << '\n';
9961         s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
9962         s << '}';
9963         return s;
9964 }
9965
9966 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
9967 {
9968         s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
9969         s << "\tsType = " << value.sType << '\n';
9970         s << "\tpNext = " << value.pNext << '\n';
9971         s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
9972         s << '}';
9973         return s;
9974 }
9975
9976 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
9977 {
9978         s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
9979         s << "\tbinding = " << value.binding << '\n';
9980         s << "\tdivisor = " << value.divisor << '\n';
9981         s << '}';
9982         return s;
9983 }
9984
9985 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
9986 {
9987         s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
9988         s << "\tsType = " << value.sType << '\n';
9989         s << "\tpNext = " << value.pNext << '\n';
9990         s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
9991         s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
9992         s << '}';
9993         return s;
9994 }
9995
9996 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
9997 {
9998         s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
9999         s << "\tsType = " << value.sType << '\n';
10000         s << "\tpNext = " << value.pNext << '\n';
10001         s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
10002         s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
10003         s << '}';
10004         return s;
10005 }
10006
10007 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackEXT& value)
10008 {
10009         s << "VkPipelineCreationFeedbackEXT = {\n";
10010         s << "\tflags = " << getPipelineCreationFeedbackFlagsEXTStr(value.flags) << '\n';
10011         s << "\tduration = " << value.duration << '\n';
10012         s << '}';
10013         return s;
10014 }
10015
10016 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfoEXT& value)
10017 {
10018         s << "VkPipelineCreationFeedbackCreateInfoEXT = {\n";
10019         s << "\tsType = " << value.sType << '\n';
10020         s << "\tpNext = " << value.pNext << '\n';
10021         s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
10022         s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
10023         s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
10024         s << '}';
10025         return s;
10026 }
10027
10028 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10029 {
10030         s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10031         s << "\tsType = " << value.sType << '\n';
10032         s << "\tpNext = " << value.pNext << '\n';
10033         s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10034         s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10035         s << '}';
10036         return s;
10037 }
10038
10039 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
10040 {
10041         s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
10042         s << "\tsType = " << value.sType << '\n';
10043         s << "\tpNext = " << value.pNext << '\n';
10044         s << "\ttaskShader = " << value.taskShader << '\n';
10045         s << "\tmeshShader = " << value.meshShader << '\n';
10046         s << '}';
10047         return s;
10048 }
10049
10050 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
10051 {
10052         s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
10053         s << "\tsType = " << value.sType << '\n';
10054         s << "\tpNext = " << value.pNext << '\n';
10055         s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
10056         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10057         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10058         s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
10059         s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
10060         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10061         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
10062         s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
10063         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
10064         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
10065         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
10066         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
10067         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
10068         s << '}';
10069         return s;
10070 }
10071
10072 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
10073 {
10074         s << "VkDrawMeshTasksIndirectCommandNV = {\n";
10075         s << "\ttaskCount = " << value.taskCount << '\n';
10076         s << "\tfirstTask = " << value.firstTask << '\n';
10077         s << '}';
10078         return s;
10079 }
10080
10081 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& value)
10082 {
10083         s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV = {\n";
10084         s << "\tsType = " << value.sType << '\n';
10085         s << "\tpNext = " << value.pNext << '\n';
10086         s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
10087         s << '}';
10088         return s;
10089 }
10090
10091 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
10092 {
10093         s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
10094         s << "\tsType = " << value.sType << '\n';
10095         s << "\tpNext = " << value.pNext << '\n';
10096         s << "\timageFootprint = " << value.imageFootprint << '\n';
10097         s << '}';
10098         return s;
10099 }
10100
10101 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
10102 {
10103         s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
10104         s << "\tsType = " << value.sType << '\n';
10105         s << "\tpNext = " << value.pNext << '\n';
10106         s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
10107         s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
10108         s << '}';
10109         return s;
10110 }
10111
10112 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
10113 {
10114         s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
10115         s << "\tsType = " << value.sType << '\n';
10116         s << "\tpNext = " << value.pNext << '\n';
10117         s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
10118         s << '}';
10119         return s;
10120 }
10121
10122 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
10123 {
10124         s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
10125         s << "\tsType = " << value.sType << '\n';
10126         s << "\tpNext = " << value.pNext << '\n';
10127         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
10128         s << '}';
10129         return s;
10130 }
10131
10132 std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
10133 {
10134         s << "VkCheckpointDataNV = {\n";
10135         s << "\tsType = " << value.sType << '\n';
10136         s << "\tpNext = " << value.pNext << '\n';
10137         s << "\tstage = " << value.stage << '\n';
10138         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
10139         s << '}';
10140         return s;
10141 }
10142
10143 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
10144 {
10145         s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
10146         s << "\tsType = " << value.sType << '\n';
10147         s << "\tpNext = " << value.pNext << '\n';
10148         s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
10149         s << '}';
10150         return s;
10151 }
10152
10153 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
10154 {
10155         s << "VkPerformanceValueDataINTEL = {\n";
10156         s << "\tvalue32 = " << value.value32 << '\n';
10157         s << "\tvalue64 = " << value.value64 << '\n';
10158         s << "\tvalueFloat = " << value.valueFloat << '\n';
10159         s << "\tvalueBool = " << value.valueBool << '\n';
10160         s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
10161         s << '}';
10162         return s;
10163 }
10164
10165 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
10166 {
10167         s << "VkPerformanceValueINTEL = {\n";
10168         s << "\ttype = " << value.type << '\n';
10169         s << "\tdata = " << value.data << '\n';
10170         s << '}';
10171         return s;
10172 }
10173
10174 std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
10175 {
10176         s << "VkInitializePerformanceApiInfoINTEL = {\n";
10177         s << "\tsType = " << value.sType << '\n';
10178         s << "\tpNext = " << value.pNext << '\n';
10179         s << "\tpUserData = " << value.pUserData << '\n';
10180         s << '}';
10181         return s;
10182 }
10183
10184 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
10185 {
10186         s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
10187         s << "\tsType = " << value.sType << '\n';
10188         s << "\tpNext = " << value.pNext << '\n';
10189         s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
10190         s << '}';
10191         return s;
10192 }
10193
10194 std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
10195 {
10196         s << "VkPerformanceMarkerInfoINTEL = {\n";
10197         s << "\tsType = " << value.sType << '\n';
10198         s << "\tpNext = " << value.pNext << '\n';
10199         s << "\tmarker = " << value.marker << '\n';
10200         s << '}';
10201         return s;
10202 }
10203
10204 std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
10205 {
10206         s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
10207         s << "\tsType = " << value.sType << '\n';
10208         s << "\tpNext = " << value.pNext << '\n';
10209         s << "\tmarker = " << value.marker << '\n';
10210         s << '}';
10211         return s;
10212 }
10213
10214 std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
10215 {
10216         s << "VkPerformanceOverrideInfoINTEL = {\n";
10217         s << "\tsType = " << value.sType << '\n';
10218         s << "\tpNext = " << value.pNext << '\n';
10219         s << "\ttype = " << value.type << '\n';
10220         s << "\tenable = " << value.enable << '\n';
10221         s << "\tparameter = " << value.parameter << '\n';
10222         s << '}';
10223         return s;
10224 }
10225
10226 std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
10227 {
10228         s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
10229         s << "\tsType = " << value.sType << '\n';
10230         s << "\tpNext = " << value.pNext << '\n';
10231         s << "\ttype = " << value.type << '\n';
10232         s << '}';
10233         return s;
10234 }
10235
10236 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
10237 {
10238         s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
10239         s << "\tsType = " << value.sType << '\n';
10240         s << "\tpNext = " << value.pNext << '\n';
10241         s << "\tpciDomain = " << value.pciDomain << '\n';
10242         s << "\tpciBus = " << value.pciBus << '\n';
10243         s << "\tpciDevice = " << value.pciDevice << '\n';
10244         s << "\tpciFunction = " << value.pciFunction << '\n';
10245         s << '}';
10246         return s;
10247 }
10248
10249 std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
10250 {
10251         s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
10252         s << "\tsType = " << value.sType << '\n';
10253         s << "\tpNext = " << value.pNext << '\n';
10254         s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
10255         s << '}';
10256         return s;
10257 }
10258
10259 std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
10260 {
10261         s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
10262         s << "\tsType = " << value.sType << '\n';
10263         s << "\tpNext = " << value.pNext << '\n';
10264         s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
10265         s << '}';
10266         return s;
10267 }
10268
10269 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
10270 {
10271         s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
10272         s << "\tsType = " << value.sType << '\n';
10273         s << "\tpNext = " << value.pNext << '\n';
10274         s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
10275         s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
10276         s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
10277         s << '}';
10278         return s;
10279 }
10280
10281 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
10282 {
10283         s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
10284         s << "\tsType = " << value.sType << '\n';
10285         s << "\tpNext = " << value.pNext << '\n';
10286         s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
10287         s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
10288         s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
10289         s << '}';
10290         return s;
10291 }
10292
10293 std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
10294 {
10295         s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
10296         s << "\tsType = " << value.sType << '\n';
10297         s << "\tpNext = " << value.pNext << '\n';
10298         s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
10299         s << '}';
10300         return s;
10301 }
10302
10303 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& value)
10304 {
10305         s << "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT = {\n";
10306         s << "\tsType = " << value.sType << '\n';
10307         s << "\tpNext = " << value.pNext << '\n';
10308         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
10309         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
10310         s << '}';
10311         return s;
10312 }
10313
10314 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& value)
10315 {
10316         s << "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT = {\n";
10317         s << "\tsType = " << value.sType << '\n';
10318         s << "\tpNext = " << value.pNext << '\n';
10319         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
10320         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
10321         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
10322         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
10323         s << '}';
10324         return s;
10325 }
10326
10327 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& value)
10328 {
10329         s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = {\n";
10330         s << "\tsType = " << value.sType << '\n';
10331         s << "\tpNext = " << value.pNext << '\n';
10332         s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
10333         s << '}';
10334         return s;
10335 }
10336
10337 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
10338 {
10339         s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
10340         s << "\tsType = " << value.sType << '\n';
10341         s << "\tpNext = " << value.pNext << '\n';
10342         s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
10343         s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
10344         s << '}';
10345         return s;
10346 }
10347
10348 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
10349 {
10350         s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
10351         s << "\tsType = " << value.sType << '\n';
10352         s << "\tpNext = " << value.pNext << '\n';
10353         s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
10354         s << '}';
10355         return s;
10356 }
10357
10358 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
10359 {
10360         s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
10361         s << "\tsType = " << value.sType << '\n';
10362         s << "\tpNext = " << value.pNext << '\n';
10363         s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
10364         s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
10365         s << '}';
10366         return s;
10367 }
10368
10369 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
10370 {
10371         s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
10372         s << "\tsType = " << value.sType << '\n';
10373         s << "\tpNext = " << value.pNext << '\n';
10374         s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
10375         s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
10376         s << '}';
10377         return s;
10378 }
10379
10380 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
10381 {
10382         s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
10383         s << "\tsType = " << value.sType << '\n';
10384         s << "\tpNext = " << value.pNext << '\n';
10385         s << "\tmemoryPriority = " << value.memoryPriority << '\n';
10386         s << '}';
10387         return s;
10388 }
10389
10390 std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
10391 {
10392         s << "VkMemoryPriorityAllocateInfoEXT = {\n";
10393         s << "\tsType = " << value.sType << '\n';
10394         s << "\tpNext = " << value.pNext << '\n';
10395         s << "\tpriority = " << value.priority << '\n';
10396         s << '}';
10397         return s;
10398 }
10399
10400 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
10401 {
10402         s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
10403         s << "\tsType = " << value.sType << '\n';
10404         s << "\tpNext = " << value.pNext << '\n';
10405         s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
10406         s << '}';
10407         return s;
10408 }
10409
10410 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
10411 {
10412         s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
10413         s << "\tsType = " << value.sType << '\n';
10414         s << "\tpNext = " << value.pNext << '\n';
10415         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
10416         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
10417         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
10418         s << '}';
10419         return s;
10420 }
10421
10422 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
10423 {
10424         s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
10425         s << "\tsType = " << value.sType << '\n';
10426         s << "\tpNext = " << value.pNext << '\n';
10427         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
10428         s << '}';
10429         return s;
10430 }
10431
10432 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolPropertiesEXT& value)
10433 {
10434         s << "VkPhysicalDeviceToolPropertiesEXT = {\n";
10435         s << "\tsType = " << value.sType << '\n';
10436         s << "\tpNext = " << value.pNext << '\n';
10437         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
10438         s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
10439         s << "\tpurposes = " << getToolPurposeFlagsEXTStr(value.purposes) << '\n';
10440         s << "\tdescription = " << (const char*)value.description << '\n';
10441         s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
10442         s << '}';
10443         return s;
10444 }
10445
10446 std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
10447 {
10448         s << "VkValidationFeaturesEXT = {\n";
10449         s << "\tsType = " << value.sType << '\n';
10450         s << "\tpNext = " << value.pNext << '\n';
10451         s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
10452         s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
10453         s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
10454         s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
10455         s << '}';
10456         return s;
10457 }
10458
10459 std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
10460 {
10461         s << "VkCooperativeMatrixPropertiesNV = {\n";
10462         s << "\tsType = " << value.sType << '\n';
10463         s << "\tpNext = " << value.pNext << '\n';
10464         s << "\tMSize = " << value.MSize << '\n';
10465         s << "\tNSize = " << value.NSize << '\n';
10466         s << "\tKSize = " << value.KSize << '\n';
10467         s << "\tAType = " << value.AType << '\n';
10468         s << "\tBType = " << value.BType << '\n';
10469         s << "\tCType = " << value.CType << '\n';
10470         s << "\tDType = " << value.DType << '\n';
10471         s << "\tscope = " << value.scope << '\n';
10472         s << '}';
10473         return s;
10474 }
10475
10476 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
10477 {
10478         s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
10479         s << "\tsType = " << value.sType << '\n';
10480         s << "\tpNext = " << value.pNext << '\n';
10481         s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
10482         s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
10483         s << '}';
10484         return s;
10485 }
10486
10487 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
10488 {
10489         s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
10490         s << "\tsType = " << value.sType << '\n';
10491         s << "\tpNext = " << value.pNext << '\n';
10492         s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
10493         s << '}';
10494         return s;
10495 }
10496
10497 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
10498 {
10499         s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
10500         s << "\tsType = " << value.sType << '\n';
10501         s << "\tpNext = " << value.pNext << '\n';
10502         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10503         s << '}';
10504         return s;
10505 }
10506
10507 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
10508 {
10509         s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
10510         s << "\tsType = " << value.sType << '\n';
10511         s << "\tpNext = " << value.pNext << '\n';
10512         s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
10513         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10514         s << '}';
10515         return s;
10516 }
10517
10518 std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
10519 {
10520         s << "VkFramebufferMixedSamplesCombinationNV = {\n";
10521         s << "\tsType = " << value.sType << '\n';
10522         s << "\tpNext = " << value.pNext << '\n';
10523         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
10524         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
10525         s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
10526         s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
10527         s << '}';
10528         return s;
10529 }
10530
10531 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
10532 {
10533         s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
10534         s << "\tsType = " << value.sType << '\n';
10535         s << "\tpNext = " << value.pNext << '\n';
10536         s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
10537         s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
10538         s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
10539         s << '}';
10540         return s;
10541 }
10542
10543 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
10544 {
10545         s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
10546         s << "\tsType = " << value.sType << '\n';
10547         s << "\tpNext = " << value.pNext << '\n';
10548         s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
10549         s << '}';
10550         return s;
10551 }
10552
10553 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
10554 {
10555         s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
10556         s << "\tsType = " << value.sType << '\n';
10557         s << "\tpNext = " << value.pNext << '\n';
10558         s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
10559         s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
10560         s << '}';
10561         return s;
10562 }
10563
10564 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
10565 {
10566         s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
10567         s << "\tsType = " << value.sType << '\n';
10568         s << "\tpNext = " << value.pNext << '\n';
10569         s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
10570         s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
10571         s << '}';
10572         return s;
10573 }
10574
10575 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
10576 {
10577         s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
10578         s << "\tsType = " << value.sType << '\n';
10579         s << "\tpNext = " << value.pNext << '\n';
10580         s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
10581         s << '}';
10582         return s;
10583 }
10584
10585 std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
10586 {
10587         s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
10588         s << "\tsType = " << value.sType << '\n';
10589         s << "\tpNext = " << value.pNext << '\n';
10590         s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
10591         s << '}';
10592         return s;
10593 }
10594
10595 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
10596 {
10597         s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
10598         s << "\tsType = " << value.sType << '\n';
10599         s << "\tpNext = " << value.pNext << '\n';
10600         s << "\trectangularLines = " << value.rectangularLines << '\n';
10601         s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
10602         s << "\tsmoothLines = " << value.smoothLines << '\n';
10603         s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
10604         s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
10605         s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
10606         s << '}';
10607         return s;
10608 }
10609
10610 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
10611 {
10612         s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
10613         s << "\tsType = " << value.sType << '\n';
10614         s << "\tpNext = " << value.pNext << '\n';
10615         s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
10616         s << '}';
10617         return s;
10618 }
10619
10620 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
10621 {
10622         s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
10623         s << "\tsType = " << value.sType << '\n';
10624         s << "\tpNext = " << value.pNext << '\n';
10625         s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
10626         s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
10627         s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
10628         s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
10629         s << '}';
10630         return s;
10631 }
10632
10633 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
10634 {
10635         s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
10636         s << "\tsType = " << value.sType << '\n';
10637         s << "\tpNext = " << value.pNext << '\n';
10638         s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
10639         s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
10640         s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
10641         s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
10642         s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
10643         s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
10644         s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
10645         s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
10646         s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
10647         s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
10648         s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
10649         s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
10650         s << '}';
10651         return s;
10652 }
10653
10654 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
10655 {
10656         s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
10657         s << "\tsType = " << value.sType << '\n';
10658         s << "\tpNext = " << value.pNext << '\n';
10659         s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
10660         s << '}';
10661         return s;
10662 }
10663
10664 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
10665 {
10666         s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
10667         s << "\tsType = " << value.sType << '\n';
10668         s << "\tpNext = " << value.pNext << '\n';
10669         s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
10670         s << '}';
10671         return s;
10672 }
10673
10674 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
10675 {
10676         s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
10677         s << "\tsType = " << value.sType << '\n';
10678         s << "\tpNext = " << value.pNext << '\n';
10679         s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
10680         s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
10681         s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
10682         s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
10683         s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
10684         s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
10685         s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
10686         s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
10687         s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
10688         s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
10689         s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
10690         s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
10691         s << '}';
10692         return s;
10693 }
10694
10695 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& value)
10696 {
10697         s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = {\n";
10698         s << "\tsType = " << value.sType << '\n';
10699         s << "\tpNext = " << value.pNext << '\n';
10700         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
10701         s << '}';
10702         return s;
10703 }
10704
10705 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
10706 {
10707         s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
10708         s << "\tsType = " << value.sType << '\n';
10709         s << "\tpNext = " << value.pNext << '\n';
10710         s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
10711         s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
10712         s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
10713         s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
10714         s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
10715         s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
10716         s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
10717         s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
10718         s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
10719         s << '}';
10720         return s;
10721 }
10722
10723 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
10724 {
10725         s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
10726         s << "\tsType = " << value.sType << '\n';
10727         s << "\tpNext = " << value.pNext << '\n';
10728         s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
10729         s << '}';
10730         return s;
10731 }
10732
10733 std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
10734 {
10735         s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
10736         s << "\tsType = " << value.sType << '\n';
10737         s << "\tpNext = " << value.pNext << '\n';
10738         s << "\tstageCount = " << value.stageCount << '\n';
10739         s << "\tpStages = " << value.pStages << '\n';
10740         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
10741         s << "\tpTessellationState = " << value.pTessellationState << '\n';
10742         s << '}';
10743         return s;
10744 }
10745
10746 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
10747 {
10748         s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
10749         s << "\tsType = " << value.sType << '\n';
10750         s << "\tpNext = " << value.pNext << '\n';
10751         s << "\tgroupCount = " << value.groupCount << '\n';
10752         s << "\tpGroups = " << value.pGroups << '\n';
10753         s << "\tpipelineCount = " << value.pipelineCount << '\n';
10754         s << "\tpPipelines = " << value.pPipelines << '\n';
10755         s << '}';
10756         return s;
10757 }
10758
10759 std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
10760 {
10761         s << "VkBindShaderGroupIndirectCommandNV = {\n";
10762         s << "\tgroupIndex = " << value.groupIndex << '\n';
10763         s << '}';
10764         return s;
10765 }
10766
10767 std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
10768 {
10769         s << "VkBindIndexBufferIndirectCommandNV = {\n";
10770         s << "\tbufferAddress = " << value.bufferAddress << '\n';
10771         s << "\tsize = " << value.size << '\n';
10772         s << "\tindexType = " << value.indexType << '\n';
10773         s << '}';
10774         return s;
10775 }
10776
10777 std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
10778 {
10779         s << "VkBindVertexBufferIndirectCommandNV = {\n";
10780         s << "\tbufferAddress = " << value.bufferAddress << '\n';
10781         s << "\tsize = " << value.size << '\n';
10782         s << "\tstride = " << value.stride << '\n';
10783         s << '}';
10784         return s;
10785 }
10786
10787 std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
10788 {
10789         s << "VkSetStateFlagsIndirectCommandNV = {\n";
10790         s << "\tdata = " << value.data << '\n';
10791         s << '}';
10792         return s;
10793 }
10794
10795 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
10796 {
10797         s << "VkIndirectCommandsStreamNV = {\n";
10798         s << "\tbuffer = " << value.buffer << '\n';
10799         s << "\toffset = " << value.offset << '\n';
10800         s << '}';
10801         return s;
10802 }
10803
10804 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
10805 {
10806         s << "VkIndirectCommandsLayoutTokenNV = {\n";
10807         s << "\tsType = " << value.sType << '\n';
10808         s << "\tpNext = " << value.pNext << '\n';
10809         s << "\ttokenType = " << value.tokenType << '\n';
10810         s << "\tstream = " << value.stream << '\n';
10811         s << "\toffset = " << value.offset << '\n';
10812         s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
10813         s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
10814         s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
10815         s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
10816         s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
10817         s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
10818         s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
10819         s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
10820         s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
10821         s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
10822         s << '}';
10823         return s;
10824 }
10825
10826 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
10827 {
10828         s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
10829         s << "\tsType = " << value.sType << '\n';
10830         s << "\tpNext = " << value.pNext << '\n';
10831         s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
10832         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10833         s << "\ttokenCount = " << value.tokenCount << '\n';
10834         s << "\tpTokens = " << value.pTokens << '\n';
10835         s << "\tstreamCount = " << value.streamCount << '\n';
10836         s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
10837         s << '}';
10838         return s;
10839 }
10840
10841 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
10842 {
10843         s << "VkGeneratedCommandsInfoNV = {\n";
10844         s << "\tsType = " << value.sType << '\n';
10845         s << "\tpNext = " << value.pNext << '\n';
10846         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10847         s << "\tpipeline = " << value.pipeline << '\n';
10848         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
10849         s << "\tstreamCount = " << value.streamCount << '\n';
10850         s << "\tpStreams = " << value.pStreams << '\n';
10851         s << "\tsequencesCount = " << value.sequencesCount << '\n';
10852         s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
10853         s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
10854         s << "\tpreprocessSize = " << value.preprocessSize << '\n';
10855         s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
10856         s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
10857         s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
10858         s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
10859         s << '}';
10860         return s;
10861 }
10862
10863 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
10864 {
10865         s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
10866         s << "\tsType = " << value.sType << '\n';
10867         s << "\tpNext = " << value.pNext << '\n';
10868         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
10869         s << "\tpipeline = " << value.pipeline << '\n';
10870         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
10871         s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
10872         s << '}';
10873         return s;
10874 }
10875
10876 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
10877 {
10878         s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
10879         s << "\tsType = " << value.sType << '\n';
10880         s << "\tpNext = " << value.pNext << '\n';
10881         s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
10882         s << '}';
10883         return s;
10884 }
10885
10886 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
10887 {
10888         s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
10889         s << "\tsType = " << value.sType << '\n';
10890         s << "\tpNext = " << value.pNext << '\n';
10891         s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
10892         s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
10893         s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
10894         s << '}';
10895         return s;
10896 }
10897
10898 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
10899 {
10900         s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
10901         s << "\tsType = " << value.sType << '\n';
10902         s << "\tpNext = " << value.pNext << '\n';
10903         s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
10904         s << '}';
10905         return s;
10906 }
10907
10908 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT& value)
10909 {
10910         s << "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT = {\n";
10911         s << "\tsType = " << value.sType << '\n';
10912         s << "\tpNext = " << value.pNext << '\n';
10913         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
10914         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
10915         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
10916         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
10917         s << '}';
10918         return s;
10919 }
10920
10921 std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
10922 {
10923         s << "VkRenderPassTransformBeginInfoQCOM = {\n";
10924         s << "\tsType = " << value.sType << '\n';
10925         s << "\tpNext = " << value.pNext << '\n';
10926         s << "\ttransform = " << value.transform << '\n';
10927         s << '}';
10928         return s;
10929 }
10930
10931 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
10932 {
10933         s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
10934         s << "\tsType = " << value.sType << '\n';
10935         s << "\tpNext = " << value.pNext << '\n';
10936         s << "\ttransform = " << value.transform << '\n';
10937         s << "\trenderArea = " << value.renderArea << '\n';
10938         s << '}';
10939         return s;
10940 }
10941
10942 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
10943 {
10944         s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
10945         s << "\tsType = " << value.sType << '\n';
10946         s << "\tpNext = " << value.pNext << '\n';
10947         s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
10948         s << '}';
10949         return s;
10950 }
10951
10952 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
10953 {
10954         s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
10955         s << "\tsType = " << value.sType << '\n';
10956         s << "\tpNext = " << value.pNext << '\n';
10957         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10958         s << "\ttype = " << value.type << '\n';
10959         s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
10960         s << "\tsize = " << value.size << '\n';
10961         s << "\tobjectType = " << value.objectType << '\n';
10962         s << "\tobjectHandle = " << value.objectHandle << '\n';
10963         s << "\theapIndex = " << value.heapIndex << '\n';
10964         s << '}';
10965         return s;
10966 }
10967
10968 std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
10969 {
10970         s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
10971         s << "\tsType = " << value.sType << '\n';
10972         s << "\tpNext = " << value.pNext << '\n';
10973         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
10974         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10975         s << "\tpUserData = " << value.pUserData << '\n';
10976         s << '}';
10977         return s;
10978 }
10979
10980 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
10981 {
10982         s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
10983         s << "\tsType = " << value.sType << '\n';
10984         s << "\tpNext = " << value.pNext << '\n';
10985         s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
10986         s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
10987         s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
10988         s << '}';
10989         return s;
10990 }
10991
10992 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
10993 {
10994         s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
10995         s << "\tsType = " << value.sType << '\n';
10996         s << "\tpNext = " << value.pNext << '\n';
10997         s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
10998         s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
10999         s << '}';
11000         return s;
11001 }
11002
11003 std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
11004 {
11005         s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
11006         s << "\tsType = " << value.sType << '\n';
11007         s << "\tpNext = " << value.pNext << '\n';
11008         s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
11009         s << "\tformat = " << value.format << '\n';
11010         s << '}';
11011         return s;
11012 }
11013
11014 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
11015 {
11016         s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
11017         s << "\tsType = " << value.sType << '\n';
11018         s << "\tpNext = " << value.pNext << '\n';
11019         s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
11020         s << '}';
11021         return s;
11022 }
11023
11024 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
11025 {
11026         s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
11027         s << "\tsType = " << value.sType << '\n';
11028         s << "\tpNext = " << value.pNext << '\n';
11029         s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
11030         s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
11031         s << '}';
11032         return s;
11033 }
11034
11035 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeaturesEXT& value)
11036 {
11037         s << "VkPhysicalDevicePrivateDataFeaturesEXT = {\n";
11038         s << "\tsType = " << value.sType << '\n';
11039         s << "\tpNext = " << value.pNext << '\n';
11040         s << "\tprivateData = " << value.privateData << '\n';
11041         s << '}';
11042         return s;
11043 }
11044
11045 std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfoEXT& value)
11046 {
11047         s << "VkDevicePrivateDataCreateInfoEXT = {\n";
11048         s << "\tsType = " << value.sType << '\n';
11049         s << "\tpNext = " << value.pNext << '\n';
11050         s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
11051         s << '}';
11052         return s;
11053 }
11054
11055 std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfoEXT& value)
11056 {
11057         s << "VkPrivateDataSlotCreateInfoEXT = {\n";
11058         s << "\tsType = " << value.sType << '\n';
11059         s << "\tpNext = " << value.pNext << '\n';
11060         s << "\tflags = " << getPrivateDataSlotCreateFlagsEXTStr(value.flags) << '\n';
11061         s << '}';
11062         return s;
11063 }
11064
11065 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT& value)
11066 {
11067         s << "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = {\n";
11068         s << "\tsType = " << value.sType << '\n';
11069         s << "\tpNext = " << value.pNext << '\n';
11070         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
11071         s << '}';
11072         return s;
11073 }
11074
11075 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
11076 {
11077         s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
11078         s << "\tsType = " << value.sType << '\n';
11079         s << "\tpNext = " << value.pNext << '\n';
11080         s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
11081         s << '}';
11082         return s;
11083 }
11084
11085 std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
11086 {
11087         s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
11088         s << "\tsType = " << value.sType << '\n';
11089         s << "\tpNext = " << value.pNext << '\n';
11090         s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
11091         s << '}';
11092         return s;
11093 }
11094
11095 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
11096 {
11097         s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
11098         s << "\tsType = " << value.sType << '\n';
11099         s << "\tpNext = " << value.pNext << '\n';
11100         s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
11101         s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
11102         s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
11103         s << '}';
11104         return s;
11105 }
11106
11107 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
11108 {
11109         s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
11110         s << "\tsType = " << value.sType << '\n';
11111         s << "\tpNext = " << value.pNext << '\n';
11112         s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
11113         s << '}';
11114         return s;
11115 }
11116
11117 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
11118 {
11119         s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
11120         s << "\tsType = " << value.sType << '\n';
11121         s << "\tpNext = " << value.pNext << '\n';
11122         s << "\tshadingRateType = " << value.shadingRateType << '\n';
11123         s << "\tshadingRate = " << value.shadingRate << '\n';
11124         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
11125         s << '}';
11126         return s;
11127 }
11128
11129 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
11130 {
11131         s << "VkDeviceOrHostAddressConstKHR = {\n";
11132         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11133         s << "\thostAddress = " << value.hostAddress << '\n';
11134         s << '}';
11135         return s;
11136 }
11137
11138 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
11139 {
11140         s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
11141         s << "\tsType = " << value.sType << '\n';
11142         s << "\tpNext = " << value.pNext << '\n';
11143         s << "\tvertexData = " << value.vertexData << '\n';
11144         s << '}';
11145         return s;
11146 }
11147
11148 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
11149 {
11150         s << "VkAccelerationStructureMotionInfoNV = {\n";
11151         s << "\tsType = " << value.sType << '\n';
11152         s << "\tpNext = " << value.pNext << '\n';
11153         s << "\tmaxInstances = " << value.maxInstances << '\n';
11154         s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
11155         s << '}';
11156         return s;
11157 }
11158
11159 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
11160 {
11161         s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
11162         s << "\ttransformT0 = " << value.transformT0 << '\n';
11163         s << "\ttransformT1 = " << value.transformT1 << '\n';
11164         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
11165         s << "\tmask = " << value.mask << '\n';
11166         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
11167         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
11168         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
11169         s << '}';
11170         return s;
11171 }
11172
11173 std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
11174 {
11175         s << "VkSRTDataNV = {\n";
11176         s << "\tsx = " << value.sx << '\n';
11177         s << "\ta = " << value.a << '\n';
11178         s << "\tb = " << value.b << '\n';
11179         s << "\tpvx = " << value.pvx << '\n';
11180         s << "\tsy = " << value.sy << '\n';
11181         s << "\tc = " << value.c << '\n';
11182         s << "\tpvy = " << value.pvy << '\n';
11183         s << "\tsz = " << value.sz << '\n';
11184         s << "\tpvz = " << value.pvz << '\n';
11185         s << "\tqx = " << value.qx << '\n';
11186         s << "\tqy = " << value.qy << '\n';
11187         s << "\tqz = " << value.qz << '\n';
11188         s << "\tqw = " << value.qw << '\n';
11189         s << "\ttx = " << value.tx << '\n';
11190         s << "\tty = " << value.ty << '\n';
11191         s << "\ttz = " << value.tz << '\n';
11192         s << '}';
11193         return s;
11194 }
11195
11196 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
11197 {
11198         s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
11199         s << "\ttransformT0 = " << value.transformT0 << '\n';
11200         s << "\ttransformT1 = " << value.transformT1 << '\n';
11201         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
11202         s << "\tmask = " << value.mask << '\n';
11203         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
11204         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
11205         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
11206         s << '}';
11207         return s;
11208 }
11209
11210 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
11211 {
11212         s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
11213         s << "\tstaticInstance = " << value.staticInstance << '\n';
11214         s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
11215         s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
11216         s << '}';
11217         return s;
11218 }
11219
11220 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
11221 {
11222         s << "VkAccelerationStructureMotionInstanceNV = {\n";
11223         s << "\ttype = " << value.type << '\n';
11224         s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
11225         s << "\tdata = " << value.data << '\n';
11226         s << '}';
11227         return s;
11228 }
11229
11230 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
11231 {
11232         s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
11233         s << "\tsType = " << value.sType << '\n';
11234         s << "\tpNext = " << value.pNext << '\n';
11235         s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
11236         s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
11237         s << '}';
11238         return s;
11239 }
11240
11241 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
11242 {
11243         s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
11244         s << "\tsType = " << value.sType << '\n';
11245         s << "\tpNext = " << value.pNext << '\n';
11246         s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
11247         s << '}';
11248         return s;
11249 }
11250
11251 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
11252 {
11253         s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
11254         s << "\tsType = " << value.sType << '\n';
11255         s << "\tpNext = " << value.pNext << '\n';
11256         s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
11257         s << '}';
11258         return s;
11259 }
11260
11261 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
11262 {
11263         s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
11264         s << "\tsType = " << value.sType << '\n';
11265         s << "\tpNext = " << value.pNext << '\n';
11266         s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
11267         s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
11268         s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
11269         s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
11270         s << '}';
11271         return s;
11272 }
11273
11274 std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
11275 {
11276         s << "VkCopyCommandTransformInfoQCOM = {\n";
11277         s << "\tsType = " << value.sType << '\n';
11278         s << "\tpNext = " << value.pNext << '\n';
11279         s << "\ttransform = " << value.transform << '\n';
11280         s << '}';
11281         return s;
11282 }
11283
11284 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeaturesEXT& value)
11285 {
11286         s << "VkPhysicalDeviceImageRobustnessFeaturesEXT = {\n";
11287         s << "\tsType = " << value.sType << '\n';
11288         s << "\tpNext = " << value.pNext << '\n';
11289         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
11290         s << '}';
11291         return s;
11292 }
11293
11294 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
11295 {
11296         s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
11297         s << "\tsType = " << value.sType << '\n';
11298         s << "\tpNext = " << value.pNext << '\n';
11299         s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
11300         s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
11301         s << '}';
11302         return s;
11303 }
11304
11305 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
11306 {
11307         s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
11308         s << "\tsType = " << value.sType << '\n';
11309         s << "\tpNext = " << value.pNext << '\n';
11310         s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
11311         s << '}';
11312         return s;
11313 }
11314
11315 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
11316 {
11317         s << "VkMutableDescriptorTypeListVALVE = {\n";
11318         s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
11319         s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
11320         s << '}';
11321         return s;
11322 }
11323
11324 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
11325 {
11326         s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
11327         s << "\tsType = " << value.sType << '\n';
11328         s << "\tpNext = " << value.pNext << '\n';
11329         s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
11330         s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
11331         s << '}';
11332         return s;
11333 }
11334
11335 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
11336 {
11337         s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
11338         s << "\tsType = " << value.sType << '\n';
11339         s << "\tpNext = " << value.pNext << '\n';
11340         s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
11341         s << '}';
11342         return s;
11343 }
11344
11345 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
11346 {
11347         s << "VkVertexInputBindingDescription2EXT = {\n";
11348         s << "\tsType = " << value.sType << '\n';
11349         s << "\tpNext = " << value.pNext << '\n';
11350         s << "\tbinding = " << value.binding << '\n';
11351         s << "\tstride = " << value.stride << '\n';
11352         s << "\tinputRate = " << value.inputRate << '\n';
11353         s << "\tdivisor = " << value.divisor << '\n';
11354         s << '}';
11355         return s;
11356 }
11357
11358 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
11359 {
11360         s << "VkVertexInputAttributeDescription2EXT = {\n";
11361         s << "\tsType = " << value.sType << '\n';
11362         s << "\tpNext = " << value.pNext << '\n';
11363         s << "\tlocation = " << value.location << '\n';
11364         s << "\tbinding = " << value.binding << '\n';
11365         s << "\tformat = " << value.format << '\n';
11366         s << "\toffset = " << value.offset << '\n';
11367         s << '}';
11368         return s;
11369 }
11370
11371 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
11372 {
11373         s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
11374         s << "\tsType = " << value.sType << '\n';
11375         s << "\tpNext = " << value.pNext << '\n';
11376         s << "\thasPrimary = " << value.hasPrimary << '\n';
11377         s << "\thasRender = " << value.hasRender << '\n';
11378         s << "\tprimaryMajor = " << value.primaryMajor << '\n';
11379         s << "\tprimaryMinor = " << value.primaryMinor << '\n';
11380         s << "\trenderMajor = " << value.renderMajor << '\n';
11381         s << "\trenderMinor = " << value.renderMinor << '\n';
11382         s << '}';
11383         return s;
11384 }
11385
11386 std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
11387 {
11388         s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
11389         s << "\tsType = " << value.sType << '\n';
11390         s << "\tpNext = " << value.pNext << '\n';
11391         s << "\trenderPass = " << value.renderPass << '\n';
11392         s << "\tsubpass = " << value.subpass << '\n';
11393         s << '}';
11394         return s;
11395 }
11396
11397 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
11398 {
11399         s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
11400         s << "\tsType = " << value.sType << '\n';
11401         s << "\tpNext = " << value.pNext << '\n';
11402         s << "\tsubpassShading = " << value.subpassShading << '\n';
11403         s << '}';
11404         return s;
11405 }
11406
11407 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
11408 {
11409         s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
11410         s << "\tsType = " << value.sType << '\n';
11411         s << "\tpNext = " << value.pNext << '\n';
11412         s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
11413         s << '}';
11414         return s;
11415 }
11416
11417 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
11418 {
11419         s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
11420         s << "\tsType = " << value.sType << '\n';
11421         s << "\tpNext = " << value.pNext << '\n';
11422         s << "\tinvocationMask = " << value.invocationMask << '\n';
11423         s << '}';
11424         return s;
11425 }
11426
11427 std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
11428 {
11429         s << "VkMemoryGetRemoteAddressInfoNV = {\n";
11430         s << "\tsType = " << value.sType << '\n';
11431         s << "\tpNext = " << value.pNext << '\n';
11432         s << "\tmemory = " << value.memory << '\n';
11433         s << "\thandleType = " << value.handleType << '\n';
11434         s << '}';
11435         return s;
11436 }
11437
11438 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
11439 {
11440         s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
11441         s << "\tsType = " << value.sType << '\n';
11442         s << "\tpNext = " << value.pNext << '\n';
11443         s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
11444         s << '}';
11445         return s;
11446 }
11447
11448 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
11449 {
11450         s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
11451         s << "\tsType = " << value.sType << '\n';
11452         s << "\tpNext = " << value.pNext << '\n';
11453         s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
11454         s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
11455         s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
11456         s << '}';
11457         return s;
11458 }
11459
11460 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
11461 {
11462         s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
11463         s << "\tsType = " << value.sType << '\n';
11464         s << "\tpNext = " << value.pNext << '\n';
11465         s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
11466         s << '}';
11467         return s;
11468 }
11469
11470 std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
11471 {
11472         s << "VkPipelineColorWriteCreateInfoEXT = {\n";
11473         s << "\tsType = " << value.sType << '\n';
11474         s << "\tpNext = " << value.pNext << '\n';
11475         s << "\tattachmentCount = " << value.attachmentCount << '\n';
11476         s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
11477         s << '}';
11478         return s;
11479 }
11480
11481 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT& value)
11482 {
11483         s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT = {\n";
11484         s << "\tsType = " << value.sType << '\n';
11485         s << "\tpNext = " << value.pNext << '\n';
11486         s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
11487         s << '}';
11488         return s;
11489 }
11490
11491 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesEXT& value)
11492 {
11493         s << "VkQueueFamilyGlobalPriorityPropertiesEXT = {\n";
11494         s << "\tsType = " << value.sType << '\n';
11495         s << "\tpNext = " << value.pNext << '\n';
11496         s << "\tpriorityCount = " << value.priorityCount << '\n';
11497         s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
11498         s << '}';
11499         return s;
11500 }
11501
11502 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
11503 {
11504         s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
11505         s << "\tsType = " << value.sType << '\n';
11506         s << "\tpNext = " << value.pNext << '\n';
11507         s << "\tmultiDraw = " << value.multiDraw << '\n';
11508         s << '}';
11509         return s;
11510 }
11511
11512 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
11513 {
11514         s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
11515         s << "\tsType = " << value.sType << '\n';
11516         s << "\tpNext = " << value.pNext << '\n';
11517         s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
11518         s << '}';
11519         return s;
11520 }
11521
11522 std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
11523 {
11524         s << "VkMultiDrawInfoEXT = {\n";
11525         s << "\tfirstVertex = " << value.firstVertex << '\n';
11526         s << "\tvertexCount = " << value.vertexCount << '\n';
11527         s << '}';
11528         return s;
11529 }
11530
11531 std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
11532 {
11533         s << "VkMultiDrawIndexedInfoEXT = {\n";
11534         s << "\tfirstIndex = " << value.firstIndex << '\n';
11535         s << "\tindexCount = " << value.indexCount << '\n';
11536         s << "\tvertexOffset = " << value.vertexOffset << '\n';
11537         s << '}';
11538         return s;
11539 }
11540
11541 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
11542 {
11543         s << "VkDeviceOrHostAddressKHR = {\n";
11544         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11545         s << "\thostAddress = " << value.hostAddress << '\n';
11546         s << '}';
11547         return s;
11548 }
11549
11550 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
11551 {
11552         s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
11553         s << "\tprimitiveCount = " << value.primitiveCount << '\n';
11554         s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
11555         s << "\tfirstVertex = " << value.firstVertex << '\n';
11556         s << "\ttransformOffset = " << value.transformOffset << '\n';
11557         s << '}';
11558         return s;
11559 }
11560
11561 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
11562 {
11563         s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
11564         s << "\tsType = " << value.sType << '\n';
11565         s << "\tpNext = " << value.pNext << '\n';
11566         s << "\tvertexFormat = " << value.vertexFormat << '\n';
11567         s << "\tvertexData = " << value.vertexData << '\n';
11568         s << "\tvertexStride = " << value.vertexStride << '\n';
11569         s << "\tmaxVertex = " << value.maxVertex << '\n';
11570         s << "\tindexType = " << value.indexType << '\n';
11571         s << "\tindexData = " << value.indexData << '\n';
11572         s << "\ttransformData = " << value.transformData << '\n';
11573         s << '}';
11574         return s;
11575 }
11576
11577 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
11578 {
11579         s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
11580         s << "\tsType = " << value.sType << '\n';
11581         s << "\tpNext = " << value.pNext << '\n';
11582         s << "\tdata = " << value.data << '\n';
11583         s << "\tstride = " << value.stride << '\n';
11584         s << '}';
11585         return s;
11586 }
11587
11588 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
11589 {
11590         s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
11591         s << "\tsType = " << value.sType << '\n';
11592         s << "\tpNext = " << value.pNext << '\n';
11593         s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
11594         s << "\tdata = " << value.data << '\n';
11595         s << '}';
11596         return s;
11597 }
11598
11599 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
11600 {
11601         s << "VkAccelerationStructureGeometryDataKHR = {\n";
11602         s << "\ttriangles = " << value.triangles << '\n';
11603         s << "\taabbs = " << value.aabbs << '\n';
11604         s << "\tinstances = " << value.instances << '\n';
11605         s << '}';
11606         return s;
11607 }
11608
11609 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
11610 {
11611         s << "VkAccelerationStructureGeometryKHR = {\n";
11612         s << "\tsType = " << value.sType << '\n';
11613         s << "\tpNext = " << value.pNext << '\n';
11614         s << "\tgeometryType = " << value.geometryType << '\n';
11615         s << "\tgeometry = " << value.geometry << '\n';
11616         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
11617         s << '}';
11618         return s;
11619 }
11620
11621 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
11622 {
11623         s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
11624         s << "\tsType = " << value.sType << '\n';
11625         s << "\tpNext = " << value.pNext << '\n';
11626         s << "\ttype = " << value.type << '\n';
11627         s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
11628         s << "\tmode = " << value.mode << '\n';
11629         s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
11630         s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
11631         s << "\tgeometryCount = " << value.geometryCount << '\n';
11632         s << "\tpGeometries = " << value.pGeometries << '\n';
11633         s << "\tppGeometries = " << value.ppGeometries << '\n';
11634         s << "\tscratchData = " << value.scratchData << '\n';
11635         s << '}';
11636         return s;
11637 }
11638
11639 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
11640 {
11641         s << "VkAccelerationStructureCreateInfoKHR = {\n";
11642         s << "\tsType = " << value.sType << '\n';
11643         s << "\tpNext = " << value.pNext << '\n';
11644         s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
11645         s << "\tbuffer = " << value.buffer << '\n';
11646         s << "\toffset = " << value.offset << '\n';
11647         s << "\tsize = " << value.size << '\n';
11648         s << "\ttype = " << value.type << '\n';
11649         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11650         s << '}';
11651         return s;
11652 }
11653
11654 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
11655 {
11656         s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
11657         s << "\tsType = " << value.sType << '\n';
11658         s << "\tpNext = " << value.pNext << '\n';
11659         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
11660         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
11661         s << '}';
11662         return s;
11663 }
11664
11665 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
11666 {
11667         s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
11668         s << "\tsType = " << value.sType << '\n';
11669         s << "\tpNext = " << value.pNext << '\n';
11670         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11671         s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
11672         s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
11673         s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
11674         s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
11675         s << '}';
11676         return s;
11677 }
11678
11679 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
11680 {
11681         s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
11682         s << "\tsType = " << value.sType << '\n';
11683         s << "\tpNext = " << value.pNext << '\n';
11684         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
11685         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
11686         s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
11687         s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
11688         s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
11689         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
11690         s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
11691         s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
11692         s << '}';
11693         return s;
11694 }
11695
11696 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
11697 {
11698         s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
11699         s << "\tsType = " << value.sType << '\n';
11700         s << "\tpNext = " << value.pNext << '\n';
11701         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
11702         s << '}';
11703         return s;
11704 }
11705
11706 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
11707 {
11708         s << "VkAccelerationStructureVersionInfoKHR = {\n";
11709         s << "\tsType = " << value.sType << '\n';
11710         s << "\tpNext = " << value.pNext << '\n';
11711         s << "\tpVersionData = " << value.pVersionData << '\n';
11712         s << '}';
11713         return s;
11714 }
11715
11716 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
11717 {
11718         s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
11719         s << "\tsType = " << value.sType << '\n';
11720         s << "\tpNext = " << value.pNext << '\n';
11721         s << "\tsrc = " << value.src << '\n';
11722         s << "\tdst = " << value.dst << '\n';
11723         s << "\tmode = " << value.mode << '\n';
11724         s << '}';
11725         return s;
11726 }
11727
11728 std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
11729 {
11730         s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
11731         s << "\tsType = " << value.sType << '\n';
11732         s << "\tpNext = " << value.pNext << '\n';
11733         s << "\tsrc = " << value.src << '\n';
11734         s << "\tdst = " << value.dst << '\n';
11735         s << "\tmode = " << value.mode << '\n';
11736         s << '}';
11737         return s;
11738 }
11739
11740 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
11741 {
11742         s << "VkCopyAccelerationStructureInfoKHR = {\n";
11743         s << "\tsType = " << value.sType << '\n';
11744         s << "\tpNext = " << value.pNext << '\n';
11745         s << "\tsrc = " << value.src << '\n';
11746         s << "\tdst = " << value.dst << '\n';
11747         s << "\tmode = " << value.mode << '\n';
11748         s << '}';
11749         return s;
11750 }
11751
11752 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
11753 {
11754         s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
11755         s << "\tsType = " << value.sType << '\n';
11756         s << "\tpNext = " << value.pNext << '\n';
11757         s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
11758         s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
11759         s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
11760         s << '}';
11761         return s;
11762 }
11763
11764 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
11765 {
11766         s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
11767         s << "\tsType = " << value.sType << '\n';
11768         s << "\tpNext = " << value.pNext << '\n';
11769         s << "\ttype = " << value.type << '\n';
11770         s << "\tgeneralShader = " << value.generalShader << '\n';
11771         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
11772         s << "\tanyHitShader = " << value.anyHitShader << '\n';
11773         s << "\tintersectionShader = " << value.intersectionShader << '\n';
11774         s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
11775         s << '}';
11776         return s;
11777 }
11778
11779 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
11780 {
11781         s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
11782         s << "\tsType = " << value.sType << '\n';
11783         s << "\tpNext = " << value.pNext << '\n';
11784         s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
11785         s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
11786         s << '}';
11787         return s;
11788 }
11789
11790 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
11791 {
11792         s << "VkRayTracingPipelineCreateInfoKHR = {\n";
11793         s << "\tsType = " << value.sType << '\n';
11794         s << "\tpNext = " << value.pNext << '\n';
11795         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
11796         s << "\tstageCount = " << value.stageCount << '\n';
11797         s << "\tpStages = " << value.pStages << '\n';
11798         s << "\tgroupCount = " << value.groupCount << '\n';
11799         s << "\tpGroups = " << value.pGroups << '\n';
11800         s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
11801         s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
11802         s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
11803         s << "\tpDynamicState = " << value.pDynamicState << '\n';
11804         s << "\tlayout = " << value.layout << '\n';
11805         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
11806         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
11807         s << '}';
11808         return s;
11809 }
11810
11811 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
11812 {
11813         s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
11814         s << "\tsType = " << value.sType << '\n';
11815         s << "\tpNext = " << value.pNext << '\n';
11816         s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
11817         s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
11818         s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
11819         s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
11820         s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
11821         s << '}';
11822         return s;
11823 }
11824
11825 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
11826 {
11827         s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
11828         s << "\tsType = " << value.sType << '\n';
11829         s << "\tpNext = " << value.pNext << '\n';
11830         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
11831         s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
11832         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
11833         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
11834         s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
11835         s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
11836         s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
11837         s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
11838         s << '}';
11839         return s;
11840 }
11841
11842 std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
11843 {
11844         s << "VkStridedDeviceAddressRegionKHR = {\n";
11845         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11846         s << "\tstride = " << value.stride << '\n';
11847         s << "\tsize = " << value.size << '\n';
11848         s << '}';
11849         return s;
11850 }
11851
11852 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
11853 {
11854         s << "VkTraceRaysIndirectCommandKHR = {\n";
11855         s << "\twidth = " << value.width << '\n';
11856         s << "\theight = " << value.height << '\n';
11857         s << "\tdepth = " << value.depth << '\n';
11858         s << '}';
11859         return s;
11860 }
11861
11862 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
11863 {
11864         s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
11865         s << "\tsType = " << value.sType << '\n';
11866         s << "\tpNext = " << value.pNext << '\n';
11867         s << "\trayQuery = " << value.rayQuery << '\n';
11868         s << '}';
11869         return s;
11870 }
11871
11872 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
11873 {
11874         s << "VkAndroidSurfaceCreateInfoKHR = {\n";
11875         s << "\tsType = " << value.sType << '\n';
11876         s << "\tpNext = " << value.pNext << '\n';
11877         s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
11878         s << "\twindow = " << value.window << '\n';
11879         s << '}';
11880         return s;
11881 }
11882
11883 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
11884 {
11885         s << "VkAndroidHardwareBufferUsageANDROID = {\n";
11886         s << "\tsType = " << value.sType << '\n';
11887         s << "\tpNext = " << value.pNext << '\n';
11888         s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
11889         s << '}';
11890         return s;
11891 }
11892
11893 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
11894 {
11895         s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
11896         s << "\tsType = " << value.sType << '\n';
11897         s << "\tpNext = " << value.pNext << '\n';
11898         s << "\tallocationSize = " << value.allocationSize << '\n';
11899         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
11900         s << '}';
11901         return s;
11902 }
11903
11904 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
11905 {
11906         s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
11907         s << "\tsType = " << value.sType << '\n';
11908         s << "\tpNext = " << value.pNext << '\n';
11909         s << "\tformat = " << value.format << '\n';
11910         s << "\texternalFormat = " << value.externalFormat << '\n';
11911         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
11912         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
11913         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
11914         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
11915         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
11916         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
11917         s << '}';
11918         return s;
11919 }
11920
11921 std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
11922 {
11923         s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
11924         s << "\tsType = " << value.sType << '\n';
11925         s << "\tpNext = " << value.pNext << '\n';
11926         s << "\tbuffer = " << value.buffer << '\n';
11927         s << '}';
11928         return s;
11929 }
11930
11931 std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
11932 {
11933         s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
11934         s << "\tsType = " << value.sType << '\n';
11935         s << "\tpNext = " << value.pNext << '\n';
11936         s << "\tmemory = " << value.memory << '\n';
11937         s << '}';
11938         return s;
11939 }
11940
11941 std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
11942 {
11943         s << "VkExternalFormatANDROID = {\n";
11944         s << "\tsType = " << value.sType << '\n';
11945         s << "\tpNext = " << value.pNext << '\n';
11946         s << "\texternalFormat = " << value.externalFormat << '\n';
11947         s << '}';
11948         return s;
11949 }
11950
11951 std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
11952 {
11953         s << "VkVideoQueueFamilyProperties2KHR = {\n";
11954         s << "\tsType = " << value.sType << '\n';
11955         s << "\tpNext = " << value.pNext << '\n';
11956         s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
11957         s << '}';
11958         return s;
11959 }
11960
11961 std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
11962 {
11963         s << "VkVideoProfileKHR = {\n";
11964         s << "\tsType = " << value.sType << '\n';
11965         s << "\tpNext = " << value.pNext << '\n';
11966         s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
11967         s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
11968         s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
11969         s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
11970         s << '}';
11971         return s;
11972 }
11973
11974 std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
11975 {
11976         s << "VkVideoProfilesKHR = {\n";
11977         s << "\tsType = " << value.sType << '\n';
11978         s << "\tpNext = " << value.pNext << '\n';
11979         s << "\tprofileCount = " << value.profileCount << '\n';
11980         s << "\tpProfiles = " << value.pProfiles << '\n';
11981         s << '}';
11982         return s;
11983 }
11984
11985 std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
11986 {
11987         s << "VkVideoCapabilitiesKHR = {\n";
11988         s << "\tsType = " << value.sType << '\n';
11989         s << "\tpNext = " << value.pNext << '\n';
11990         s << "\tcapabilityFlags = " << getVideoCapabilitiesFlagsKHRStr(value.capabilityFlags) << '\n';
11991         s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
11992         s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
11993         s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
11994         s << "\tminExtent = " << value.minExtent << '\n';
11995         s << "\tmaxExtent = " << value.maxExtent << '\n';
11996         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
11997         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
11998         s << '}';
11999         return s;
12000 }
12001
12002 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
12003 {
12004         s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
12005         s << "\tsType = " << value.sType << '\n';
12006         s << "\tpNext = " << value.pNext << '\n';
12007         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
12008         s << "\tpVideoProfiles = " << value.pVideoProfiles << '\n';
12009         s << '}';
12010         return s;
12011 }
12012
12013 std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
12014 {
12015         s << "VkVideoFormatPropertiesKHR = {\n";
12016         s << "\tsType = " << value.sType << '\n';
12017         s << "\tpNext = " << value.pNext << '\n';
12018         s << "\tformat = " << value.format << '\n';
12019         s << '}';
12020         return s;
12021 }
12022
12023 std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
12024 {
12025         s << "VkVideoPictureResourceKHR = {\n";
12026         s << "\tsType = " << value.sType << '\n';
12027         s << "\tpNext = " << value.pNext << '\n';
12028         s << "\tcodedOffset = " << value.codedOffset << '\n';
12029         s << "\tcodedExtent = " << value.codedExtent << '\n';
12030         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
12031         s << "\timageViewBinding = " << value.imageViewBinding << '\n';
12032         s << '}';
12033         return s;
12034 }
12035
12036 std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
12037 {
12038         s << "VkVideoReferenceSlotKHR = {\n";
12039         s << "\tsType = " << value.sType << '\n';
12040         s << "\tpNext = " << value.pNext << '\n';
12041         s << "\tslotIndex = " << value.slotIndex << '\n';
12042         s << "\tpPictureResource = " << value.pPictureResource << '\n';
12043         s << '}';
12044         return s;
12045 }
12046
12047 std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
12048 {
12049         s << "VkVideoGetMemoryPropertiesKHR = {\n";
12050         s << "\tsType = " << value.sType << '\n';
12051         s << "\tpNext = " << value.pNext << '\n';
12052         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12053         s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
12054         s << '}';
12055         return s;
12056 }
12057
12058 std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
12059 {
12060         s << "VkVideoBindMemoryKHR = {\n";
12061         s << "\tsType = " << value.sType << '\n';
12062         s << "\tpNext = " << value.pNext << '\n';
12063         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
12064         s << "\tmemory = " << value.memory << '\n';
12065         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
12066         s << "\tmemorySize = " << value.memorySize << '\n';
12067         s << '}';
12068         return s;
12069 }
12070
12071 std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
12072 {
12073         s << "VkVideoSessionCreateInfoKHR = {\n";
12074         s << "\tsType = " << value.sType << '\n';
12075         s << "\tpNext = " << value.pNext << '\n';
12076         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
12077         s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
12078         s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
12079         s << "\tpictureFormat = " << value.pictureFormat << '\n';
12080         s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
12081         s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
12082         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
12083         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
12084         s << '}';
12085         return s;
12086 }
12087
12088 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
12089 {
12090         s << "VkVideoSessionParametersCreateInfoKHR = {\n";
12091         s << "\tsType = " << value.sType << '\n';
12092         s << "\tpNext = " << value.pNext << '\n';
12093         s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
12094         s << "\tvideoSession = " << value.videoSession << '\n';
12095         s << '}';
12096         return s;
12097 }
12098
12099 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
12100 {
12101         s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
12102         s << "\tsType = " << value.sType << '\n';
12103         s << "\tpNext = " << value.pNext << '\n';
12104         s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
12105         s << '}';
12106         return s;
12107 }
12108
12109 std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
12110 {
12111         s << "VkVideoBeginCodingInfoKHR = {\n";
12112         s << "\tsType = " << value.sType << '\n';
12113         s << "\tpNext = " << value.pNext << '\n';
12114         s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
12115         s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
12116         s << "\tvideoSession = " << value.videoSession << '\n';
12117         s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
12118         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12119         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12120         s << '}';
12121         return s;
12122 }
12123
12124 std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
12125 {
12126         s << "VkVideoEndCodingInfoKHR = {\n";
12127         s << "\tsType = " << value.sType << '\n';
12128         s << "\tpNext = " << value.pNext << '\n';
12129         s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
12130         s << '}';
12131         return s;
12132 }
12133
12134 std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
12135 {
12136         s << "VkVideoCodingControlInfoKHR = {\n";
12137         s << "\tsType = " << value.sType << '\n';
12138         s << "\tpNext = " << value.pNext << '\n';
12139         s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
12140         s << '}';
12141         return s;
12142 }
12143
12144 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
12145 {
12146         s << "VkVideoDecodeInfoKHR = {\n";
12147         s << "\tsType = " << value.sType << '\n';
12148         s << "\tpNext = " << value.pNext << '\n';
12149         s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
12150         s << "\tcodedOffset = " << value.codedOffset << '\n';
12151         s << "\tcodedExtent = " << value.codedExtent << '\n';
12152         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
12153         s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
12154         s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
12155         s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
12156         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
12157         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12158         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12159         s << '}';
12160         return s;
12161 }
12162
12163 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
12164 {
12165         s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
12166         s << "\tsType = " << value.sType << '\n';
12167         s << "\tpNext = " << value.pNext << '\n';
12168         s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
12169         s << "\tevents = " << value.events << '\n';
12170         s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
12171         s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
12172         s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
12173         s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
12174         s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
12175         s << "\tpointPolygons = " << value.pointPolygons << '\n';
12176         s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
12177         s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
12178         s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
12179         s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
12180         s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
12181         s << "\ttriangleFans = " << value.triangleFans << '\n';
12182         s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
12183         s << '}';
12184         return s;
12185 }
12186
12187 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
12188 {
12189         s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
12190         s << "\tsType = " << value.sType << '\n';
12191         s << "\tpNext = " << value.pNext << '\n';
12192         s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
12193         s << '}';
12194         return s;
12195 }
12196
12197 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
12198 {
12199         s << "VkVideoEncodeInfoKHR = {\n";
12200         s << "\tsType = " << value.sType << '\n';
12201         s << "\tpNext = " << value.pNext << '\n';
12202         s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
12203         s << "\tqualityLevel = " << value.qualityLevel << '\n';
12204         s << "\tcodedExtent = " << value.codedExtent << '\n';
12205         s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
12206         s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
12207         s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
12208         s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
12209         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
12210         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
12211         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
12212         s << '}';
12213         return s;
12214 }
12215
12216 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
12217 {
12218         s << "VkVideoEncodeRateControlInfoKHR = {\n";
12219         s << "\tsType = " << value.sType << '\n';
12220         s << "\tpNext = " << value.pNext << '\n';
12221         s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
12222         s << "\trateControlMode = " << value.rateControlMode << '\n';
12223         s << "\taverageBitrate = " << value.averageBitrate << '\n';
12224         s << "\tpeakToAverageBitrateRatio = " << value.peakToAverageBitrateRatio << '\n';
12225         s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
12226         s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
12227         s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
12228         s << '}';
12229         return s;
12230 }
12231
12232 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
12233 {
12234         s << "StdVideoH264SpsVuiFlags = {\n";
12235         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
12236         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
12237         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
12238         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
12239         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
12240         s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
12241         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
12242         s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
12243         s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
12244         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
12245         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
12246         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
12247         s << '}';
12248         return s;
12249 }
12250
12251 std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
12252 {
12253         s << "StdVideoH264HrdParameters = {\n";
12254         s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
12255         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
12256         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
12257         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';
12258         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';
12259         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';
12260         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
12261         s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
12262         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
12263         s << "\ttime_offset_length = " << value.time_offset_length << '\n';
12264         s << '}';
12265         return s;
12266 }
12267
12268 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
12269 {
12270         s << "StdVideoH264SequenceParameterSetVui = {\n";
12271         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
12272         s << "\tsar_width = " << value.sar_width << '\n';
12273         s << "\tsar_height = " << value.sar_height << '\n';
12274         s << "\tvideo_format = " << value.video_format << '\n';
12275         s << "\tcolor_primaries = " << value.color_primaries << '\n';
12276         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
12277         s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
12278         s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
12279         s << "\ttime_scale = " << value.time_scale << '\n';
12280         s << "\thrd_parameters = " << value.hrd_parameters << '\n';
12281         s << "\tnum_reorder_frames = " << value.num_reorder_frames << '\n';
12282         s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
12283         s << "\tflags = " << value.flags << '\n';
12284         s << '}';
12285         return s;
12286 }
12287
12288 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
12289 {
12290         s << "StdVideoH264SpsFlags = {\n";
12291         s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
12292         s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
12293         s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
12294         s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
12295         s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
12296         s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
12297         s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
12298         s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
12299         s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
12300         s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
12301         s << "\tresidual_colour_transform_flag = " << value.residual_colour_transform_flag << '\n';
12302         s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
12303         s << "\tfirst_picture_after_seek_flag = " << value.first_picture_after_seek_flag << '\n';
12304         s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
12305         s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
12306         s << "\tscaling_matrix_present_flag = " << value.scaling_matrix_present_flag << '\n';
12307         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
12308         s << '}';
12309         return s;
12310 }
12311
12312 std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
12313 {
12314         s << "StdVideoH264ScalingLists = {\n";
12315         s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
12316         s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
12317         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
12318         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
12319         s << '}';
12320         return s;
12321 }
12322
12323 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
12324 {
12325         s << "StdVideoH264SequenceParameterSet = {\n";
12326         s << "\tprofile_idc = " << value.profile_idc << '\n';
12327         s << "\tlevel_idc = " << value.level_idc << '\n';
12328         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12329         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
12330         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
12331         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
12332         s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
12333         s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
12334         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
12335         s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
12336         s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
12337         s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
12338         s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
12339         s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
12340         s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
12341         s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
12342         s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
12343         s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
12344         s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
12345         s << "\tflags = " << value.flags << '\n';
12346         s << "\toffset_for_ref_frame = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.offset_for_ref_frame), DE_ARRAY_END(value.offset_for_ref_frame)) << '\n';
12347         s << "\tpScalingLists = " << value.pScalingLists << '\n';
12348         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
12349         s << '}';
12350         return s;
12351 }
12352
12353 std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
12354 {
12355         s << "StdVideoH264PpsFlags = {\n";
12356         s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
12357         s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
12358         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
12359         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
12360         s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
12361         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
12362         s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
12363         s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
12364         s << "\tscaling_matrix_present_flag = " << value.scaling_matrix_present_flag << '\n';
12365         s << '}';
12366         return s;
12367 }
12368
12369 std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
12370 {
12371         s << "StdVideoH264PictureParameterSet = {\n";
12372         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12373         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
12374         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
12375         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
12376         s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
12377         s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
12378         s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
12379         s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
12380         s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
12381         s << "\tflags = " << value.flags << '\n';
12382         s << "\tpScalingLists = " << value.pScalingLists << '\n';
12383         s << '}';
12384         return s;
12385 }
12386
12387 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
12388 {
12389         s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
12390         s << "\tidr_flag = " << value.idr_flag << '\n';
12391         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
12392         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
12393         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
12394         s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
12395         s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
12396         s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
12397         s << '}';
12398         return s;
12399 }
12400
12401 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
12402 {
12403         s << "StdVideoEncodeH264PictureInfoFlags = {\n";
12404         s << "\tidr_flag = " << value.idr_flag << '\n';
12405         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
12406         s << "\tlong_term_reference_flag = " << value.long_term_reference_flag << '\n';
12407         s << '}';
12408         return s;
12409 }
12410
12411 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
12412 {
12413         s << "StdVideoEncodeH264RefMgmtFlags = {\n";
12414         s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
12415         s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
12416         s << '}';
12417         return s;
12418 }
12419
12420 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
12421 {
12422         s << "StdVideoEncodeH264RefListModEntry = {\n";
12423         s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
12424         s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
12425         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
12426         s << '}';
12427         return s;
12428 }
12429
12430 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
12431 {
12432         s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
12433         s << "\toperation = " << value.operation << '\n';
12434         s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
12435         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
12436         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
12437         s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
12438         s << '}';
12439         return s;
12440 }
12441
12442 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
12443 {
12444         s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
12445         s << "\tflags = " << value.flags << '\n';
12446         s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
12447         s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
12448         s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
12449         s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
12450         s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
12451         s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
12452         s << '}';
12453         return s;
12454 }
12455
12456 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
12457 {
12458         s << "StdVideoEncodeH264PictureInfo = {\n";
12459         s << "\tflags = " << value.flags << '\n';
12460         s << "\tpictureType = " << value.pictureType << '\n';
12461         s << "\tframeNum = " << value.frameNum << '\n';
12462         s << "\tpictureOrderCount = " << value.pictureOrderCount << '\n';
12463         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
12464         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
12465         s << '}';
12466         return s;
12467 }
12468
12469 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
12470 {
12471         s << "StdVideoEncodeH264SliceHeader = {\n";
12472         s << "\tflags = " << value.flags << '\n';
12473         s << "\tslice_type = " << value.slice_type << '\n';
12474         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12475         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
12476         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
12477         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
12478         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
12479         s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
12480         s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
12481         s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
12482         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
12483         s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
12484         s << '}';
12485         return s;
12486 }
12487
12488 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
12489 {
12490         s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
12491         s << "\tsType = " << value.sType << '\n';
12492         s << "\tpNext = " << value.pNext << '\n';
12493         s << "\tflags = " << getVideoEncodeH264CapabilitiesFlagsEXTStr(value.flags) << '\n';
12494         s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
12495         s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
12496         s << "\tminPictureSizeInMbs = " << value.minPictureSizeInMbs << '\n';
12497         s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
12498         s << "\tinputImageDataAlignment = " << value.inputImageDataAlignment << '\n';
12499         s << "\tmaxNumL0ReferenceForP = " << value.maxNumL0ReferenceForP << '\n';
12500         s << "\tmaxNumL0ReferenceForB = " << value.maxNumL0ReferenceForB << '\n';
12501         s << "\tmaxNumL1Reference = " << value.maxNumL1Reference << '\n';
12502         s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
12503         s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
12504         s << '}';
12505         return s;
12506 }
12507
12508 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionCreateInfoEXT& value)
12509 {
12510         s << "VkVideoEncodeH264SessionCreateInfoEXT = {\n";
12511         s << "\tsType = " << value.sType << '\n';
12512         s << "\tpNext = " << value.pNext << '\n';
12513         s << "\tflags = " << getVideoEncodeH264CreateFlagsEXTStr(value.flags) << '\n';
12514         s << "\tmaxPictureSizeInMbs = " << value.maxPictureSizeInMbs << '\n';
12515         s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
12516         s << '}';
12517         return s;
12518 }
12519
12520 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
12521 {
12522         s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
12523         s << "\tsType = " << value.sType << '\n';
12524         s << "\tpNext = " << value.pNext << '\n';
12525         s << "\tspsStdCount = " << value.spsStdCount << '\n';
12526         s << "\tpSpsStd = " << value.pSpsStd << '\n';
12527         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
12528         s << "\tpPpsStd = " << value.pPpsStd << '\n';
12529         s << '}';
12530         return s;
12531 }
12532
12533 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
12534 {
12535         s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
12536         s << "\tsType = " << value.sType << '\n';
12537         s << "\tpNext = " << value.pNext << '\n';
12538         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
12539         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
12540         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
12541         s << '}';
12542         return s;
12543 }
12544
12545 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
12546 {
12547         s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
12548         s << "\tsType = " << value.sType << '\n';
12549         s << "\tpNext = " << value.pNext << '\n';
12550         s << "\tslotIndex = " << value.slotIndex << '\n';
12551         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
12552         s << '}';
12553         return s;
12554 }
12555
12556 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
12557 {
12558         s << "VkVideoEncodeH264NaluSliceEXT = {\n";
12559         s << "\tsType = " << value.sType << '\n';
12560         s << "\tpNext = " << value.pNext << '\n';
12561         s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
12562         s << "\tmbCount = " << value.mbCount << '\n';
12563         s << "\trefFinalList0EntryCount = " << value.refFinalList0EntryCount << '\n';
12564         s << "\tpRefFinalList0Entries = " << value.pRefFinalList0Entries << '\n';
12565         s << "\trefFinalList1EntryCount = " << value.refFinalList1EntryCount << '\n';
12566         s << "\tpRefFinalList1Entries = " << value.pRefFinalList1Entries << '\n';
12567         s << "\tprecedingNaluBytes = " << value.precedingNaluBytes << '\n';
12568         s << "\tminQp = " << value.minQp << '\n';
12569         s << "\tmaxQp = " << value.maxQp << '\n';
12570         s << '}';
12571         return s;
12572 }
12573
12574 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
12575 {
12576         s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
12577         s << "\tsType = " << value.sType << '\n';
12578         s << "\tpNext = " << value.pNext << '\n';
12579         s << "\trefDefaultFinalList0EntryCount = " << value.refDefaultFinalList0EntryCount << '\n';
12580         s << "\tpRefDefaultFinalList0Entries = " << value.pRefDefaultFinalList0Entries << '\n';
12581         s << "\trefDefaultFinalList1EntryCount = " << value.refDefaultFinalList1EntryCount << '\n';
12582         s << "\tpRefDefaultFinalList1Entries = " << value.pRefDefaultFinalList1Entries << '\n';
12583         s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
12584         s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
12585         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
12586         s << '}';
12587         return s;
12588 }
12589
12590 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
12591 {
12592         s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
12593         s << "\tsType = " << value.sType << '\n';
12594         s << "\tpNext = " << value.pNext << '\n';
12595         s << "\tspsId = " << value.spsId << '\n';
12596         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
12597         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
12598         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
12599         s << '}';
12600         return s;
12601 }
12602
12603 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
12604 {
12605         s << "VkVideoEncodeH264ProfileEXT = {\n";
12606         s << "\tsType = " << value.sType << '\n';
12607         s << "\tpNext = " << value.pNext << '\n';
12608         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
12609         s << '}';
12610         return s;
12611 }
12612
12613 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
12614 {
12615         s << "StdVideoDecodeH264PictureInfoFlags = {\n";
12616         s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
12617         s << "\tis_intra = " << value.is_intra << '\n';
12618         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
12619         s << "\tis_reference = " << value.is_reference << '\n';
12620         s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
12621         s << '}';
12622         return s;
12623 }
12624
12625 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
12626 {
12627         s << "StdVideoDecodeH264PictureInfo = {\n";
12628         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
12629         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
12630         s << "\treserved = " << value.reserved << '\n';
12631         s << "\tframe_num = " << value.frame_num << '\n';
12632         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
12633         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
12634         s << "\tflags = " << value.flags << '\n';
12635         s << '}';
12636         return s;
12637 }
12638
12639 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
12640 {
12641         s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
12642         s << "\ttop_field_flag = " << value.top_field_flag << '\n';
12643         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
12644         s << "\tis_long_term = " << value.is_long_term << '\n';
12645         s << "\tis_non_existing = " << value.is_non_existing << '\n';
12646         s << '}';
12647         return s;
12648 }
12649
12650 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
12651 {
12652         s << "StdVideoDecodeH264ReferenceInfo = {\n";
12653         s << "\tFrameNum = " << value.FrameNum << '\n';
12654         s << "\treserved = " << value.reserved << '\n';
12655         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
12656         s << "\tflags = " << value.flags << '\n';
12657         s << '}';
12658         return s;
12659 }
12660
12661 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
12662 {
12663         s << "StdVideoDecodeH264MvcElementFlags = {\n";
12664         s << "\tnon_idr = " << value.non_idr << '\n';
12665         s << "\tanchor_pic = " << value.anchor_pic << '\n';
12666         s << "\tinter_view = " << value.inter_view << '\n';
12667         s << '}';
12668         return s;
12669 }
12670
12671 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
12672 {
12673         s << "StdVideoDecodeH264MvcElement = {\n";
12674         s << "\tflags = " << value.flags << '\n';
12675         s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
12676         s << "\tviewId = " << value.viewId << '\n';
12677         s << "\ttemporalId = " << value.temporalId << '\n';
12678         s << "\tpriorityId = " << value.priorityId << '\n';
12679         s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
12680         s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
12681         s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
12682         s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
12683         s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
12684         s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
12685         s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
12686         s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
12687         s << '}';
12688         return s;
12689 }
12690
12691 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
12692 {
12693         s << "StdVideoDecodeH264Mvc = {\n";
12694         s << "\tviewId0 = " << value.viewId0 << '\n';
12695         s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
12696         s << "\tpMvcElements = " << value.pMvcElements << '\n';
12697         s << '}';
12698         return s;
12699 }
12700
12701 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
12702 {
12703         s << "VkVideoDecodeH264ProfileEXT = {\n";
12704         s << "\tsType = " << value.sType << '\n';
12705         s << "\tpNext = " << value.pNext << '\n';
12706         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
12707         s << "\tfieldLayout = " << getVideoDecodeH264FieldLayoutFlagsEXTStr(value.fieldLayout) << '\n';
12708         s << '}';
12709         return s;
12710 }
12711
12712 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
12713 {
12714         s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
12715         s << "\tsType = " << value.sType << '\n';
12716         s << "\tpNext = " << value.pNext << '\n';
12717         s << "\tmaxLevel = " << value.maxLevel << '\n';
12718         s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
12719         s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
12720         s << '}';
12721         return s;
12722 }
12723
12724 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionCreateInfoEXT& value)
12725 {
12726         s << "VkVideoDecodeH264SessionCreateInfoEXT = {\n";
12727         s << "\tsType = " << value.sType << '\n';
12728         s << "\tpNext = " << value.pNext << '\n';
12729         s << "\tflags = " << getVideoDecodeH264CreateFlagsEXTStr(value.flags) << '\n';
12730         s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
12731         s << '}';
12732         return s;
12733 }
12734
12735 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
12736 {
12737         s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
12738         s << "\tsType = " << value.sType << '\n';
12739         s << "\tpNext = " << value.pNext << '\n';
12740         s << "\tspsStdCount = " << value.spsStdCount << '\n';
12741         s << "\tpSpsStd = " << value.pSpsStd << '\n';
12742         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
12743         s << "\tpPpsStd = " << value.pPpsStd << '\n';
12744         s << '}';
12745         return s;
12746 }
12747
12748 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
12749 {
12750         s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
12751         s << "\tsType = " << value.sType << '\n';
12752         s << "\tpNext = " << value.pNext << '\n';
12753         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
12754         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
12755         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
12756         s << '}';
12757         return s;
12758 }
12759
12760 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
12761 {
12762         s << "VkVideoDecodeH264PictureInfoEXT = {\n";
12763         s << "\tsType = " << value.sType << '\n';
12764         s << "\tpNext = " << value.pNext << '\n';
12765         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
12766         s << "\tslicesCount = " << value.slicesCount << '\n';
12767         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
12768         s << '}';
12769         return s;
12770 }
12771
12772 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
12773 {
12774         s << "VkVideoDecodeH264MvcEXT = {\n";
12775         s << "\tsType = " << value.sType << '\n';
12776         s << "\tpNext = " << value.pNext << '\n';
12777         s << "\tpStdMvc = " << value.pStdMvc << '\n';
12778         s << '}';
12779         return s;
12780 }
12781
12782 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
12783 {
12784         s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
12785         s << "\tsType = " << value.sType << '\n';
12786         s << "\tpNext = " << value.pNext << '\n';
12787         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
12788         s << '}';
12789         return s;
12790 }
12791
12792 std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
12793 {
12794         s << "StdVideoH265DecPicBufMgr = {\n";
12795         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';
12796         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';
12797         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';
12798         s << '}';
12799         return s;
12800 }
12801
12802 std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
12803 {
12804         s << "StdVideoH265SubLayerHrdParameters = {\n";
12805         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';
12806         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';
12807         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';
12808         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';
12809         s << "\tcbr_flag = " << value.cbr_flag << '\n';
12810         s << '}';
12811         return s;
12812 }
12813
12814 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
12815 {
12816         s << "StdVideoH265HrdFlags = {\n";
12817         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
12818         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
12819         s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
12820         s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
12821         s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
12822         s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
12823         s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
12824         s << '}';
12825         return s;
12826 }
12827
12828 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
12829 {
12830         s << "StdVideoH265HrdParameters = {\n";
12831         s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
12832         s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
12833         s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
12834         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
12835         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
12836         s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
12837         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
12838         s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
12839         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
12840         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';
12841         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';
12842         s << "\tSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.SubLayerHrdParametersNal), DE_ARRAY_END(value.SubLayerHrdParametersNal)) << '\n';
12843         s << "\tSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.SubLayerHrdParametersVcl), DE_ARRAY_END(value.SubLayerHrdParametersVcl)) << '\n';
12844         s << "\tflags = " << value.flags << '\n';
12845         s << '}';
12846         return s;
12847 }
12848
12849 std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
12850 {
12851         s << "StdVideoH265VpsFlags = {\n";
12852         s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
12853         s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
12854         s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
12855         s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
12856         s << '}';
12857         return s;
12858 }
12859
12860 std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
12861 {
12862         s << "StdVideoH265VideoParameterSet = {\n";
12863         s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
12864         s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
12865         s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
12866         s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
12867         s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
12868         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
12869         s << "\thrd_parameters = " << value.hrd_parameters << '\n';
12870         s << "\tflags = " << value.flags << '\n';
12871         s << '}';
12872         return s;
12873 }
12874
12875 std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
12876 {
12877         s << "StdVideoH265ScalingLists = {\n";
12878         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
12879         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
12880         s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
12881         s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
12882         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';
12883         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';
12884         s << '}';
12885         return s;
12886 }
12887
12888 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
12889 {
12890         s << "StdVideoH265SpsVuiFlags = {\n";
12891         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
12892         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
12893         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
12894         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
12895         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
12896         s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
12897         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
12898         s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
12899         s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
12900         s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
12901         s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
12902         s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
12903         s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
12904         s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
12905         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
12906         s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
12907         s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
12908         s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
12909         s << '}';
12910         return s;
12911 }
12912
12913 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
12914 {
12915         s << "StdVideoH265SequenceParameterSetVui = {\n";
12916         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
12917         s << "\tsar_width = " << value.sar_width << '\n';
12918         s << "\tsar_height = " << value.sar_height << '\n';
12919         s << "\tvideo_format = " << value.video_format << '\n';
12920         s << "\tcolour_primaries = " << value.colour_primaries << '\n';
12921         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
12922         s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
12923         s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
12924         s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
12925         s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
12926         s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
12927         s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
12928         s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
12929         s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
12930         s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
12931         s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
12932         s << "\thrd_parameters = " << value.hrd_parameters << '\n';
12933         s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
12934         s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
12935         s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
12936         s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
12937         s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
12938         s << "\tflags = " << value.flags << '\n';
12939         s << '}';
12940         return s;
12941 }
12942
12943 std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
12944 {
12945         s << "StdVideoH265PredictorPaletteEntries = {\n";
12946         s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
12947         s << '}';
12948         return s;
12949 }
12950
12951 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
12952 {
12953         s << "StdVideoH265SpsFlags = {\n";
12954         s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
12955         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
12956         s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
12957         s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
12958         s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
12959         s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
12960         s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
12961         s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
12962         s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
12963         s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
12964         s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
12965         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
12966         s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
12967         s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
12968         s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
12969         s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
12970         s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
12971         s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
12972         s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
12973         s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
12974         s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
12975         s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
12976         s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
12977         s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
12978         s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
12979         s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
12980         s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
12981         s << '}';
12982         return s;
12983 }
12984
12985 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
12986 {
12987         s << "StdVideoH265SequenceParameterSet = {\n";
12988         s << "\tprofile_idc = " << value.profile_idc << '\n';
12989         s << "\tlevel_idc = " << value.level_idc << '\n';
12990         s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
12991         s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
12992         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
12993         s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
12994         s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
12995         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
12996         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
12997         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
12998         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
12999         s << "\tsps_max_dec_pic_buffering_minus1 = " << value.sps_max_dec_pic_buffering_minus1 << '\n';
13000         s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
13001         s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
13002         s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
13003         s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
13004         s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
13005         s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
13006         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
13007         s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
13008         s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
13009         s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
13010         s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
13011         s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
13012         s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
13013         s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
13014         s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
13015         s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
13016         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
13017         s << "\tflags = " << value.flags << '\n';
13018         s << "\tpScalingLists = " << value.pScalingLists << '\n';
13019         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
13020         s << "\tpalette_max_size = " << value.palette_max_size << '\n';
13021         s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
13022         s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
13023         s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
13024         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
13025         s << '}';
13026         return s;
13027 }
13028
13029 std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
13030 {
13031         s << "StdVideoH265PpsFlags = {\n";
13032         s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
13033         s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
13034         s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
13035         s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
13036         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
13037         s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
13038         s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
13039         s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
13040         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
13041         s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
13042         s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
13043         s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
13044         s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
13045         s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
13046         s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
13047         s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
13048         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
13049         s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
13050         s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
13051         s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
13052         s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
13053         s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
13054         s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
13055         s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
13056         s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
13057         s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
13058         s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
13059         s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
13060         s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
13061         s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
13062         s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
13063         s << '}';
13064         return s;
13065 }
13066
13067 std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
13068 {
13069         s << "StdVideoH265PictureParameterSet = {\n";
13070         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
13071         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
13072         s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
13073         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
13074         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
13075         s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
13076         s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
13077         s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
13078         s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
13079         s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
13080         s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
13081         s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
13082         s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
13083         s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
13084         s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
13085         s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
13086         s << "\tflags = " << value.flags << '\n';
13087         s << "\tpScalingLists = " << value.pScalingLists << '\n';
13088         s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
13089         s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
13090         s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
13091         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';
13092         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';
13093         s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
13094         s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
13095         s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
13096         s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
13097         s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
13098         s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
13099         s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
13100         s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
13101         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
13102         s << '}';
13103         return s;
13104 }
13105
13106 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
13107 {
13108         s << "StdVideoDecodeH265PictureInfoFlags = {\n";
13109         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
13110         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
13111         s << "\tIsReference = " << value.IsReference << '\n';
13112         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
13113         s << '}';
13114         return s;
13115 }
13116
13117 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
13118 {
13119         s << "StdVideoDecodeH265PictureInfo = {\n";
13120         s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
13121         s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
13122         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
13123         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
13124         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
13125         s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
13126         s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
13127         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';
13128         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';
13129         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';
13130         s << "\tflags = " << value.flags << '\n';
13131         s << '}';
13132         return s;
13133 }
13134
13135 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
13136 {
13137         s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
13138         s << "\tis_long_term = " << value.is_long_term << '\n';
13139         s << "\tis_non_existing = " << value.is_non_existing << '\n';
13140         s << '}';
13141         return s;
13142 }
13143
13144 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
13145 {
13146         s << "StdVideoDecodeH265ReferenceInfo = {\n";
13147         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
13148         s << "\tflags = " << value.flags << '\n';
13149         s << '}';
13150         return s;
13151 }
13152
13153 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
13154 {
13155         s << "VkVideoDecodeH265ProfileEXT = {\n";
13156         s << "\tsType = " << value.sType << '\n';
13157         s << "\tpNext = " << value.pNext << '\n';
13158         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13159         s << '}';
13160         return s;
13161 }
13162
13163 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
13164 {
13165         s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
13166         s << "\tsType = " << value.sType << '\n';
13167         s << "\tpNext = " << value.pNext << '\n';
13168         s << "\tmaxLevel = " << value.maxLevel << '\n';
13169         s << "\tstdExtensionVersion = " << value.stdExtensionVersion << '\n';
13170         s << '}';
13171         return s;
13172 }
13173
13174 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionCreateInfoEXT& value)
13175 {
13176         s << "VkVideoDecodeH265SessionCreateInfoEXT = {\n";
13177         s << "\tsType = " << value.sType << '\n';
13178         s << "\tpNext = " << value.pNext << '\n';
13179         s << "\tflags = " << getVideoDecodeH265CreateFlagsEXTStr(value.flags) << '\n';
13180         s << "\tpStdExtensionVersion = " << value.pStdExtensionVersion << '\n';
13181         s << '}';
13182         return s;
13183 }
13184
13185 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
13186 {
13187         s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
13188         s << "\tsType = " << value.sType << '\n';
13189         s << "\tpNext = " << value.pNext << '\n';
13190         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13191         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13192         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13193         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13194         s << '}';
13195         return s;
13196 }
13197
13198 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
13199 {
13200         s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
13201         s << "\tsType = " << value.sType << '\n';
13202         s << "\tpNext = " << value.pNext << '\n';
13203         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13204         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13205         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13206         s << '}';
13207         return s;
13208 }
13209
13210 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
13211 {
13212         s << "VkVideoDecodeH265PictureInfoEXT = {\n";
13213         s << "\tsType = " << value.sType << '\n';
13214         s << "\tpNext = " << value.pNext << '\n';
13215         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
13216         s << "\tslicesCount = " << value.slicesCount << '\n';
13217         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
13218         s << '}';
13219         return s;
13220 }
13221
13222 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
13223 {
13224         s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
13225         s << "\tsType = " << value.sType << '\n';
13226         s << "\tpNext = " << value.pNext << '\n';
13227         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13228         s << '}';
13229         return s;
13230 }
13231
13232 std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
13233 {
13234         s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
13235         s << "\tsType = " << value.sType << '\n';
13236         s << "\tpNext = " << value.pNext << '\n';
13237         s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
13238         s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
13239         s << '}';
13240         return s;
13241 }
13242
13243 std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
13244 {
13245         s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
13246         s << "\tsType = " << value.sType << '\n';
13247         s << "\tpNext = " << value.pNext << '\n';
13248         s << "\thandleType = " << value.handleType << '\n';
13249         s << "\thandle = " << value.handle << '\n';
13250         s << '}';
13251         return s;
13252 }
13253
13254 std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
13255 {
13256         s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
13257         s << "\tsType = " << value.sType << '\n';
13258         s << "\tpNext = " << value.pNext << '\n';
13259         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
13260         s << '}';
13261         return s;
13262 }
13263
13264 std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
13265 {
13266         s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
13267         s << "\tsType = " << value.sType << '\n';
13268         s << "\tpNext = " << value.pNext << '\n';
13269         s << "\tmemory = " << value.memory << '\n';
13270         s << "\thandleType = " << value.handleType << '\n';
13271         s << '}';
13272         return s;
13273 }
13274
13275 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
13276 {
13277         s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
13278         s << "\tsType = " << value.sType << '\n';
13279         s << "\tpNext = " << value.pNext << '\n';
13280         s << "\tsemaphore = " << value.semaphore << '\n';
13281         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
13282         s << "\thandleType = " << value.handleType << '\n';
13283         s << "\tzirconHandle = " << value.zirconHandle << '\n';
13284         s << '}';
13285         return s;
13286 }
13287
13288 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
13289 {
13290         s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
13291         s << "\tsType = " << value.sType << '\n';
13292         s << "\tpNext = " << value.pNext << '\n';
13293         s << "\tsemaphore = " << value.semaphore << '\n';
13294         s << "\thandleType = " << value.handleType << '\n';
13295         s << '}';
13296         return s;
13297 }
13298
13299 std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
13300 {
13301         s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
13302         s << "\tsType = " << value.sType << '\n';
13303         s << "\tpNext = " << value.pNext << '\n';
13304         s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
13305         s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
13306         s << '}';
13307         return s;
13308 }
13309
13310 std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
13311 {
13312         s << "VkPresentFrameTokenGGP = {\n";
13313         s << "\tsType = " << value.sType << '\n';
13314         s << "\tpNext = " << value.pNext << '\n';
13315         s << "\tframeToken = " << value.frameToken << '\n';
13316         s << '}';
13317         return s;
13318 }
13319
13320 std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
13321 {
13322         s << "VkIOSSurfaceCreateInfoMVK = {\n";
13323         s << "\tsType = " << value.sType << '\n';
13324         s << "\tpNext = " << value.pNext << '\n';
13325         s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
13326         s << "\tpView = " << value.pView << '\n';
13327         s << '}';
13328         return s;
13329 }
13330
13331 std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
13332 {
13333         s << "VkMacOSSurfaceCreateInfoMVK = {\n";
13334         s << "\tsType = " << value.sType << '\n';
13335         s << "\tpNext = " << value.pNext << '\n';
13336         s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
13337         s << "\tpView = " << value.pView << '\n';
13338         s << '}';
13339         return s;
13340 }
13341
13342 std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
13343 {
13344         s << "VkMetalSurfaceCreateInfoEXT = {\n";
13345         s << "\tsType = " << value.sType << '\n';
13346         s << "\tpNext = " << value.pNext << '\n';
13347         s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
13348         s << "\tpLayer = " << value.pLayer << '\n';
13349         s << '}';
13350         return s;
13351 }
13352
13353 std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
13354 {
13355         s << "VkViSurfaceCreateInfoNN = {\n";
13356         s << "\tsType = " << value.sType << '\n';
13357         s << "\tpNext = " << value.pNext << '\n';
13358         s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
13359         s << "\twindow = " << value.window << '\n';
13360         s << '}';
13361         return s;
13362 }
13363
13364 std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
13365 {
13366         s << "VkWaylandSurfaceCreateInfoKHR = {\n";
13367         s << "\tsType = " << value.sType << '\n';
13368         s << "\tpNext = " << value.pNext << '\n';
13369         s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13370         s << "\tdisplay = " << value.display << '\n';
13371         s << "\tsurface = " << value.surface << '\n';
13372         s << '}';
13373         return s;
13374 }
13375
13376 std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
13377 {
13378         s << "VkWin32SurfaceCreateInfoKHR = {\n";
13379         s << "\tsType = " << value.sType << '\n';
13380         s << "\tpNext = " << value.pNext << '\n';
13381         s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
13382         s << "\thinstance = " << value.hinstance << '\n';
13383         s << "\thwnd = " << value.hwnd << '\n';
13384         s << '}';
13385         return s;
13386 }
13387
13388 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
13389 {
13390         s << "VkImportMemoryWin32HandleInfoKHR = {\n";
13391         s << "\tsType = " << value.sType << '\n';
13392         s << "\tpNext = " << value.pNext << '\n';
13393         s << "\thandleType = " << value.handleType << '\n';
13394         s << "\thandle = " << value.handle << '\n';
13395         s << "\tname = " << getWStr(value.name) << '\n';
13396         s << '}';
13397         return s;
13398 }
13399
13400 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
13401 {
13402         s << "VkExportMemoryWin32HandleInfoKHR = {\n";
13403         s << "\tsType = " << value.sType << '\n';
13404         s << "\tpNext = " << value.pNext << '\n';
13405         s << "\tpAttributes = " << value.pAttributes << '\n';
13406         s << "\tdwAccess = " << value.dwAccess << '\n';
13407         s << "\tname = " << getWStr(value.name) << '\n';
13408         s << '}';
13409         return s;
13410 }
13411
13412 std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
13413 {
13414         s << "VkMemoryWin32HandlePropertiesKHR = {\n";
13415         s << "\tsType = " << value.sType << '\n';
13416         s << "\tpNext = " << value.pNext << '\n';
13417         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
13418         s << '}';
13419         return s;
13420 }
13421
13422 std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
13423 {
13424         s << "VkMemoryGetWin32HandleInfoKHR = {\n";
13425         s << "\tsType = " << value.sType << '\n';
13426         s << "\tpNext = " << value.pNext << '\n';
13427         s << "\tmemory = " << value.memory << '\n';
13428         s << "\thandleType = " << value.handleType << '\n';
13429         s << '}';
13430         return s;
13431 }
13432
13433 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
13434 {
13435         s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
13436         s << "\tsType = " << value.sType << '\n';
13437         s << "\tpNext = " << value.pNext << '\n';
13438         s << "\tacquireCount = " << value.acquireCount << '\n';
13439         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
13440         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
13441         s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
13442         s << "\treleaseCount = " << value.releaseCount << '\n';
13443         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
13444         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
13445         s << '}';
13446         return s;
13447 }
13448
13449 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
13450 {
13451         s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
13452         s << "\tsType = " << value.sType << '\n';
13453         s << "\tpNext = " << value.pNext << '\n';
13454         s << "\tsemaphore = " << value.semaphore << '\n';
13455         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
13456         s << "\thandleType = " << value.handleType << '\n';
13457         s << "\thandle = " << value.handle << '\n';
13458         s << "\tname = " << getWStr(value.name) << '\n';
13459         s << '}';
13460         return s;
13461 }
13462
13463 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
13464 {
13465         s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
13466         s << "\tsType = " << value.sType << '\n';
13467         s << "\tpNext = " << value.pNext << '\n';
13468         s << "\tpAttributes = " << value.pAttributes << '\n';
13469         s << "\tdwAccess = " << value.dwAccess << '\n';
13470         s << "\tname = " << getWStr(value.name) << '\n';
13471         s << '}';
13472         return s;
13473 }
13474
13475 std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
13476 {
13477         s << "VkD3D12FenceSubmitInfoKHR = {\n";
13478         s << "\tsType = " << value.sType << '\n';
13479         s << "\tpNext = " << value.pNext << '\n';
13480         s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
13481         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
13482         s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
13483         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
13484         s << '}';
13485         return s;
13486 }
13487
13488 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
13489 {
13490         s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
13491         s << "\tsType = " << value.sType << '\n';
13492         s << "\tpNext = " << value.pNext << '\n';
13493         s << "\tsemaphore = " << value.semaphore << '\n';
13494         s << "\thandleType = " << value.handleType << '\n';
13495         s << '}';
13496         return s;
13497 }
13498
13499 std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
13500 {
13501         s << "VkImportFenceWin32HandleInfoKHR = {\n";
13502         s << "\tsType = " << value.sType << '\n';
13503         s << "\tpNext = " << value.pNext << '\n';
13504         s << "\tfence = " << value.fence << '\n';
13505         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
13506         s << "\thandleType = " << value.handleType << '\n';
13507         s << "\thandle = " << value.handle << '\n';
13508         s << "\tname = " << getWStr(value.name) << '\n';
13509         s << '}';
13510         return s;
13511 }
13512
13513 std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
13514 {
13515         s << "VkExportFenceWin32HandleInfoKHR = {\n";
13516         s << "\tsType = " << value.sType << '\n';
13517         s << "\tpNext = " << value.pNext << '\n';
13518         s << "\tpAttributes = " << value.pAttributes << '\n';
13519         s << "\tdwAccess = " << value.dwAccess << '\n';
13520         s << "\tname = " << getWStr(value.name) << '\n';
13521         s << '}';
13522         return s;
13523 }
13524
13525 std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
13526 {
13527         s << "VkFenceGetWin32HandleInfoKHR = {\n";
13528         s << "\tsType = " << value.sType << '\n';
13529         s << "\tpNext = " << value.pNext << '\n';
13530         s << "\tfence = " << value.fence << '\n';
13531         s << "\thandleType = " << value.handleType << '\n';
13532         s << '}';
13533         return s;
13534 }
13535
13536 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
13537 {
13538         s << "VkImportMemoryWin32HandleInfoNV = {\n";
13539         s << "\tsType = " << value.sType << '\n';
13540         s << "\tpNext = " << value.pNext << '\n';
13541         s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
13542         s << "\thandle = " << value.handle << '\n';
13543         s << '}';
13544         return s;
13545 }
13546
13547 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
13548 {
13549         s << "VkExportMemoryWin32HandleInfoNV = {\n";
13550         s << "\tsType = " << value.sType << '\n';
13551         s << "\tpNext = " << value.pNext << '\n';
13552         s << "\tpAttributes = " << value.pAttributes << '\n';
13553         s << "\tdwAccess = " << value.dwAccess << '\n';
13554         s << '}';
13555         return s;
13556 }
13557
13558 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
13559 {
13560         s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
13561         s << "\tsType = " << value.sType << '\n';
13562         s << "\tpNext = " << value.pNext << '\n';
13563         s << "\tacquireCount = " << value.acquireCount << '\n';
13564         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
13565         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
13566         s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
13567         s << "\treleaseCount = " << value.releaseCount << '\n';
13568         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
13569         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
13570         s << '}';
13571         return s;
13572 }
13573
13574 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
13575 {
13576         s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
13577         s << "\tsType = " << value.sType << '\n';
13578         s << "\tpNext = " << value.pNext << '\n';
13579         s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
13580         s << '}';
13581         return s;
13582 }
13583
13584 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
13585 {
13586         s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
13587         s << "\tsType = " << value.sType << '\n';
13588         s << "\tpNext = " << value.pNext << '\n';
13589         s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
13590         s << '}';
13591         return s;
13592 }
13593
13594 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
13595 {
13596         s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
13597         s << "\tsType = " << value.sType << '\n';
13598         s << "\tpNext = " << value.pNext << '\n';
13599         s << "\thmonitor = " << value.hmonitor << '\n';
13600         s << '}';
13601         return s;
13602 }
13603
13604 std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
13605 {
13606         s << "VkXcbSurfaceCreateInfoKHR = {\n";
13607         s << "\tsType = " << value.sType << '\n';
13608         s << "\tpNext = " << value.pNext << '\n';
13609         s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13610         s << "\tconnection = " << value.connection << '\n';
13611         s << "\twindow = " << value.window << '\n';
13612         s << '}';
13613         return s;
13614 }
13615
13616 std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
13617 {
13618         s << "VkXlibSurfaceCreateInfoKHR = {\n";
13619         s << "\tsType = " << value.sType << '\n';
13620         s << "\tpNext = " << value.pNext << '\n';
13621         s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13622         s << "\tdpy = " << value.dpy << '\n';
13623         s << "\twindow = " << value.window << '\n';
13624         s << '}';
13625         return s;
13626 }