Merge vk-gl-cts/dev/VK_KHR_fragment_shader_barycentric into vk-gl-cts/main
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / framework / vulkan / generated / vulkan / vkStrUtilImpl.inl
1 /* WARNING: This is auto-generated file. Do not modify, since changes will
2  * be lost! Modify the generating script instead.
3  * This file was generated by /scripts/gen_framework.py
4  */
5
6 template<> const char*  getTypeName<VkBuffer>                                                   (void) { return "VkBuffer";                                                     }
7 template<> const char*  getTypeName<VkImage>                                                    (void) { return "VkImage";                                                      }
8 template<> const char*  getTypeName<VkInstance>                                                 (void) { return "VkInstance";                                           }
9 template<> const char*  getTypeName<VkPhysicalDevice>                                   (void) { return "VkPhysicalDevice";                                     }
10 template<> const char*  getTypeName<VkDevice>                                                   (void) { return "VkDevice";                                                     }
11 template<> const char*  getTypeName<VkQueue>                                                    (void) { return "VkQueue";                                                      }
12 template<> const char*  getTypeName<VkSemaphore>                                                (void) { return "VkSemaphore";                                          }
13 template<> const char*  getTypeName<VkCommandBuffer>                                    (void) { return "VkCommandBuffer";                                      }
14 template<> const char*  getTypeName<VkFence>                                                    (void) { return "VkFence";                                                      }
15 template<> const char*  getTypeName<VkDeviceMemory>                                             (void) { return "VkDeviceMemory";                                       }
16 template<> const char*  getTypeName<VkEvent>                                                    (void) { return "VkEvent";                                                      }
17 template<> const char*  getTypeName<VkQueryPool>                                                (void) { return "VkQueryPool";                                          }
18 template<> const char*  getTypeName<VkBufferView>                                               (void) { return "VkBufferView";                                         }
19 template<> const char*  getTypeName<VkImageView>                                                (void) { return "VkImageView";                                          }
20 template<> const char*  getTypeName<VkShaderModule>                                             (void) { return "VkShaderModule";                                       }
21 template<> const char*  getTypeName<VkPipelineCache>                                    (void) { return "VkPipelineCache";                                      }
22 template<> const char*  getTypeName<VkPipelineLayout>                                   (void) { return "VkPipelineLayout";                                     }
23 template<> const char*  getTypeName<VkPipeline>                                                 (void) { return "VkPipeline";                                           }
24 template<> const char*  getTypeName<VkRenderPass>                                               (void) { return "VkRenderPass";                                         }
25 template<> const char*  getTypeName<VkDescriptorSetLayout>                              (void) { return "VkDescriptorSetLayout";                        }
26 template<> const char*  getTypeName<VkSampler>                                                  (void) { return "VkSampler";                                            }
27 template<> const char*  getTypeName<VkDescriptorSet>                                    (void) { return "VkDescriptorSet";                                      }
28 template<> const char*  getTypeName<VkDescriptorPool>                                   (void) { return "VkDescriptorPool";                                     }
29 template<> const char*  getTypeName<VkFramebuffer>                                              (void) { return "VkFramebuffer";                                        }
30 template<> const char*  getTypeName<VkCommandPool>                                              (void) { return "VkCommandPool";                                        }
31 template<> const char*  getTypeName<VkSamplerYcbcrConversion>                   (void) { return "VkSamplerYcbcrConversion";                     }
32 template<> const char*  getTypeName<VkDescriptorUpdateTemplate>                 (void) { return "VkDescriptorUpdateTemplate";           }
33 template<> const char*  getTypeName<VkPrivateDataSlot>                                  (void) { return "VkPrivateDataSlot";                            }
34 template<> const char*  getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
35 template<> const char*  getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
36 template<> const char*  getTypeName<VkDisplayKHR>                                               (void) { return "VkDisplayKHR";                                         }
37 template<> const char*  getTypeName<VkDisplayModeKHR>                                   (void) { return "VkDisplayModeKHR";                                     }
38 template<> const char*  getTypeName<VkDeferredOperationKHR>                             (void) { return "VkDeferredOperationKHR";                       }
39 template<> const char*  getTypeName<VkDebugReportCallbackEXT>                   (void) { return "VkDebugReportCallbackEXT";                     }
40 template<> const char*  getTypeName<VkCuModuleNVX>                                              (void) { return "VkCuModuleNVX";                                        }
41 template<> const char*  getTypeName<VkCuFunctionNVX>                                    (void) { return "VkCuFunctionNVX";                                      }
42 template<> const char*  getTypeName<VkDebugUtilsMessengerEXT>                   (void) { return "VkDebugUtilsMessengerEXT";                     }
43 template<> const char*  getTypeName<VkValidationCacheEXT>                               (void) { return "VkValidationCacheEXT";                         }
44 template<> const char*  getTypeName<VkAccelerationStructureNV>                  (void) { return "VkAccelerationStructureNV";            }
45 template<> const char*  getTypeName<VkPerformanceConfigurationINTEL>    (void) { return "VkPerformanceConfigurationINTEL";      }
46 template<> const char*  getTypeName<VkIndirectCommandsLayoutNV>                 (void) { return "VkIndirectCommandsLayoutNV";           }
47 template<> const char*  getTypeName<VkAccelerationStructureKHR>                 (void) { return "VkAccelerationStructureKHR";           }
48 template<> const char*  getTypeName<VkVideoSessionKHR>                                  (void) { return "VkVideoSessionKHR";                            }
49 template<> const char*  getTypeName<VkVideoSessionParametersKHR>                (void) { return "VkVideoSessionParametersKHR";          }
50 template<> const char*  getTypeName<VkBufferCollectionFUCHSIA>                  (void) { return "VkBufferCollectionFUCHSIA";            }
51
52 namespace pt
53 {
54 std::ostream& operator<< (std::ostream& s, XlibDisplayPtr                               v) { return s << tcu::toHex(v.internal); }
55 std::ostream& operator<< (std::ostream& s, XlibWindow                                   v) { return s << tcu::toHex(v.internal); }
56 std::ostream& operator<< (std::ostream& s, XlibVisualID                                 v) { return s << tcu::toHex(v.internal); }
57 std::ostream& operator<< (std::ostream& s, XcbConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
58 std::ostream& operator<< (std::ostream& s, XcbWindow                                    v) { return s << tcu::toHex(v.internal); }
59 std::ostream& operator<< (std::ostream& s, XcbVisualid                                  v) { return s << tcu::toHex(v.internal); }
60 std::ostream& operator<< (std::ostream& s, WaylandDisplayPtr                    v) { return s << tcu::toHex(v.internal); }
61 std::ostream& operator<< (std::ostream& s, WaylandSurfacePtr                    v) { return s << tcu::toHex(v.internal); }
62 std::ostream& operator<< (std::ostream& s, MirConnectionPtr                             v) { return s << tcu::toHex(v.internal); }
63 std::ostream& operator<< (std::ostream& s, MirSurfacePtr                                v) { return s << tcu::toHex(v.internal); }
64 std::ostream& operator<< (std::ostream& s, AndroidNativeWindowPtr               v) { return s << tcu::toHex(v.internal); }
65 std::ostream& operator<< (std::ostream& s, Win32InstanceHandle                  v) { return s << tcu::toHex(v.internal); }
66 std::ostream& operator<< (std::ostream& s, Win32WindowHandle                    v) { return s << tcu::toHex(v.internal); }
67 std::ostream& operator<< (std::ostream& s, Win32Handle                                  v) { return s << tcu::toHex(v.internal); }
68 std::ostream& operator<< (std::ostream& s, Win32SecurityAttributesPtr   v) { return s << tcu::toHex(v.internal); }
69 std::ostream& operator<< (std::ostream& s, AndroidHardwareBufferPtr             v) { return s << tcu::toHex(v.internal); }
70 std::ostream& operator<< (std::ostream& s, Win32MonitorHandle                   v) { return s << tcu::toHex(v.internal); }
71 std::ostream& operator<< (std::ostream& s, Win32LPCWSTR                                 v) { return s << tcu::toHex(v.internal); }
72 std::ostream& operator<< (std::ostream& s, RROutput                                             v) { return s << tcu::toHex(v.internal); }
73 std::ostream& operator<< (std::ostream& s, zx_handle_t                                  v) { return s << tcu::toHex(v.internal); }
74 std::ostream& operator<< (std::ostream& s, GgpFrameToken                                v) { return s << tcu::toHex(v.internal); }
75 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                  v) { return s << tcu::toHex(v.internal); }
76 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                 v) { return s << tcu::toHex(v.internal); }
77 }
78
79 const char* getResultName (VkResult value)
80 {
81         switch (value)
82         {
83                 case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
84                 case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
85                 case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
86                 case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
87                 case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
88                 case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
89                 case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
90                 case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
91                 case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
92                 case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
93                 case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
94                 case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
95                 case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
96                 case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
97                 case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
98                 case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
99                 case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
100                 case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
101                 case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
102                 case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
103                 case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
104                 case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
105                 case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
106                 case VK_PIPELINE_COMPILE_REQUIRED:                                                      return "VK_PIPELINE_COMPILE_REQUIRED";
107                 case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
108                 case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
109                 case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
110                 case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
111                 case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
112                 case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
113                 case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
114                 case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
115                 case VK_ERROR_NOT_PERMITTED_KHR:                                                        return "VK_ERROR_NOT_PERMITTED_KHR";
116                 case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
117                 case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
118                 case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
119                 case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
120                 case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
121                 case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:                                        return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
122                 case VK_RESULT_MAX_ENUM:                                                                        return "VK_RESULT_MAX_ENUM";
123                 default:                                                                                                        return DE_NULL;
124         }
125 }
126
127 const char* getStructureTypeName (VkStructureType value)
128 {
129         switch (value)
130         {
131                 case VK_STRUCTURE_TYPE_APPLICATION_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
132                 case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
133                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
134                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
135                 case VK_STRUCTURE_TYPE_SUBMIT_INFO:                                                                                                                     return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
136                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:                                                                                            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
137                 case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:                                                                                                     return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
138                 case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
139                 case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
140                 case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
141                 case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
142                 case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
143                 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
144                 case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
145                 case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:                                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
146                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
147                 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
148                 case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
149                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
150                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
151                 case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
152                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:                                                         return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
153                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
154                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
155                 case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
156                 case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:                                                        return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
157                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
158                 case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
159                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
160                 case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
161                 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
162                 case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
163                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
164                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
165                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
166                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:                                                                                            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
167                 case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:                                                                                                     return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
168                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
169                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:                                                                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
170                 case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
171                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
172                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:                                                                         return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
173                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:                                                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
174                 case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:                                                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
175                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
176                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
177                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER:                                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
178                 case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
179                 case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:                                                                                       return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
180                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
181                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
182                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
183                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
184                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
185                 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
186                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
187                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
188                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
189                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
190                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
191                 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
192                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
193                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
194                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
195                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
196                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
197                 case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
198                 case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
199                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
200                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
201                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
202                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
203                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
204                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
205                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
206                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
207                 case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
208                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
209                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
210                 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
211                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
212                 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
213                 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
214                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
215                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
216                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
217                 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
218                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
219                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
220                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
221                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
222                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
223                 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
224                 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
225                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
226                 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
227                 case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
228                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
229                 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
230                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
231                 case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
232                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
233                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
234                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
235                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
236                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
237                 case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
238                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
239                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
240                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
241                 case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
242                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
243                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
244                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
245                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
246                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
247                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
248                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
249                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
250                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
251                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
252                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
253                 case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
254                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
255                 case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
256                 case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
257                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
258                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
259                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
260                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
261                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
262                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
263                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
264                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
265                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
266                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
267                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
268                 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
269                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
270                 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
271                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
272                 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
273                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
274                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
275                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
276                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
277                 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
278                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
279                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
280                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
281                 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
282                 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
283                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
284                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
285                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
286                 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
287                 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
288                 case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
289                 case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
290                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
291                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
292                 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
293                 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
294                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
295                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
296                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
297                 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
298                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
299                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:                                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
300                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
301                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
302                 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
303                 case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
304                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
305                 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:                                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
306                 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
307                 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
308                 case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:                                                                                                         return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
309                 case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:                                                                                                           return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
310                 case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
311                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:                                                                                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
312                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
313                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
314                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
315                 case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:                                                                                                      return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
316                 case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
317                 case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
318                 case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
319                 case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
320                 case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:                                                                                            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
321                 case VK_STRUCTURE_TYPE_BUFFER_COPY_2:                                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
322                 case VK_STRUCTURE_TYPE_IMAGE_COPY_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
323                 case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
324                 case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:                                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
325                 case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:                                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
326                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
327                 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:                        return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
328                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
329                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
330                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
331                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:                                                       return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
332                 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
333                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
334                 case VK_STRUCTURE_TYPE_RENDERING_INFO:                                                                                                          return "VK_STRUCTURE_TYPE_RENDERING_INFO";
335                 case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:                                                                                       return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
336                 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
337                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
338                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
339                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
340                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
341                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
342                 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
343                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
344                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
345                 case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:                                                                       return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
346                 case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
347                 case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
348                 case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:                                                                                                        return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
349                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
350                 case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
351                 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
352                 case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
353                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
354                 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
355                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
356                 case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
357                 case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
358                 case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
359                 case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
360                 case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
361                 case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
362                 case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
363                 case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
364                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:                            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
365                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
366                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
367                 case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
368                 case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
369                 case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
370                 case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
371                 case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
372                 case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
373                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
374                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
375                 case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
376                 case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
377                 case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
378                 case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
379                 case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:                                                                                        return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
380                 case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
381                 case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:                                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
382                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
383                 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
384                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR:                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR";
385                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
386                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
387                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
388                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
389                 case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:                                            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
390                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
391                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
392                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
393                 case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
394                 case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
395                 case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
396                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
397                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
398                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
399                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
400                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
401                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
402                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
403                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:                                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
404                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
405                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
406                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
407                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
408                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT";
409                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
410                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
411                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
412                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
413                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
414                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT";
415                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT";
416                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT";
417                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT";
418                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
419                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
420                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
421                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
422                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
423                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
424                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
425                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
426                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
427                 case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
428                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
429                 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
430                 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
431                 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
432                 case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
433                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
434                 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
435                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
436                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
437                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
438                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:                                                       return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
439                 case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:                                                                                            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
440                 case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:                                                                                       return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
441                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
442                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
443                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
444                 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
445                 case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
446                 case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
447                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
448                 case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
449                 case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:                                                                                          return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
450                 case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:                                                      return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
451                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
452                 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
453                 case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
454                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
455                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
456                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
457                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
458                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
459                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
460                 case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
461                 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
462                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
463                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
464                 case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
465                 case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
466                 case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:                                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
467                 case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
468                 case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:                                                                                       return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
469                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
470                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
471                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
472                 case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
473                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
474                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
475                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
476                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
477                 case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                        return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
478                 case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:                                                         return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
479                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
480                 case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
481                 case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
482                 case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:                                                                                        return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
483                 case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
484                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
485                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
486                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
487                 case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
488                 case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
489                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
490                 case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
491                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
492                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:                                                                                      return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
493                 case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:                                                                                            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
494                 case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
495                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:                                                                          return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
496                 case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:                                                                           return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
497                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:                                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
498                 case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                        return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
499                 case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                                     return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
500                 case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                           return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
501                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
502                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
503                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
504                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
505                 case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
506                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
507                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
508                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
509                 case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                                     return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
510                 case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                         return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
511                 case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
512                 case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:                                     return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
513                 case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                                       return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
514                 case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
515                 case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:                                         return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
516                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
517                 case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:                                                                                      return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
518                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
519                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
520                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
521                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:                                         return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
522                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
523                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
524                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
525                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
526                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
527                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
528                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
529                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
530                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
531                 case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
532                 case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
533                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
534                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
535                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
536                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
537                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
538                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
539                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
540                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
541                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
542                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
543                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:                                       return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
544                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
545                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
546                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
547                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
548                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
549                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
550                 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
551                 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:                                                       return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
552                 case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
553                 case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
554                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
555                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
556                 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";
557                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
558                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
559                 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";
560                 case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
561                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
562                 case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
563                 case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
564                 case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
565                 case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
566                 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
567                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
568                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
569                 case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
570                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
571                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
572                 case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
573                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
574                 case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
575                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
576                 case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
577                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
578                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
579                 case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
580                 case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
581                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
582                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
583                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
584                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
585                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
586                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
587                 case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
588                 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
589                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
590                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
591                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
592                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
593                 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
594                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
595                 case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
596                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
597                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
598                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
599                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
600                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
601                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
602                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
603                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
604                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
605                 case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
606                 case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
607                 case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
608                 case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
609                 case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
610                 case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
611                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
612                 case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
613                 case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
614                 case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
615                 case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
616                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
617                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
618                 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
619                 case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
620                 case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
621                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
622                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
623                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
624                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
625                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
626                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
627                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
628                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
629                 case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
630                 case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
631                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
632                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
633                 case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
634                 case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
635                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
636                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
637                 case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
638                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
639                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
640                 case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
641                 case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
642                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
643                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
644                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
645                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
646                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
647                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
648                 case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
649                 case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
650                 case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
651                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
652                 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
653                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
654                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
655                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
656                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
657                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
658                 case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
659                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
660                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
661                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
662                 case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
663                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
664                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
665                 case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
666                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
667                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
668                 case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
669                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
670                 case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
671                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
672                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
673                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
674                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
675                 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
676                 case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
677                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
678                 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
679                 case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
680                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
681                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
682                 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
683                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
684                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
685                 case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
686                 case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
687                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
688                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
689                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
690                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
691                 case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
692                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
693                 case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
694                 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
695                 case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
696                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
697                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
698                 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
699                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
700                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
701                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
702                 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";
703                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
704                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
705                 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";
706                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
707                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
708                 case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
709                 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";
710                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
711                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
712                 case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
713                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
714                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
715                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
716                 case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:                                                                                        return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
717                 case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
718                 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
719                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
720                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM";
721                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
722                 case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
723                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
724                 case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:                                                       return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
725                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
726                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
727                 case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
728                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
729                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
730                 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
731                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
732                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
733                 case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
734                 case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
735                 case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
736                 case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
737                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
738                 case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
739                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
740                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:                                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
741                 case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
742                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
743                 case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
744                 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
745                 case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:                                                                                      return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
746                 case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:                                                      return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
747                 case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
748                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
749                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
750                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
751                 case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
752                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
753                 case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
754                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
755                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
756                 case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
757                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
758                 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
759                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
760                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
761                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
762                 case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
763                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
764                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
765                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
766                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
767                 case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:                          return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
768                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
769                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
770                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
771                 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
772                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
773                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
774                 case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:                                       return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
775                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
776                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
777                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
778                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:                                                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
779                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_INFO_EXT";
780                 case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_INFO_EXT";
781                 case VK_STRUCTURE_TYPE_MAX_ENUM:                                                                                                                        return "VK_STRUCTURE_TYPE_MAX_ENUM";
782                 default:                                                                                                                                                                        return DE_NULL;
783         }
784 }
785
786 const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
787 {
788         switch (value)
789         {
790                 case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:              return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
791                 case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM: return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
792                 default:                                                                                return DE_NULL;
793         }
794 }
795
796 const char* getImageLayoutName (VkImageLayout value)
797 {
798         switch (value)
799         {
800                 case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
801                 case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
802                 case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
803                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
804                 case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
805                 case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
806                 case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
807                 case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
808                 case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
809                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
810                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
811                 case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
812                 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
813                 case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
814                 case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
815                 case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:                                                         return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
816                 case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:                                                        return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
817                 case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
818                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
819                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
820                 case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
821                 case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
822                 case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
823                 case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
824                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
825                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
826                 case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
827                 case VK_IMAGE_LAYOUT_MAX_ENUM:                                                                          return "VK_IMAGE_LAYOUT_MAX_ENUM";
828                 default:                                                                                                                        return DE_NULL;
829         }
830 }
831
832 const char* getObjectTypeName (VkObjectType value)
833 {
834         switch (value)
835         {
836                 case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
837                 case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
838                 case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
839                 case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
840                 case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
841                 case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
842                 case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
843                 case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
844                 case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
845                 case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
846                 case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
847                 case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
848                 case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
849                 case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
850                 case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
851                 case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
852                 case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
853                 case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
854                 case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
855                 case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
856                 case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
857                 case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
858                 case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
859                 case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
860                 case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
861                 case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
862                 case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
863                 case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
864                 case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:                                  return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
865                 case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
866                 case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
867                 case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
868                 case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
869                 case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
870                 case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
871                 case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
872                 case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
873                 case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
874                 case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
875                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
876                 case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
877                 case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
878                 case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
879                 case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
880                 case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
881                 case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:                  return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
882                 case VK_OBJECT_TYPE_MAX_ENUM:                                                   return "VK_OBJECT_TYPE_MAX_ENUM";
883                 default:                                                                                                return DE_NULL;
884         }
885 }
886
887 const char* getVendorIdName (VkVendorId value)
888 {
889         switch (value)
890         {
891                 case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
892                 case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
893                 case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
894                 case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
895                 case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
896                 case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
897                 case VK_VENDOR_ID_MAX_ENUM:     return "VK_VENDOR_ID_MAX_ENUM";
898                 default:                                        return DE_NULL;
899         }
900 }
901
902 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
903 {
904         switch (value)
905         {
906                 case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
907                 case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
908                 case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
909                 case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
910                 case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
911                 case VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:       return "VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM";
912                 default:                                                                        return DE_NULL;
913         }
914 }
915
916 const char* getInternalAllocationTypeName (VkInternalAllocationType value)
917 {
918         switch (value)
919         {
920                 case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
921                 case VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:              return "VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM";
922                 default:                                                                                return DE_NULL;
923         }
924 }
925
926 const char* getFormatName (VkFormat value)
927 {
928         switch (value)
929         {
930                 case VK_FORMAT_UNDEFINED:                                                                       return "VK_FORMAT_UNDEFINED";
931                 case VK_FORMAT_R4G4_UNORM_PACK8:                                                        return "VK_FORMAT_R4G4_UNORM_PACK8";
932                 case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                           return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
933                 case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                           return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
934                 case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                     return "VK_FORMAT_R5G6B5_UNORM_PACK16";
935                 case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                     return "VK_FORMAT_B5G6R5_UNORM_PACK16";
936                 case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                           return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
937                 case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                           return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
938                 case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                           return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
939                 case VK_FORMAT_R8_UNORM:                                                                        return "VK_FORMAT_R8_UNORM";
940                 case VK_FORMAT_R8_SNORM:                                                                        return "VK_FORMAT_R8_SNORM";
941                 case VK_FORMAT_R8_USCALED:                                                                      return "VK_FORMAT_R8_USCALED";
942                 case VK_FORMAT_R8_SSCALED:                                                                      return "VK_FORMAT_R8_SSCALED";
943                 case VK_FORMAT_R8_UINT:                                                                         return "VK_FORMAT_R8_UINT";
944                 case VK_FORMAT_R8_SINT:                                                                         return "VK_FORMAT_R8_SINT";
945                 case VK_FORMAT_R8_SRGB:                                                                         return "VK_FORMAT_R8_SRGB";
946                 case VK_FORMAT_R8G8_UNORM:                                                                      return "VK_FORMAT_R8G8_UNORM";
947                 case VK_FORMAT_R8G8_SNORM:                                                                      return "VK_FORMAT_R8G8_SNORM";
948                 case VK_FORMAT_R8G8_USCALED:                                                            return "VK_FORMAT_R8G8_USCALED";
949                 case VK_FORMAT_R8G8_SSCALED:                                                            return "VK_FORMAT_R8G8_SSCALED";
950                 case VK_FORMAT_R8G8_UINT:                                                                       return "VK_FORMAT_R8G8_UINT";
951                 case VK_FORMAT_R8G8_SINT:                                                                       return "VK_FORMAT_R8G8_SINT";
952                 case VK_FORMAT_R8G8_SRGB:                                                                       return "VK_FORMAT_R8G8_SRGB";
953                 case VK_FORMAT_R8G8B8_UNORM:                                                            return "VK_FORMAT_R8G8B8_UNORM";
954                 case VK_FORMAT_R8G8B8_SNORM:                                                            return "VK_FORMAT_R8G8B8_SNORM";
955                 case VK_FORMAT_R8G8B8_USCALED:                                                          return "VK_FORMAT_R8G8B8_USCALED";
956                 case VK_FORMAT_R8G8B8_SSCALED:                                                          return "VK_FORMAT_R8G8B8_SSCALED";
957                 case VK_FORMAT_R8G8B8_UINT:                                                                     return "VK_FORMAT_R8G8B8_UINT";
958                 case VK_FORMAT_R8G8B8_SINT:                                                                     return "VK_FORMAT_R8G8B8_SINT";
959                 case VK_FORMAT_R8G8B8_SRGB:                                                                     return "VK_FORMAT_R8G8B8_SRGB";
960                 case VK_FORMAT_B8G8R8_UNORM:                                                            return "VK_FORMAT_B8G8R8_UNORM";
961                 case VK_FORMAT_B8G8R8_SNORM:                                                            return "VK_FORMAT_B8G8R8_SNORM";
962                 case VK_FORMAT_B8G8R8_USCALED:                                                          return "VK_FORMAT_B8G8R8_USCALED";
963                 case VK_FORMAT_B8G8R8_SSCALED:                                                          return "VK_FORMAT_B8G8R8_SSCALED";
964                 case VK_FORMAT_B8G8R8_UINT:                                                                     return "VK_FORMAT_B8G8R8_UINT";
965                 case VK_FORMAT_B8G8R8_SINT:                                                                     return "VK_FORMAT_B8G8R8_SINT";
966                 case VK_FORMAT_B8G8R8_SRGB:                                                                     return "VK_FORMAT_B8G8R8_SRGB";
967                 case VK_FORMAT_R8G8B8A8_UNORM:                                                          return "VK_FORMAT_R8G8B8A8_UNORM";
968                 case VK_FORMAT_R8G8B8A8_SNORM:                                                          return "VK_FORMAT_R8G8B8A8_SNORM";
969                 case VK_FORMAT_R8G8B8A8_USCALED:                                                        return "VK_FORMAT_R8G8B8A8_USCALED";
970                 case VK_FORMAT_R8G8B8A8_SSCALED:                                                        return "VK_FORMAT_R8G8B8A8_SSCALED";
971                 case VK_FORMAT_R8G8B8A8_UINT:                                                           return "VK_FORMAT_R8G8B8A8_UINT";
972                 case VK_FORMAT_R8G8B8A8_SINT:                                                           return "VK_FORMAT_R8G8B8A8_SINT";
973                 case VK_FORMAT_R8G8B8A8_SRGB:                                                           return "VK_FORMAT_R8G8B8A8_SRGB";
974                 case VK_FORMAT_B8G8R8A8_UNORM:                                                          return "VK_FORMAT_B8G8R8A8_UNORM";
975                 case VK_FORMAT_B8G8R8A8_SNORM:                                                          return "VK_FORMAT_B8G8R8A8_SNORM";
976                 case VK_FORMAT_B8G8R8A8_USCALED:                                                        return "VK_FORMAT_B8G8R8A8_USCALED";
977                 case VK_FORMAT_B8G8R8A8_SSCALED:                                                        return "VK_FORMAT_B8G8R8A8_SSCALED";
978                 case VK_FORMAT_B8G8R8A8_UINT:                                                           return "VK_FORMAT_B8G8R8A8_UINT";
979                 case VK_FORMAT_B8G8R8A8_SINT:                                                           return "VK_FORMAT_B8G8R8A8_SINT";
980                 case VK_FORMAT_B8G8R8A8_SRGB:                                                           return "VK_FORMAT_B8G8R8A8_SRGB";
981                 case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
982                 case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
983                 case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
984                 case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
985                 case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
986                 case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
987                 case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
988                 case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
989                 case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
990                 case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
991                 case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
992                 case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
993                 case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
994                 case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
995                 case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
996                 case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
997                 case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
998                 case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
999                 case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
1000                 case VK_FORMAT_R16_UNORM:                                                                       return "VK_FORMAT_R16_UNORM";
1001                 case VK_FORMAT_R16_SNORM:                                                                       return "VK_FORMAT_R16_SNORM";
1002                 case VK_FORMAT_R16_USCALED:                                                                     return "VK_FORMAT_R16_USCALED";
1003                 case VK_FORMAT_R16_SSCALED:                                                                     return "VK_FORMAT_R16_SSCALED";
1004                 case VK_FORMAT_R16_UINT:                                                                        return "VK_FORMAT_R16_UINT";
1005                 case VK_FORMAT_R16_SINT:                                                                        return "VK_FORMAT_R16_SINT";
1006                 case VK_FORMAT_R16_SFLOAT:                                                                      return "VK_FORMAT_R16_SFLOAT";
1007                 case VK_FORMAT_R16G16_UNORM:                                                            return "VK_FORMAT_R16G16_UNORM";
1008                 case VK_FORMAT_R16G16_SNORM:                                                            return "VK_FORMAT_R16G16_SNORM";
1009                 case VK_FORMAT_R16G16_USCALED:                                                          return "VK_FORMAT_R16G16_USCALED";
1010                 case VK_FORMAT_R16G16_SSCALED:                                                          return "VK_FORMAT_R16G16_SSCALED";
1011                 case VK_FORMAT_R16G16_UINT:                                                                     return "VK_FORMAT_R16G16_UINT";
1012                 case VK_FORMAT_R16G16_SINT:                                                                     return "VK_FORMAT_R16G16_SINT";
1013                 case VK_FORMAT_R16G16_SFLOAT:                                                           return "VK_FORMAT_R16G16_SFLOAT";
1014                 case VK_FORMAT_R16G16B16_UNORM:                                                         return "VK_FORMAT_R16G16B16_UNORM";
1015                 case VK_FORMAT_R16G16B16_SNORM:                                                         return "VK_FORMAT_R16G16B16_SNORM";
1016                 case VK_FORMAT_R16G16B16_USCALED:                                                       return "VK_FORMAT_R16G16B16_USCALED";
1017                 case VK_FORMAT_R16G16B16_SSCALED:                                                       return "VK_FORMAT_R16G16B16_SSCALED";
1018                 case VK_FORMAT_R16G16B16_UINT:                                                          return "VK_FORMAT_R16G16B16_UINT";
1019                 case VK_FORMAT_R16G16B16_SINT:                                                          return "VK_FORMAT_R16G16B16_SINT";
1020                 case VK_FORMAT_R16G16B16_SFLOAT:                                                        return "VK_FORMAT_R16G16B16_SFLOAT";
1021                 case VK_FORMAT_R16G16B16A16_UNORM:                                                      return "VK_FORMAT_R16G16B16A16_UNORM";
1022                 case VK_FORMAT_R16G16B16A16_SNORM:                                                      return "VK_FORMAT_R16G16B16A16_SNORM";
1023                 case VK_FORMAT_R16G16B16A16_USCALED:                                            return "VK_FORMAT_R16G16B16A16_USCALED";
1024                 case VK_FORMAT_R16G16B16A16_SSCALED:                                            return "VK_FORMAT_R16G16B16A16_SSCALED";
1025                 case VK_FORMAT_R16G16B16A16_UINT:                                                       return "VK_FORMAT_R16G16B16A16_UINT";
1026                 case VK_FORMAT_R16G16B16A16_SINT:                                                       return "VK_FORMAT_R16G16B16A16_SINT";
1027                 case VK_FORMAT_R16G16B16A16_SFLOAT:                                                     return "VK_FORMAT_R16G16B16A16_SFLOAT";
1028                 case VK_FORMAT_R32_UINT:                                                                        return "VK_FORMAT_R32_UINT";
1029                 case VK_FORMAT_R32_SINT:                                                                        return "VK_FORMAT_R32_SINT";
1030                 case VK_FORMAT_R32_SFLOAT:                                                                      return "VK_FORMAT_R32_SFLOAT";
1031                 case VK_FORMAT_R32G32_UINT:                                                                     return "VK_FORMAT_R32G32_UINT";
1032                 case VK_FORMAT_R32G32_SINT:                                                                     return "VK_FORMAT_R32G32_SINT";
1033                 case VK_FORMAT_R32G32_SFLOAT:                                                           return "VK_FORMAT_R32G32_SFLOAT";
1034                 case VK_FORMAT_R32G32B32_UINT:                                                          return "VK_FORMAT_R32G32B32_UINT";
1035                 case VK_FORMAT_R32G32B32_SINT:                                                          return "VK_FORMAT_R32G32B32_SINT";
1036                 case VK_FORMAT_R32G32B32_SFLOAT:                                                        return "VK_FORMAT_R32G32B32_SFLOAT";
1037                 case VK_FORMAT_R32G32B32A32_UINT:                                                       return "VK_FORMAT_R32G32B32A32_UINT";
1038                 case VK_FORMAT_R32G32B32A32_SINT:                                                       return "VK_FORMAT_R32G32B32A32_SINT";
1039                 case VK_FORMAT_R32G32B32A32_SFLOAT:                                                     return "VK_FORMAT_R32G32B32A32_SFLOAT";
1040                 case VK_FORMAT_R64_UINT:                                                                        return "VK_FORMAT_R64_UINT";
1041                 case VK_FORMAT_R64_SINT:                                                                        return "VK_FORMAT_R64_SINT";
1042                 case VK_FORMAT_R64_SFLOAT:                                                                      return "VK_FORMAT_R64_SFLOAT";
1043                 case VK_FORMAT_R64G64_UINT:                                                                     return "VK_FORMAT_R64G64_UINT";
1044                 case VK_FORMAT_R64G64_SINT:                                                                     return "VK_FORMAT_R64G64_SINT";
1045                 case VK_FORMAT_R64G64_SFLOAT:                                                           return "VK_FORMAT_R64G64_SFLOAT";
1046                 case VK_FORMAT_R64G64B64_UINT:                                                          return "VK_FORMAT_R64G64B64_UINT";
1047                 case VK_FORMAT_R64G64B64_SINT:                                                          return "VK_FORMAT_R64G64B64_SINT";
1048                 case VK_FORMAT_R64G64B64_SFLOAT:                                                        return "VK_FORMAT_R64G64B64_SFLOAT";
1049                 case VK_FORMAT_R64G64B64A64_UINT:                                                       return "VK_FORMAT_R64G64B64A64_UINT";
1050                 case VK_FORMAT_R64G64B64A64_SINT:                                                       return "VK_FORMAT_R64G64B64A64_SINT";
1051                 case VK_FORMAT_R64G64B64A64_SFLOAT:                                                     return "VK_FORMAT_R64G64B64A64_SFLOAT";
1052                 case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                         return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
1053                 case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                          return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
1054                 case VK_FORMAT_D16_UNORM:                                                                       return "VK_FORMAT_D16_UNORM";
1055                 case VK_FORMAT_X8_D24_UNORM_PACK32:                                                     return "VK_FORMAT_X8_D24_UNORM_PACK32";
1056                 case VK_FORMAT_D32_SFLOAT:                                                                      return "VK_FORMAT_D32_SFLOAT";
1057                 case VK_FORMAT_S8_UINT:                                                                         return "VK_FORMAT_S8_UINT";
1058                 case VK_FORMAT_D16_UNORM_S8_UINT:                                                       return "VK_FORMAT_D16_UNORM_S8_UINT";
1059                 case VK_FORMAT_D24_UNORM_S8_UINT:                                                       return "VK_FORMAT_D24_UNORM_S8_UINT";
1060                 case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                      return "VK_FORMAT_D32_SFLOAT_S8_UINT";
1061                 case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                     return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
1062                 case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                      return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
1063                 case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
1064                 case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                     return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
1065                 case VK_FORMAT_BC2_UNORM_BLOCK:                                                         return "VK_FORMAT_BC2_UNORM_BLOCK";
1066                 case VK_FORMAT_BC2_SRGB_BLOCK:                                                          return "VK_FORMAT_BC2_SRGB_BLOCK";
1067                 case VK_FORMAT_BC3_UNORM_BLOCK:                                                         return "VK_FORMAT_BC3_UNORM_BLOCK";
1068                 case VK_FORMAT_BC3_SRGB_BLOCK:                                                          return "VK_FORMAT_BC3_SRGB_BLOCK";
1069                 case VK_FORMAT_BC4_UNORM_BLOCK:                                                         return "VK_FORMAT_BC4_UNORM_BLOCK";
1070                 case VK_FORMAT_BC4_SNORM_BLOCK:                                                         return "VK_FORMAT_BC4_SNORM_BLOCK";
1071                 case VK_FORMAT_BC5_UNORM_BLOCK:                                                         return "VK_FORMAT_BC5_UNORM_BLOCK";
1072                 case VK_FORMAT_BC5_SNORM_BLOCK:                                                         return "VK_FORMAT_BC5_SNORM_BLOCK";
1073                 case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
1074                 case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
1075                 case VK_FORMAT_BC7_UNORM_BLOCK:                                                         return "VK_FORMAT_BC7_UNORM_BLOCK";
1076                 case VK_FORMAT_BC7_SRGB_BLOCK:                                                          return "VK_FORMAT_BC7_SRGB_BLOCK";
1077                 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                         return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
1078                 case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                          return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
1079                 case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
1080                 case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
1081                 case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
1082                 case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
1083                 case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
1084                 case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
1085                 case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
1086                 case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
1087                 case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
1088                 case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
1089                 case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
1090                 case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
1091                 case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
1092                 case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
1093                 case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
1094                 case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
1095                 case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
1096                 case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
1097                 case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
1098                 case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
1099                 case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
1100                 case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
1101                 case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
1102                 case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
1103                 case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
1104                 case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
1105                 case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
1106                 case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
1107                 case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
1108                 case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
1109                 case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
1110                 case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
1111                 case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
1112                 case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
1113                 case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
1114                 case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
1115                 case VK_FORMAT_G8B8G8R8_422_UNORM:                                                      return "VK_FORMAT_G8B8G8R8_422_UNORM";
1116                 case VK_FORMAT_B8G8R8G8_422_UNORM:                                                      return "VK_FORMAT_B8G8R8G8_422_UNORM";
1117                 case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
1118                 case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
1119                 case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
1120                 case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
1121                 case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
1122                 case VK_FORMAT_R10X6_UNORM_PACK16:                                                      return "VK_FORMAT_R10X6_UNORM_PACK16";
1123                 case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                        return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
1124                 case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                      return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
1125                 case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:          return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
1126                 case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:          return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
1127                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
1128                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
1129                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
1130                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
1131                 case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
1132                 case VK_FORMAT_R12X4_UNORM_PACK16:                                                      return "VK_FORMAT_R12X4_UNORM_PACK16";
1133                 case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                        return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
1134                 case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                      return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
1135                 case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:          return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
1136                 case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:          return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
1137                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
1138                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
1139                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
1140                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
1141                 case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
1142                 case VK_FORMAT_G16B16G16R16_422_UNORM:                                          return "VK_FORMAT_G16B16G16R16_422_UNORM";
1143                 case VK_FORMAT_B16G16R16G16_422_UNORM:                                          return "VK_FORMAT_B16G16R16G16_422_UNORM";
1144                 case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
1145                 case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
1146                 case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
1147                 case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
1148                 case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
1149                 case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
1150                 case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
1151                 case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
1152                 case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
1153                 case VK_FORMAT_A4R4G4B4_UNORM_PACK16:                                           return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
1154                 case VK_FORMAT_A4B4G4R4_UNORM_PACK16:                                           return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
1155                 case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
1156                 case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
1157                 case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
1158                 case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
1159                 case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
1160                 case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
1161                 case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
1162                 case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
1163                 case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
1164                 case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
1165                 case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
1166                 case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
1167                 case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
1168                 case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
1169                 case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
1170                 case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
1171                 case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
1172                 case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:                                     return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
1173                 case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
1174                 case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
1175                 case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
1176                 case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:                                      return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
1177                 case VK_FORMAT_MAX_ENUM:                                                                        return "VK_FORMAT_MAX_ENUM";
1178                 default:                                                                                                        return DE_NULL;
1179         }
1180 }
1181
1182 const char* getImageTilingName (VkImageTiling value)
1183 {
1184         switch (value)
1185         {
1186                 case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
1187                 case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
1188                 case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
1189                 case VK_IMAGE_TILING_MAX_ENUM:                                  return "VK_IMAGE_TILING_MAX_ENUM";
1190                 default:                                                                                return DE_NULL;
1191         }
1192 }
1193
1194 const char* getImageTypeName (VkImageType value)
1195 {
1196         switch (value)
1197         {
1198                 case VK_IMAGE_TYPE_1D:                  return "VK_IMAGE_TYPE_1D";
1199                 case VK_IMAGE_TYPE_2D:                  return "VK_IMAGE_TYPE_2D";
1200                 case VK_IMAGE_TYPE_3D:                  return "VK_IMAGE_TYPE_3D";
1201                 case VK_IMAGE_TYPE_MAX_ENUM:    return "VK_IMAGE_TYPE_MAX_ENUM";
1202                 default:                                                return DE_NULL;
1203         }
1204 }
1205
1206 const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
1207 {
1208         switch (value)
1209         {
1210                 case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
1211                 case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
1212                 case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
1213                 case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
1214                 case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
1215                 case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:                  return "VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM";
1216                 default:                                                                                return DE_NULL;
1217         }
1218 }
1219
1220 const char* getQueryTypeName (VkQueryType value)
1221 {
1222         switch (value)
1223         {
1224                 case VK_QUERY_TYPE_OCCLUSION:                                                                                                           return "VK_QUERY_TYPE_OCCLUSION";
1225                 case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
1226                 case VK_QUERY_TYPE_TIMESTAMP:                                                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
1227                 case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
1228                 case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
1229                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
1230                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:                                           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
1231                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:                                       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
1232                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:                                            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
1233                 case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
1234                 case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                                                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
1235                 case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:                                                                            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
1236                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:      return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
1237                 case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:                                                                     return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
1238                 case VK_QUERY_TYPE_MAX_ENUM:                                                                                                            return "VK_QUERY_TYPE_MAX_ENUM";
1239                 default:                                                                                                                                                        return DE_NULL;
1240         }
1241 }
1242
1243 const char* getSharingModeName (VkSharingMode value)
1244 {
1245         switch (value)
1246         {
1247                 case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
1248                 case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
1249                 case VK_SHARING_MODE_MAX_ENUM:          return "VK_SHARING_MODE_MAX_ENUM";
1250                 default:                                                        return DE_NULL;
1251         }
1252 }
1253
1254 const char* getComponentSwizzleName (VkComponentSwizzle value)
1255 {
1256         switch (value)
1257         {
1258                 case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
1259                 case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
1260                 case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
1261                 case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
1262                 case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
1263                 case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
1264                 case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
1265                 case VK_COMPONENT_SWIZZLE_MAX_ENUM:     return "VK_COMPONENT_SWIZZLE_MAX_ENUM";
1266                 default:                                                        return DE_NULL;
1267         }
1268 }
1269
1270 const char* getImageViewTypeName (VkImageViewType value)
1271 {
1272         switch (value)
1273         {
1274                 case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
1275                 case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
1276                 case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
1277                 case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
1278                 case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
1279                 case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
1280                 case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
1281                 case VK_IMAGE_VIEW_TYPE_MAX_ENUM:       return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
1282                 default:                                                        return DE_NULL;
1283         }
1284 }
1285
1286 const char* getBlendFactorName (VkBlendFactor value)
1287 {
1288         switch (value)
1289         {
1290                 case VK_BLEND_FACTOR_ZERO:                                              return "VK_BLEND_FACTOR_ZERO";
1291                 case VK_BLEND_FACTOR_ONE:                                               return "VK_BLEND_FACTOR_ONE";
1292                 case VK_BLEND_FACTOR_SRC_COLOR:                                 return "VK_BLEND_FACTOR_SRC_COLOR";
1293                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
1294                 case VK_BLEND_FACTOR_DST_COLOR:                                 return "VK_BLEND_FACTOR_DST_COLOR";
1295                 case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
1296                 case VK_BLEND_FACTOR_SRC_ALPHA:                                 return "VK_BLEND_FACTOR_SRC_ALPHA";
1297                 case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
1298                 case VK_BLEND_FACTOR_DST_ALPHA:                                 return "VK_BLEND_FACTOR_DST_ALPHA";
1299                 case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:               return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
1300                 case VK_BLEND_FACTOR_CONSTANT_COLOR:                    return "VK_BLEND_FACTOR_CONSTANT_COLOR";
1301                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
1302                 case VK_BLEND_FACTOR_CONSTANT_ALPHA:                    return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
1303                 case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:  return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
1304                 case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:                return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
1305                 case VK_BLEND_FACTOR_SRC1_COLOR:                                return "VK_BLEND_FACTOR_SRC1_COLOR";
1306                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
1307                 case VK_BLEND_FACTOR_SRC1_ALPHA:                                return "VK_BLEND_FACTOR_SRC1_ALPHA";
1308                 case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
1309                 case VK_BLEND_FACTOR_MAX_ENUM:                                  return "VK_BLEND_FACTOR_MAX_ENUM";
1310                 default:                                                                                return DE_NULL;
1311         }
1312 }
1313
1314 const char* getBlendOpName (VkBlendOp value)
1315 {
1316         switch (value)
1317         {
1318                 case VK_BLEND_OP_ADD:                                           return "VK_BLEND_OP_ADD";
1319                 case VK_BLEND_OP_SUBTRACT:                                      return "VK_BLEND_OP_SUBTRACT";
1320                 case VK_BLEND_OP_REVERSE_SUBTRACT:                      return "VK_BLEND_OP_REVERSE_SUBTRACT";
1321                 case VK_BLEND_OP_MIN:                                           return "VK_BLEND_OP_MIN";
1322                 case VK_BLEND_OP_MAX:                                           return "VK_BLEND_OP_MAX";
1323                 case VK_BLEND_OP_ZERO_EXT:                                      return "VK_BLEND_OP_ZERO_EXT";
1324                 case VK_BLEND_OP_SRC_EXT:                                       return "VK_BLEND_OP_SRC_EXT";
1325                 case VK_BLEND_OP_DST_EXT:                                       return "VK_BLEND_OP_DST_EXT";
1326                 case VK_BLEND_OP_SRC_OVER_EXT:                          return "VK_BLEND_OP_SRC_OVER_EXT";
1327                 case VK_BLEND_OP_DST_OVER_EXT:                          return "VK_BLEND_OP_DST_OVER_EXT";
1328                 case VK_BLEND_OP_SRC_IN_EXT:                            return "VK_BLEND_OP_SRC_IN_EXT";
1329                 case VK_BLEND_OP_DST_IN_EXT:                            return "VK_BLEND_OP_DST_IN_EXT";
1330                 case VK_BLEND_OP_SRC_OUT_EXT:                           return "VK_BLEND_OP_SRC_OUT_EXT";
1331                 case VK_BLEND_OP_DST_OUT_EXT:                           return "VK_BLEND_OP_DST_OUT_EXT";
1332                 case VK_BLEND_OP_SRC_ATOP_EXT:                          return "VK_BLEND_OP_SRC_ATOP_EXT";
1333                 case VK_BLEND_OP_DST_ATOP_EXT:                          return "VK_BLEND_OP_DST_ATOP_EXT";
1334                 case VK_BLEND_OP_XOR_EXT:                                       return "VK_BLEND_OP_XOR_EXT";
1335                 case VK_BLEND_OP_MULTIPLY_EXT:                          return "VK_BLEND_OP_MULTIPLY_EXT";
1336                 case VK_BLEND_OP_SCREEN_EXT:                            return "VK_BLEND_OP_SCREEN_EXT";
1337                 case VK_BLEND_OP_OVERLAY_EXT:                           return "VK_BLEND_OP_OVERLAY_EXT";
1338                 case VK_BLEND_OP_DARKEN_EXT:                            return "VK_BLEND_OP_DARKEN_EXT";
1339                 case VK_BLEND_OP_LIGHTEN_EXT:                           return "VK_BLEND_OP_LIGHTEN_EXT";
1340                 case VK_BLEND_OP_COLORDODGE_EXT:                        return "VK_BLEND_OP_COLORDODGE_EXT";
1341                 case VK_BLEND_OP_COLORBURN_EXT:                         return "VK_BLEND_OP_COLORBURN_EXT";
1342                 case VK_BLEND_OP_HARDLIGHT_EXT:                         return "VK_BLEND_OP_HARDLIGHT_EXT";
1343                 case VK_BLEND_OP_SOFTLIGHT_EXT:                         return "VK_BLEND_OP_SOFTLIGHT_EXT";
1344                 case VK_BLEND_OP_DIFFERENCE_EXT:                        return "VK_BLEND_OP_DIFFERENCE_EXT";
1345                 case VK_BLEND_OP_EXCLUSION_EXT:                         return "VK_BLEND_OP_EXCLUSION_EXT";
1346                 case VK_BLEND_OP_INVERT_EXT:                            return "VK_BLEND_OP_INVERT_EXT";
1347                 case VK_BLEND_OP_INVERT_RGB_EXT:                        return "VK_BLEND_OP_INVERT_RGB_EXT";
1348                 case VK_BLEND_OP_LINEARDODGE_EXT:                       return "VK_BLEND_OP_LINEARDODGE_EXT";
1349                 case VK_BLEND_OP_LINEARBURN_EXT:                        return "VK_BLEND_OP_LINEARBURN_EXT";
1350                 case VK_BLEND_OP_VIVIDLIGHT_EXT:                        return "VK_BLEND_OP_VIVIDLIGHT_EXT";
1351                 case VK_BLEND_OP_LINEARLIGHT_EXT:                       return "VK_BLEND_OP_LINEARLIGHT_EXT";
1352                 case VK_BLEND_OP_PINLIGHT_EXT:                          return "VK_BLEND_OP_PINLIGHT_EXT";
1353                 case VK_BLEND_OP_HARDMIX_EXT:                           return "VK_BLEND_OP_HARDMIX_EXT";
1354                 case VK_BLEND_OP_HSL_HUE_EXT:                           return "VK_BLEND_OP_HSL_HUE_EXT";
1355                 case VK_BLEND_OP_HSL_SATURATION_EXT:            return "VK_BLEND_OP_HSL_SATURATION_EXT";
1356                 case VK_BLEND_OP_HSL_COLOR_EXT:                         return "VK_BLEND_OP_HSL_COLOR_EXT";
1357                 case VK_BLEND_OP_HSL_LUMINOSITY_EXT:            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
1358                 case VK_BLEND_OP_PLUS_EXT:                                      return "VK_BLEND_OP_PLUS_EXT";
1359                 case VK_BLEND_OP_PLUS_CLAMPED_EXT:                      return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
1360                 case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:        return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
1361                 case VK_BLEND_OP_PLUS_DARKER_EXT:                       return "VK_BLEND_OP_PLUS_DARKER_EXT";
1362                 case VK_BLEND_OP_MINUS_EXT:                                     return "VK_BLEND_OP_MINUS_EXT";
1363                 case VK_BLEND_OP_MINUS_CLAMPED_EXT:                     return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
1364                 case VK_BLEND_OP_CONTRAST_EXT:                          return "VK_BLEND_OP_CONTRAST_EXT";
1365                 case VK_BLEND_OP_INVERT_OVG_EXT:                        return "VK_BLEND_OP_INVERT_OVG_EXT";
1366                 case VK_BLEND_OP_RED_EXT:                                       return "VK_BLEND_OP_RED_EXT";
1367                 case VK_BLEND_OP_GREEN_EXT:                                     return "VK_BLEND_OP_GREEN_EXT";
1368                 case VK_BLEND_OP_BLUE_EXT:                                      return "VK_BLEND_OP_BLUE_EXT";
1369                 case VK_BLEND_OP_MAX_ENUM:                                      return "VK_BLEND_OP_MAX_ENUM";
1370                 default:                                                                        return DE_NULL;
1371         }
1372 }
1373
1374 const char* getCompareOpName (VkCompareOp value)
1375 {
1376         switch (value)
1377         {
1378                 case VK_COMPARE_OP_NEVER:                               return "VK_COMPARE_OP_NEVER";
1379                 case VK_COMPARE_OP_LESS:                                return "VK_COMPARE_OP_LESS";
1380                 case VK_COMPARE_OP_EQUAL:                               return "VK_COMPARE_OP_EQUAL";
1381                 case VK_COMPARE_OP_LESS_OR_EQUAL:               return "VK_COMPARE_OP_LESS_OR_EQUAL";
1382                 case VK_COMPARE_OP_GREATER:                             return "VK_COMPARE_OP_GREATER";
1383                 case VK_COMPARE_OP_NOT_EQUAL:                   return "VK_COMPARE_OP_NOT_EQUAL";
1384                 case VK_COMPARE_OP_GREATER_OR_EQUAL:    return "VK_COMPARE_OP_GREATER_OR_EQUAL";
1385                 case VK_COMPARE_OP_ALWAYS:                              return "VK_COMPARE_OP_ALWAYS";
1386                 case VK_COMPARE_OP_MAX_ENUM:                    return "VK_COMPARE_OP_MAX_ENUM";
1387                 default:                                                                return DE_NULL;
1388         }
1389 }
1390
1391 const char* getDynamicStateName (VkDynamicState value)
1392 {
1393         switch (value)
1394         {
1395                 case VK_DYNAMIC_STATE_VIEWPORT:                                                         return "VK_DYNAMIC_STATE_VIEWPORT";
1396                 case VK_DYNAMIC_STATE_SCISSOR:                                                          return "VK_DYNAMIC_STATE_SCISSOR";
1397                 case VK_DYNAMIC_STATE_LINE_WIDTH:                                                       return "VK_DYNAMIC_STATE_LINE_WIDTH";
1398                 case VK_DYNAMIC_STATE_DEPTH_BIAS:                                                       return "VK_DYNAMIC_STATE_DEPTH_BIAS";
1399                 case VK_DYNAMIC_STATE_BLEND_CONSTANTS:                                          return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
1400                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS:                                                     return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
1401                 case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:                                     return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
1402                 case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:                                       return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
1403                 case VK_DYNAMIC_STATE_STENCIL_REFERENCE:                                        return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
1404                 case VK_DYNAMIC_STATE_CULL_MODE:                                                        return "VK_DYNAMIC_STATE_CULL_MODE";
1405                 case VK_DYNAMIC_STATE_FRONT_FACE:                                                       return "VK_DYNAMIC_STATE_FRONT_FACE";
1406                 case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:                                       return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
1407                 case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:                                      return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
1408                 case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:                                       return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
1409                 case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:                      return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
1410                 case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
1411                 case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:                                       return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
1412                 case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:                                         return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
1413                 case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:                         return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
1414                 case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:                                      return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
1415                 case VK_DYNAMIC_STATE_STENCIL_OP:                                                       return "VK_DYNAMIC_STATE_STENCIL_OP";
1416                 case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:                        return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
1417                 case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
1418                 case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:                         return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
1419                 case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:                            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
1420                 case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:                            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
1421                 case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:                                     return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
1422                 case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:      return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
1423                 case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:         return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
1424                 case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:          return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
1425                 case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                     return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
1426                 case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                        return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
1427                 case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                         return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
1428                 case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:                                         return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
1429                 case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:                         return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
1430                 case VK_DYNAMIC_STATE_LOGIC_OP_EXT:                                                     return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
1431                 case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:                           return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
1432                 case VK_DYNAMIC_STATE_MAX_ENUM:                                                         return "VK_DYNAMIC_STATE_MAX_ENUM";
1433                 default:                                                                                                        return DE_NULL;
1434         }
1435 }
1436
1437 const char* getFrontFaceName (VkFrontFace value)
1438 {
1439         switch (value)
1440         {
1441                 case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
1442                 case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
1443                 case VK_FRONT_FACE_MAX_ENUM:                    return "VK_FRONT_FACE_MAX_ENUM";
1444                 default:                                                                return DE_NULL;
1445         }
1446 }
1447
1448 const char* getVertexInputRateName (VkVertexInputRate value)
1449 {
1450         switch (value)
1451         {
1452                 case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
1453                 case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
1454                 case VK_VERTEX_INPUT_RATE_MAX_ENUM:     return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
1455                 default:                                                        return DE_NULL;
1456         }
1457 }
1458
1459 const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
1460 {
1461         switch (value)
1462         {
1463                 case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
1464                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
1465                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
1466                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
1467                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
1468                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
1469                 case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
1470                 case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
1471                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
1472                 case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
1473                 case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
1474                 case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:                                            return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
1475                 default:                                                                                                        return DE_NULL;
1476         }
1477 }
1478
1479 const char* getPolygonModeName (VkPolygonMode value)
1480 {
1481         switch (value)
1482         {
1483                 case VK_POLYGON_MODE_FILL:                              return "VK_POLYGON_MODE_FILL";
1484                 case VK_POLYGON_MODE_LINE:                              return "VK_POLYGON_MODE_LINE";
1485                 case VK_POLYGON_MODE_POINT:                             return "VK_POLYGON_MODE_POINT";
1486                 case VK_POLYGON_MODE_FILL_RECTANGLE_NV: return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
1487                 case VK_POLYGON_MODE_MAX_ENUM:                  return "VK_POLYGON_MODE_MAX_ENUM";
1488                 default:                                                                return DE_NULL;
1489         }
1490 }
1491
1492 const char* getStencilOpName (VkStencilOp value)
1493 {
1494         switch (value)
1495         {
1496                 case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
1497                 case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
1498                 case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
1499                 case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
1500                 case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
1501                 case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
1502                 case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
1503                 case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
1504                 case VK_STENCIL_OP_MAX_ENUM:                    return "VK_STENCIL_OP_MAX_ENUM";
1505                 default:                                                                return DE_NULL;
1506         }
1507 }
1508
1509 const char* getLogicOpName (VkLogicOp value)
1510 {
1511         switch (value)
1512         {
1513                 case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
1514                 case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
1515                 case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
1516                 case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
1517                 case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
1518                 case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
1519                 case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
1520                 case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
1521                 case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
1522                 case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
1523                 case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
1524                 case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
1525                 case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
1526                 case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
1527                 case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
1528                 case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
1529                 case VK_LOGIC_OP_MAX_ENUM:              return "VK_LOGIC_OP_MAX_ENUM";
1530                 default:                                                return DE_NULL;
1531         }
1532 }
1533
1534 const char* getBorderColorName (VkBorderColor value)
1535 {
1536         switch (value)
1537         {
1538                 case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
1539                 case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
1540                 case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
1541                 case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
1542                 case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
1543                 case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
1544                 case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
1545                 case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
1546                 case VK_BORDER_COLOR_MAX_ENUM:                                  return "VK_BORDER_COLOR_MAX_ENUM";
1547                 default:                                                                                return DE_NULL;
1548         }
1549 }
1550
1551 const char* getFilterName (VkFilter value)
1552 {
1553         switch (value)
1554         {
1555                 case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
1556                 case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
1557                 case VK_FILTER_CUBIC_IMG:       return "VK_FILTER_CUBIC_IMG";
1558                 case VK_FILTER_MAX_ENUM:        return "VK_FILTER_MAX_ENUM";
1559                 default:                                        return DE_NULL;
1560         }
1561 }
1562
1563 const char* getSamplerAddressModeName (VkSamplerAddressMode value)
1564 {
1565         switch (value)
1566         {
1567                 case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
1568                 case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
1569                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
1570                 case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
1571                 case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
1572                 case VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:                          return "VK_SAMPLER_ADDRESS_MODE_MAX_ENUM";
1573                 default:                                                                                        return DE_NULL;
1574         }
1575 }
1576
1577 const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
1578 {
1579         switch (value)
1580         {
1581                 case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
1582                 case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
1583                 case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:   return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
1584                 default:                                                                return DE_NULL;
1585         }
1586 }
1587
1588 const char* getDescriptorTypeName (VkDescriptorType value)
1589 {
1590         switch (value)
1591         {
1592                 case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
1593                 case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
1594                 case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
1595                 case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
1596                 case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
1597                 case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
1598                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
1599                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
1600                 case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
1601                 case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
1602                 case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
1603                 case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:           return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
1604                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
1605                 case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
1606                 case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:                          return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
1607                 case VK_DESCRIPTOR_TYPE_MAX_ENUM:                                       return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
1608                 default:                                                                                        return DE_NULL;
1609         }
1610 }
1611
1612 const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
1613 {
1614         switch (value)
1615         {
1616                 case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
1617                 case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
1618                 case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
1619                 case VK_ATTACHMENT_LOAD_OP_NONE_EXT:    return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
1620                 case VK_ATTACHMENT_LOAD_OP_MAX_ENUM:    return "VK_ATTACHMENT_LOAD_OP_MAX_ENUM";
1621                 default:                                                                return DE_NULL;
1622         }
1623 }
1624
1625 const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
1626 {
1627         switch (value)
1628         {
1629                 case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
1630                 case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
1631                 case VK_ATTACHMENT_STORE_OP_NONE:               return "VK_ATTACHMENT_STORE_OP_NONE";
1632                 case VK_ATTACHMENT_STORE_OP_MAX_ENUM:   return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
1633                 default:                                                                return DE_NULL;
1634         }
1635 }
1636
1637 const char* getPipelineBindPointName (VkPipelineBindPoint value)
1638 {
1639         switch (value)
1640         {
1641                 case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
1642                 case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
1643                 case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
1644                 case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
1645                 case VK_PIPELINE_BIND_POINT_MAX_ENUM:                           return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
1646                 default:                                                                                        return DE_NULL;
1647         }
1648 }
1649
1650 const char* getCommandBufferLevelName (VkCommandBufferLevel value)
1651 {
1652         switch (value)
1653         {
1654                 case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
1655                 case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
1656                 case VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:  return "VK_COMMAND_BUFFER_LEVEL_MAX_ENUM";
1657                 default:                                                                return DE_NULL;
1658         }
1659 }
1660
1661 const char* getIndexTypeName (VkIndexType value)
1662 {
1663         switch (value)
1664         {
1665                 case VK_INDEX_TYPE_UINT16:              return "VK_INDEX_TYPE_UINT16";
1666                 case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
1667                 case VK_INDEX_TYPE_NONE_KHR:    return "VK_INDEX_TYPE_NONE_KHR";
1668                 case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
1669                 case VK_INDEX_TYPE_MAX_ENUM:    return "VK_INDEX_TYPE_MAX_ENUM";
1670                 default:                                                return DE_NULL;
1671         }
1672 }
1673
1674 const char* getSubpassContentsName (VkSubpassContents value)
1675 {
1676         switch (value)
1677         {
1678                 case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
1679                 case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
1680                 case VK_SUBPASS_CONTENTS_MAX_ENUM:                                      return "VK_SUBPASS_CONTENTS_MAX_ENUM";
1681                 default:                                                                                        return DE_NULL;
1682         }
1683 }
1684
1685 const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
1686 {
1687         switch (value)
1688         {
1689                 case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
1690                 case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
1691                 case VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM:                               return "VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM";
1692                 default:                                                                                                return DE_NULL;
1693         }
1694 }
1695
1696 const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
1697 {
1698         switch (value)
1699         {
1700                 case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
1701                 case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
1702                 case VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM:    return "VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM";
1703                 default:                                                                                return DE_NULL;
1704         }
1705 }
1706
1707 const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
1708 {
1709         switch (value)
1710         {
1711                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
1712                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
1713                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
1714                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
1715                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
1716                 case VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM:                return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM";
1717                 default:                                                                                                return DE_NULL;
1718         }
1719 }
1720
1721 const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
1722 {
1723         switch (value)
1724         {
1725                 case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
1726                 case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
1727                 case VK_SAMPLER_YCBCR_RANGE_MAX_ENUM:   return "VK_SAMPLER_YCBCR_RANGE_MAX_ENUM";
1728                 default:                                                                return DE_NULL;
1729         }
1730 }
1731
1732 const char* getChromaLocationName (VkChromaLocation value)
1733 {
1734         switch (value)
1735         {
1736                 case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
1737                 case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
1738                 case VK_CHROMA_LOCATION_MAX_ENUM:               return "VK_CHROMA_LOCATION_MAX_ENUM";
1739                 default:                                                                return DE_NULL;
1740         }
1741 }
1742
1743 const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
1744 {
1745         switch (value)
1746         {
1747                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
1748                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
1749                 case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM:                               return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM";
1750                 default:                                                                                                                return DE_NULL;
1751         }
1752 }
1753
1754 const char* getDriverIdName (VkDriverId value)
1755 {
1756         switch (value)
1757         {
1758                 case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
1759                 case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
1760                 case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
1761                 case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
1762                 case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
1763                 case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
1764                 case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
1765                 case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
1766                 case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
1767                 case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
1768                 case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
1769                 case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
1770                 case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
1771                 case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
1772                 case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
1773                 case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
1774                 case VK_DRIVER_ID_VERISILICON_PROPRIETARY:              return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
1775                 case VK_DRIVER_ID_MESA_TURNIP:                                  return "VK_DRIVER_ID_MESA_TURNIP";
1776                 case VK_DRIVER_ID_MESA_V3DV:                                    return "VK_DRIVER_ID_MESA_V3DV";
1777                 case VK_DRIVER_ID_MESA_PANVK:                                   return "VK_DRIVER_ID_MESA_PANVK";
1778                 case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:                  return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
1779                 case VK_DRIVER_ID_MESA_VENUS:                                   return "VK_DRIVER_ID_MESA_VENUS";
1780                 case VK_DRIVER_ID_MAX_ENUM:                                             return "VK_DRIVER_ID_MAX_ENUM";
1781                 default:                                                                                return DE_NULL;
1782         }
1783 }
1784
1785 const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
1786 {
1787         switch (value)
1788         {
1789                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
1790                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
1791                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
1792                 case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM:    return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM";
1793                 default:                                                                                                return DE_NULL;
1794         }
1795 }
1796
1797 const char* getSamplerReductionModeName (VkSamplerReductionMode value)
1798 {
1799         switch (value)
1800         {
1801                 case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
1802                 case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
1803                 case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
1804                 case VK_SAMPLER_REDUCTION_MODE_MAX_ENUM:                        return "VK_SAMPLER_REDUCTION_MODE_MAX_ENUM";
1805                 default:                                                                                        return DE_NULL;
1806         }
1807 }
1808
1809 const char* getSemaphoreTypeName (VkSemaphoreType value)
1810 {
1811         switch (value)
1812         {
1813                 case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
1814                 case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
1815                 case VK_SEMAPHORE_TYPE_MAX_ENUM:        return "VK_SEMAPHORE_TYPE_MAX_ENUM";
1816                 default:                                                        return DE_NULL;
1817         }
1818 }
1819
1820 const char* getPresentModeKHRName (VkPresentModeKHR value)
1821 {
1822         switch (value)
1823         {
1824                 case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
1825                 case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
1826                 case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
1827                 case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
1828                 case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
1829                 case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
1830                 case VK_PRESENT_MODE_MAX_ENUM_KHR:                                      return "VK_PRESENT_MODE_MAX_ENUM_KHR";
1831                 default:                                                                                        return DE_NULL;
1832         }
1833 }
1834
1835 const char* getColorSpaceKHRName (VkColorSpaceKHR value)
1836 {
1837         switch (value)
1838         {
1839                 case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:                         return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
1840                 case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:           return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
1841                 case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:           return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
1842                 case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
1843                 case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:                       return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
1844                 case VK_COLOR_SPACE_BT709_LINEAR_EXT:                           return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
1845                 case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:                        return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
1846                 case VK_COLOR_SPACE_BT2020_LINEAR_EXT:                          return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
1847                 case VK_COLOR_SPACE_HDR10_ST2084_EXT:                           return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
1848                 case VK_COLOR_SPACE_DOLBYVISION_EXT:                            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
1849                 case VK_COLOR_SPACE_HDR10_HLG_EXT:                                      return "VK_COLOR_SPACE_HDR10_HLG_EXT";
1850                 case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:                        return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
1851                 case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:                     return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
1852                 case VK_COLOR_SPACE_PASS_THROUGH_EXT:                           return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
1853                 case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:        return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
1854                 case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
1855                 case VK_COLOR_SPACE_MAX_ENUM_KHR:                                       return "VK_COLOR_SPACE_MAX_ENUM_KHR";
1856                 default:                                                                                        return DE_NULL;
1857         }
1858 }
1859
1860 const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
1861 {
1862         switch (value)
1863         {
1864                 case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
1865                 case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
1866                 case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
1867                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
1868                 case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
1869                 case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
1870                 case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
1871                 case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
1872                 case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
1873                 case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
1874                 case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
1875                 case VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR:                  return "VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR";
1876                 default:                                                                                                return DE_NULL;
1877         }
1878 }
1879
1880 const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
1881 {
1882         switch (value)
1883         {
1884                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
1885                 case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
1886                 case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
1887                 case VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR:                 return "VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR";
1888                 default:                                                                                                return DE_NULL;
1889         }
1890 }
1891
1892 const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
1893 {
1894         switch (value)
1895         {
1896                 case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
1897                 case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
1898                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
1899                 case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
1900                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
1901                 case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
1902                 case VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR:       return "VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR";
1903                 default:                                                                                        return DE_NULL;
1904         }
1905 }
1906
1907 const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
1908 {
1909         switch (value)
1910         {
1911                 case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
1912                 case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
1913                 case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
1914                 case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
1915                 case VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR";
1916                 default:                                                                        return DE_NULL;
1917         }
1918 }
1919
1920 const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
1921 {
1922         switch (value)
1923         {
1924                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
1925                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
1926                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
1927                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
1928                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
1929                 case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR: return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR";
1930                 default:                                                                                                return DE_NULL;
1931         }
1932 }
1933
1934 const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
1935 {
1936         switch (value)
1937         {
1938                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
1939                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
1940                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
1941                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
1942                 case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR:      return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR";
1943                 default:                                                                                                        return DE_NULL;
1944         }
1945 }
1946
1947 const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
1948 {
1949         switch (value)
1950         {
1951                 case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
1952                 case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
1953                 case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
1954                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
1955                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
1956                 case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
1957                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
1958                 case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
1959                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
1960                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
1961                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
1962                 case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
1963                 case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
1964                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
1965                 case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
1966                 case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
1967                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
1968                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
1969                 case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
1970                 case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
1971                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
1972                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
1973                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
1974                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
1975                 case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
1976                 case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
1977                 case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
1978                 case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
1979                 case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
1980                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
1981                 case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:                          return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
1982                 case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
1983                 case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
1984                 case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
1985                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
1986                 case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
1987                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
1988                 case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
1989                 case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
1990                 case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
1991                 default:                                                                                                                        return DE_NULL;
1992         }
1993 }
1994
1995 const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
1996 {
1997         switch (value)
1998         {
1999                 case VK_RASTERIZATION_ORDER_STRICT_AMD:         return "VK_RASTERIZATION_ORDER_STRICT_AMD";
2000                 case VK_RASTERIZATION_ORDER_RELAXED_AMD:        return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
2001                 case VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:       return "VK_RASTERIZATION_ORDER_MAX_ENUM_AMD";
2002                 default:                                                                        return DE_NULL;
2003         }
2004 }
2005
2006 const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
2007 {
2008         switch (value)
2009         {
2010                 case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
2011                 case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
2012                 case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
2013                 case VK_SHADER_INFO_TYPE_MAX_ENUM_AMD:          return "VK_SHADER_INFO_TYPE_MAX_ENUM_AMD";
2014                 default:                                                                        return DE_NULL;
2015         }
2016 }
2017
2018 const char* getValidationCheckEXTName (VkValidationCheckEXT value)
2019 {
2020         switch (value)
2021         {
2022                 case VK_VALIDATION_CHECK_ALL_EXT:               return "VK_VALIDATION_CHECK_ALL_EXT";
2023                 case VK_VALIDATION_CHECK_SHADERS_EXT:   return "VK_VALIDATION_CHECK_SHADERS_EXT";
2024                 case VK_VALIDATION_CHECK_MAX_ENUM_EXT:  return "VK_VALIDATION_CHECK_MAX_ENUM_EXT";
2025                 default:                                                                return DE_NULL;
2026         }
2027 }
2028
2029 const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
2030 {
2031         switch (value)
2032         {
2033                 case VK_DISPLAY_POWER_STATE_OFF_EXT:            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
2034                 case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:        return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
2035                 case VK_DISPLAY_POWER_STATE_ON_EXT:                     return "VK_DISPLAY_POWER_STATE_ON_EXT";
2036                 case VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT:       return "VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT";
2037                 default:                                                                        return DE_NULL;
2038         }
2039 }
2040
2041 const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
2042 {
2043         switch (value)
2044         {
2045                 case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
2046                 case VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT:                 return "VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT";
2047                 default:                                                                                return DE_NULL;
2048         }
2049 }
2050
2051 const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
2052 {
2053         switch (value)
2054         {
2055                 case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
2056                 case VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT:                return "VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT";
2057                 default:                                                                                return DE_NULL;
2058         }
2059 }
2060
2061 const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
2062 {
2063         switch (value)
2064         {
2065                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
2066                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
2067                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
2068                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
2069                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
2070                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
2071                 case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
2072                 case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:      return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
2073                 case VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV:        return "VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV";
2074                 default:                                                                                        return DE_NULL;
2075         }
2076 }
2077
2078 const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
2079 {
2080         switch (value)
2081         {
2082                 case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
2083                 case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:   return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
2084                 case VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT:    return "VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT";
2085                 default:                                                                                return DE_NULL;
2086         }
2087 }
2088
2089 const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
2090 {
2091         switch (value)
2092         {
2093                 case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
2094                 case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
2095                 case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
2096                 case VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2097                 default:                                                                                                        return DE_NULL;
2098         }
2099 }
2100
2101 const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
2102 {
2103         switch (value)
2104         {
2105                 case VK_BLEND_OVERLAP_UNCORRELATED_EXT: return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
2106                 case VK_BLEND_OVERLAP_DISJOINT_EXT:             return "VK_BLEND_OVERLAP_DISJOINT_EXT";
2107                 case VK_BLEND_OVERLAP_CONJOINT_EXT:             return "VK_BLEND_OVERLAP_CONJOINT_EXT";
2108                 case VK_BLEND_OVERLAP_MAX_ENUM_EXT:             return "VK_BLEND_OVERLAP_MAX_ENUM_EXT";
2109                 default:                                                                return DE_NULL;
2110         }
2111 }
2112
2113 const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
2114 {
2115         switch (value)
2116         {
2117                 case VK_COVERAGE_MODULATION_MODE_NONE_NV:               return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
2118                 case VK_COVERAGE_MODULATION_MODE_RGB_NV:                return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
2119                 case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:              return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
2120                 case VK_COVERAGE_MODULATION_MODE_RGBA_NV:               return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
2121                 case VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV:   return "VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV";
2122                 default:                                                                                return DE_NULL;
2123         }
2124 }
2125
2126 const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
2127 {
2128         switch (value)
2129         {
2130                 case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:                return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
2131                 case VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT:   return "VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT";
2132                 default:                                                                                                return DE_NULL;
2133         }
2134 }
2135
2136 const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
2137 {
2138         switch (value)
2139         {
2140                 case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
2141                 case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
2142                 case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
2143                 case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
2144                 case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
2145                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
2146                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
2147                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
2148                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
2149                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
2150                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
2151                 case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
2152                 case VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV:                                         return "VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV";
2153                 default:                                                                                                                        return DE_NULL;
2154         }
2155 }
2156
2157 const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
2158 {
2159         switch (value)
2160         {
2161                 case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
2162                 case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
2163                 case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
2164                 case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
2165                 case VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV:           return "VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV";
2166                 default:                                                                                        return DE_NULL;
2167         }
2168 }
2169
2170 const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
2171 {
2172         switch (value)
2173         {
2174                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
2175                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
2176                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
2177                 case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:                             return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
2178                 default:                                                                                                                return DE_NULL;
2179         }
2180 }
2181
2182 const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
2183 {
2184         switch (value)
2185         {
2186                 case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
2187                 case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
2188                 case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
2189                 case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:             return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
2190                 default:                                                                return DE_NULL;
2191         }
2192 }
2193
2194 const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
2195 {
2196         switch (value)
2197         {
2198                 case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
2199                 case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
2200                 case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
2201                 case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:               return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
2202                 default:                                                                                                return DE_NULL;
2203         }
2204 }
2205
2206 const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
2207 {
2208         switch (value)
2209         {
2210                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
2211                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
2212                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
2213                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
2214                 case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:          return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2215                 default:                                                                                                        return DE_NULL;
2216         }
2217 }
2218
2219 const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
2220 {
2221         switch (value)
2222         {
2223                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
2224                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
2225                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
2226                 case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
2227                 default:                                                                                                                                        return DE_NULL;
2228         }
2229 }
2230
2231 const char* getTimeDomainEXTName (VkTimeDomainEXT value)
2232 {
2233         switch (value)
2234         {
2235                 case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
2236                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
2237                 case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
2238                 case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
2239                 case VK_TIME_DOMAIN_MAX_ENUM_EXT:                                       return "VK_TIME_DOMAIN_MAX_ENUM_EXT";
2240                 default:                                                                                        return DE_NULL;
2241         }
2242 }
2243
2244 const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
2245 {
2246         switch (value)
2247         {
2248                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
2249                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
2250                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
2251                 case VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD:    return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD";
2252                 default:                                                                                                return DE_NULL;
2253         }
2254 }
2255
2256 const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
2257 {
2258         switch (value)
2259         {
2260                 case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
2261                 case VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL:                                                                  return "VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL";
2262                 default:                                                                                                                                                                return DE_NULL;
2263         }
2264 }
2265
2266 const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
2267 {
2268         switch (value)
2269         {
2270                 case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:          return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
2271                 case VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL:        return "VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL";
2272                 default:                                                                                        return DE_NULL;
2273         }
2274 }
2275
2276 const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
2277 {
2278         switch (value)
2279         {
2280                 case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
2281                 case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
2282                 case VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL:                       return "VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL";
2283                 default:                                                                                                        return DE_NULL;
2284         }
2285 }
2286
2287 const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
2288 {
2289         switch (value)
2290         {
2291                 case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
2292                 case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
2293                 case VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL:                                      return "VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL";
2294                 default:                                                                                                                        return DE_NULL;
2295         }
2296 }
2297
2298 const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
2299 {
2300         switch (value)
2301         {
2302                 case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
2303                 case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
2304                 case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
2305                 case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
2306                 case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
2307                 case VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL:  return "VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL";
2308                 default:                                                                                return DE_NULL;
2309         }
2310 }
2311
2312 const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
2313 {
2314         switch (value)
2315         {
2316                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
2317                 case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
2318                 case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
2319                 case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
2320                 case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
2321                 case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:                                                         return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
2322                 default:                                                                                                                                        return DE_NULL;
2323         }
2324 }
2325
2326 const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
2327 {
2328         switch (value)
2329         {
2330                 case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
2331                 case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
2332                 case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
2333                 case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
2334                 case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
2335                 case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
2336                 case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
2337                 case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
2338                 case VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT:                                return "VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT";
2339                 default:                                                                                                                return DE_NULL;
2340         }
2341 }
2342
2343 const char* getComponentTypeNVName (VkComponentTypeNV value)
2344 {
2345         switch (value)
2346         {
2347                 case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
2348                 case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
2349                 case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
2350                 case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
2351                 case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
2352                 case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
2353                 case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
2354                 case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
2355                 case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
2356                 case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
2357                 case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
2358                 case VK_COMPONENT_TYPE_MAX_ENUM_NV:     return "VK_COMPONENT_TYPE_MAX_ENUM_NV";
2359                 default:                                                        return DE_NULL;
2360         }
2361 }
2362
2363 const char* getScopeNVName (VkScopeNV value)
2364 {
2365         switch (value)
2366         {
2367                 case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
2368                 case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
2369                 case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
2370                 case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
2371                 case VK_SCOPE_MAX_ENUM_NV:              return "VK_SCOPE_MAX_ENUM_NV";
2372                 default:                                                return DE_NULL;
2373         }
2374 }
2375
2376 const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
2377 {
2378         switch (value)
2379         {
2380                 case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
2381                 case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
2382                 case VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV:    return "VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV";
2383                 default:                                                                                return DE_NULL;
2384         }
2385 }
2386
2387 const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
2388 {
2389         switch (value)
2390         {
2391                 case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
2392                 case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
2393                 case VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT:             return "VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT";
2394                 default:                                                                                return DE_NULL;
2395         }
2396 }
2397
2398 const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
2399 {
2400         switch (value)
2401         {
2402                 case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
2403                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
2404                 case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
2405                 case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
2406                 case VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT:                   return "VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT";
2407                 default:                                                                                                return DE_NULL;
2408         }
2409 }
2410
2411 const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
2412 {
2413         switch (value)
2414         {
2415                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
2416                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:    return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
2417                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
2418                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
2419                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
2420                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
2421                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
2422                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:             return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
2423                 case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:               return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
2424                 default:                                                                                                return DE_NULL;
2425         }
2426 }
2427
2428 const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
2429 {
2430         switch (value)
2431         {
2432                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
2433                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
2434                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
2435                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
2436                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
2437                 case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT";
2438                 default:                                                                                                                return DE_NULL;
2439         }
2440 }
2441
2442 const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
2443 {
2444         switch (value)
2445         {
2446                 case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
2447                 case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
2448                 case VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV:                 return "VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV";
2449                 default:                                                                                                return DE_NULL;
2450         }
2451 }
2452
2453 const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
2454 {
2455         switch (value)
2456         {
2457                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
2458                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
2459                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
2460                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
2461                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
2462                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
2463                 case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
2464                 case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
2465                 case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
2466                 case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
2467                 case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
2468                 case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
2469                 case VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV:                                              return "VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV";
2470                 default:                                                                                                                return DE_NULL;
2471         }
2472 }
2473
2474 const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
2475 {
2476         switch (value)
2477         {
2478                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
2479                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
2480                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
2481                 case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV:                return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV";
2482                 default:                                                                                                                                return DE_NULL;
2483         }
2484 }
2485
2486 const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
2487 {
2488         switch (value)
2489         {
2490                 case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:                                                                        return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
2491                 case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:                                                            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
2492                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
2493                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
2494                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
2495                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:                                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
2496                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
2497                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:      return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
2498                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
2499                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
2500                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
2501                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
2502                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
2503                 case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:                                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
2504                 case VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT:                                                                      return "VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT";
2505                 default:                                                                                                                                        return DE_NULL;
2506         }
2507 }
2508
2509 const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
2510 {
2511         switch (value)
2512         {
2513                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
2514                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
2515                 case VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR: return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
2516                 default:                                                                                                return DE_NULL;
2517         }
2518 }
2519
2520 const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
2521 {
2522         switch (value)
2523         {
2524                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:                             return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
2525                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:                   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
2526                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
2527                 case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:                 return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
2528                 default:                                                                                                                return DE_NULL;
2529         }
2530 }
2531
2532 const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructureCompatibilityKHR value)
2533 {
2534         switch (value)
2535         {
2536                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:    return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
2537                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:  return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
2538                 case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR:              return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR";
2539                 default:                                                                                                                return DE_NULL;
2540         }
2541 }
2542
2543 const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
2544 {
2545         switch (value)
2546         {
2547                 case VK_SHADER_GROUP_SHADER_GENERAL_KHR:                return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
2548                 case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:    return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
2549                 case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:                return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
2550                 case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:   return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
2551                 case VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR:               return "VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR";
2552                 default:                                                                                return DE_NULL;
2553         }
2554 }
2555
2556 const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
2557 {
2558         switch (value)
2559         {
2560                 case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
2561                 case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
2562                 case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
2563                 case VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR:       return "VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR";
2564                 default:                                                                        return DE_NULL;
2565         }
2566 }
2567
2568 const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
2569 {
2570         switch (value)
2571         {
2572                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
2573                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
2574                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
2575                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
2576                 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
2577                 default:                                                                                        return DE_NULL;
2578         }
2579 }
2580
2581 const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
2582 {
2583         switch (value)
2584         {
2585                 case STD_VIDEO_H264_PROFILE_IDC_BASELINE:                               return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
2586                 case STD_VIDEO_H264_PROFILE_IDC_MAIN:                                   return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
2587                 case STD_VIDEO_H264_PROFILE_IDC_HIGH:                                   return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
2588                 case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:    return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
2589                 case STD_VIDEO_H264_PROFILE_IDC_INVALID:                                return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
2590                 default:                                                                                                return DE_NULL;
2591         }
2592 }
2593
2594 const char* getdVideoH264LevelName (StdVideoH264Level value)
2595 {
2596         switch (value)
2597         {
2598                 case STD_VIDEO_H264_LEVEL_1_0:          return "STD_VIDEO_H264_LEVEL_1_0";
2599                 case STD_VIDEO_H264_LEVEL_1_1:          return "STD_VIDEO_H264_LEVEL_1_1";
2600                 case STD_VIDEO_H264_LEVEL_1_2:          return "STD_VIDEO_H264_LEVEL_1_2";
2601                 case STD_VIDEO_H264_LEVEL_1_3:          return "STD_VIDEO_H264_LEVEL_1_3";
2602                 case STD_VIDEO_H264_LEVEL_2_0:          return "STD_VIDEO_H264_LEVEL_2_0";
2603                 case STD_VIDEO_H264_LEVEL_2_1:          return "STD_VIDEO_H264_LEVEL_2_1";
2604                 case STD_VIDEO_H264_LEVEL_2_2:          return "STD_VIDEO_H264_LEVEL_2_2";
2605                 case STD_VIDEO_H264_LEVEL_3_0:          return "STD_VIDEO_H264_LEVEL_3_0";
2606                 case STD_VIDEO_H264_LEVEL_3_1:          return "STD_VIDEO_H264_LEVEL_3_1";
2607                 case STD_VIDEO_H264_LEVEL_3_2:          return "STD_VIDEO_H264_LEVEL_3_2";
2608                 case STD_VIDEO_H264_LEVEL_4_0:          return "STD_VIDEO_H264_LEVEL_4_0";
2609                 case STD_VIDEO_H264_LEVEL_4_1:          return "STD_VIDEO_H264_LEVEL_4_1";
2610                 case STD_VIDEO_H264_LEVEL_4_2:          return "STD_VIDEO_H264_LEVEL_4_2";
2611                 case STD_VIDEO_H264_LEVEL_5_0:          return "STD_VIDEO_H264_LEVEL_5_0";
2612                 case STD_VIDEO_H264_LEVEL_5_1:          return "STD_VIDEO_H264_LEVEL_5_1";
2613                 case STD_VIDEO_H264_LEVEL_5_2:          return "STD_VIDEO_H264_LEVEL_5_2";
2614                 case STD_VIDEO_H264_LEVEL_6_0:          return "STD_VIDEO_H264_LEVEL_6_0";
2615                 case STD_VIDEO_H264_LEVEL_6_1:          return "STD_VIDEO_H264_LEVEL_6_1";
2616                 case STD_VIDEO_H264_LEVEL_6_2:          return "STD_VIDEO_H264_LEVEL_6_2";
2617                 case STD_VIDEO_H264_LEVEL_INVALID:      return "STD_VIDEO_H264_LEVEL_INVALID";
2618                 default:                                                        return DE_NULL;
2619         }
2620 }
2621
2622 const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
2623 {
2624         switch (value)
2625         {
2626                 case STD_VIDEO_H264_POC_TYPE_0:                 return "STD_VIDEO_H264_POC_TYPE_0";
2627                 case STD_VIDEO_H264_POC_TYPE_1:                 return "STD_VIDEO_H264_POC_TYPE_1";
2628                 case STD_VIDEO_H264_POC_TYPE_2:                 return "STD_VIDEO_H264_POC_TYPE_2";
2629                 case STD_VIDEO_H264_POC_TYPE_INVALID:   return "STD_VIDEO_H264_POC_TYPE_INVALID";
2630                 default:                                                                return DE_NULL;
2631         }
2632 }
2633
2634 const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
2635 {
2636         switch (value)
2637         {
2638                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
2639                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
2640                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
2641                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
2642                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
2643                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
2644                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
2645                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
2646                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
2647                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
2648                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
2649                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
2650                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
2651                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
2652                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
2653                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
2654                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
2655                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
2656                 case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
2657                 default:                                                                                        return DE_NULL;
2658         }
2659 }
2660
2661 const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
2662 {
2663         switch (value)
2664         {
2665                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
2666                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
2667                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
2668                 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
2669                 default:                                                                                        return DE_NULL;
2670         }
2671 }
2672
2673 const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
2674 {
2675         switch (value)
2676         {
2677                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
2678                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:                return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
2679                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:                             return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
2680                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:                                   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
2681                 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:                               return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
2682                 default:                                                                                                                                return DE_NULL;
2683         }
2684 }
2685
2686 const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
2687 {
2688         switch (value)
2689         {
2690                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:                                            return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
2691                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:                      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
2692                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:                       return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
2693                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:                         return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
2694                 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";
2695                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:                                     return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
2696                 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";
2697                 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:                                        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
2698                 default:                                                                                                                        return DE_NULL;
2699         }
2700 }
2701
2702 const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
2703 {
2704         switch (value)
2705         {
2706                 case STD_VIDEO_H264_CABAC_INIT_IDC_0:           return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
2707                 case STD_VIDEO_H264_CABAC_INIT_IDC_1:           return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
2708                 case STD_VIDEO_H264_CABAC_INIT_IDC_2:           return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
2709                 case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:     return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
2710                 default:                                                                        return DE_NULL;
2711         }
2712 }
2713
2714 const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
2715 {
2716         switch (value)
2717         {
2718                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:     return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
2719                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
2720                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
2721                 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
2722                 default:                                                                                                        return DE_NULL;
2723         }
2724 }
2725
2726 const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
2727 {
2728         switch (value)
2729         {
2730                 case STD_VIDEO_H264_SLICE_TYPE_P:               return "STD_VIDEO_H264_SLICE_TYPE_P";
2731                 case STD_VIDEO_H264_SLICE_TYPE_B:               return "STD_VIDEO_H264_SLICE_TYPE_B";
2732                 case STD_VIDEO_H264_SLICE_TYPE_I:               return "STD_VIDEO_H264_SLICE_TYPE_I";
2733                 case STD_VIDEO_H264_SLICE_TYPE_INVALID: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
2734                 default:                                                                return DE_NULL;
2735         }
2736 }
2737
2738 const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
2739 {
2740         switch (value)
2741         {
2742                 case STD_VIDEO_H264_PICTURE_TYPE_P:                     return "STD_VIDEO_H264_PICTURE_TYPE_P";
2743                 case STD_VIDEO_H264_PICTURE_TYPE_B:                     return "STD_VIDEO_H264_PICTURE_TYPE_B";
2744                 case STD_VIDEO_H264_PICTURE_TYPE_I:                     return "STD_VIDEO_H264_PICTURE_TYPE_I";
2745                 case STD_VIDEO_H264_PICTURE_TYPE_IDR:           return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
2746                 case STD_VIDEO_H264_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
2747                 default:                                                                        return DE_NULL;
2748         }
2749 }
2750
2751 const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
2752 {
2753         switch (value)
2754         {
2755                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
2756                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
2757                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
2758                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:                   return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
2759                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
2760                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:    return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
2761                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:                 return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
2762                 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:                  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
2763                 default:                                                                                                return DE_NULL;
2764         }
2765 }
2766
2767 const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
2768 {
2769         switch (value)
2770         {
2771                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
2772                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
2773                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
2774                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
2775                 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
2776                 default:                                                                                        return DE_NULL;
2777         }
2778 }
2779
2780 const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
2781 {
2782         switch (value)
2783         {
2784                 case STD_VIDEO_H265_PROFILE_IDC_MAIN:                                           return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
2785                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:                                        return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
2786                 case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:                     return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
2787                 case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:        return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
2788                 case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:                         return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
2789                 case STD_VIDEO_H265_PROFILE_IDC_INVALID:                                        return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
2790                 default:                                                                                                        return DE_NULL;
2791         }
2792 }
2793
2794 const char* getdVideoH265LevelName (StdVideoH265Level value)
2795 {
2796         switch (value)
2797         {
2798                 case STD_VIDEO_H265_LEVEL_1_0:          return "STD_VIDEO_H265_LEVEL_1_0";
2799                 case STD_VIDEO_H265_LEVEL_2_0:          return "STD_VIDEO_H265_LEVEL_2_0";
2800                 case STD_VIDEO_H265_LEVEL_2_1:          return "STD_VIDEO_H265_LEVEL_2_1";
2801                 case STD_VIDEO_H265_LEVEL_3_0:          return "STD_VIDEO_H265_LEVEL_3_0";
2802                 case STD_VIDEO_H265_LEVEL_3_1:          return "STD_VIDEO_H265_LEVEL_3_1";
2803                 case STD_VIDEO_H265_LEVEL_4_0:          return "STD_VIDEO_H265_LEVEL_4_0";
2804                 case STD_VIDEO_H265_LEVEL_4_1:          return "STD_VIDEO_H265_LEVEL_4_1";
2805                 case STD_VIDEO_H265_LEVEL_5_0:          return "STD_VIDEO_H265_LEVEL_5_0";
2806                 case STD_VIDEO_H265_LEVEL_5_1:          return "STD_VIDEO_H265_LEVEL_5_1";
2807                 case STD_VIDEO_H265_LEVEL_5_2:          return "STD_VIDEO_H265_LEVEL_5_2";
2808                 case STD_VIDEO_H265_LEVEL_6_0:          return "STD_VIDEO_H265_LEVEL_6_0";
2809                 case STD_VIDEO_H265_LEVEL_6_1:          return "STD_VIDEO_H265_LEVEL_6_1";
2810                 case STD_VIDEO_H265_LEVEL_6_2:          return "STD_VIDEO_H265_LEVEL_6_2";
2811                 case STD_VIDEO_H265_LEVEL_INVALID:      return "STD_VIDEO_H265_LEVEL_INVALID";
2812                 default:                                                        return DE_NULL;
2813         }
2814 }
2815
2816 const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
2817 {
2818         switch (value)
2819         {
2820                 case STD_VIDEO_H265_SLICE_TYPE_B:               return "STD_VIDEO_H265_SLICE_TYPE_B";
2821                 case STD_VIDEO_H265_SLICE_TYPE_P:               return "STD_VIDEO_H265_SLICE_TYPE_P";
2822                 case STD_VIDEO_H265_SLICE_TYPE_I:               return "STD_VIDEO_H265_SLICE_TYPE_I";
2823                 case STD_VIDEO_H265_SLICE_TYPE_INVALID: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
2824                 default:                                                                return DE_NULL;
2825         }
2826 }
2827
2828 const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
2829 {
2830         switch (value)
2831         {
2832                 case STD_VIDEO_H265_PICTURE_TYPE_P:                     return "STD_VIDEO_H265_PICTURE_TYPE_P";
2833                 case STD_VIDEO_H265_PICTURE_TYPE_B:                     return "STD_VIDEO_H265_PICTURE_TYPE_B";
2834                 case STD_VIDEO_H265_PICTURE_TYPE_I:                     return "STD_VIDEO_H265_PICTURE_TYPE_I";
2835                 case STD_VIDEO_H265_PICTURE_TYPE_IDR:           return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
2836                 case STD_VIDEO_H265_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
2837                 default:                                                                        return DE_NULL;
2838         }
2839 }
2840
2841 const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
2842 {
2843         switch (value)
2844         {
2845                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:               return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
2846                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:    return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
2847                 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:   return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
2848                 default:                                                                                                return DE_NULL;
2849         }
2850 }
2851
2852 const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
2853 {
2854         switch (value)
2855         {
2856                 case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
2857                 case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
2858                 case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
2859                 case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
2860                 case VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT:                                     return "VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT";
2861                 default:                                                                                                        return DE_NULL;
2862         }
2863 }
2864
2865 tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
2866 {
2867         static const tcu::Format::BitDesc s_desc[] =
2868         {
2869                 tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,                                               "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
2870                 tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,                                                                  "VK_ACCESS_INDEX_READ_BIT"),
2871                 tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,                                               "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
2872                 tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,                                                                "VK_ACCESS_UNIFORM_READ_BIT"),
2873                 tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
2874                 tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,                                                                 "VK_ACCESS_SHADER_READ_BIT"),
2875                 tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,                                                                "VK_ACCESS_SHADER_WRITE_BIT"),
2876                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,                                               "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
2877                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                              "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
2878                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                               "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
2879                 tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                              "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
2880                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,                                                               "VK_ACCESS_TRANSFER_READ_BIT"),
2881                 tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,                                                              "VK_ACCESS_TRANSFER_WRITE_BIT"),
2882                 tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,                                                                   "VK_ACCESS_HOST_READ_BIT"),
2883                 tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,                                                                  "VK_ACCESS_HOST_WRITE_BIT"),
2884                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,                                                                 "VK_ACCESS_MEMORY_READ_BIT"),
2885                 tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,                                                                "VK_ACCESS_MEMORY_WRITE_BIT"),
2886                 tcu::Format::BitDesc(VK_ACCESS_NONE,                                                                                    "VK_ACCESS_NONE"),
2887                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
2888                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
2889                 tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
2890                 tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
2891                 tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
2892                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
2893                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
2894                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
2895                 tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
2896                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
2897                 tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
2898                 tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,                                  "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
2899                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,                              "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
2900                 tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,                             "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
2901                 tcu::Format::BitDesc(VK_ACCESS_NONE_KHR,                                                                                "VK_ACCESS_NONE_KHR"),
2902                 tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,                                                              "VK_ACCESS_FLAG_BITS_MAX_ENUM"),
2903         };
2904         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2905 }
2906
2907 tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
2908 {
2909         static const tcu::Format::BitDesc s_desc[] =
2910         {
2911                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
2912                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
2913                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
2914                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
2915                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
2916                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
2917                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
2918                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,                                              "VK_IMAGE_ASPECT_NONE"),
2919                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
2920                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
2921                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
2922                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
2923                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
2924                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
2925                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
2926                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE_KHR,                                  "VK_IMAGE_ASPECT_NONE_KHR"),
2927                 tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,                "VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
2928         };
2929         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2930 }
2931
2932 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
2933 {
2934         static const tcu::Format::BitDesc s_desc[] =
2935         {
2936                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
2937                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
2938                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
2939                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
2940                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
2941                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                                 "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
2942                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                               "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
2943                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                                    "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
2944                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                              "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
2945                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                    "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
2946                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_SRC_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_SRC_BIT"),
2947                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_BLIT_DST_BIT"),
2948                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
2949                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
2950                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
2951                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                             "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
2952                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                                "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
2953                 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"),
2954                 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"),
2955                 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"),
2956                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_DISJOINT_BIT"),
2957                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                              "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
2958                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
2959                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
2960                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                             "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
2961                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
2962                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                    "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
2963                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                    "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
2964                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                                "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
2965                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
2966                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
2967                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
2968                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,                                                                                                                    "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
2969                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,                                                                                             "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT"),
2970                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,                                                                                                 "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR"),
2971                 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"),
2972                 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"),
2973                 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"),
2974                 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"),
2975                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,                                                                                                                                "VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"),
2976                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,                                                                                                  "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"),
2977                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
2978                 tcu::Format::BitDesc(VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,                                                                                                                              "VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM"),
2979         };
2980         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
2981 }
2982
2983 tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
2984 {
2985         static const tcu::Format::BitDesc s_desc[] =
2986         {
2987                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,                                                "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
2988                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,                                              "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
2989                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,                                                "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
2990                 tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,                                                "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
2991                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,                                               "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
2992                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,                                                                 "VK_IMAGE_CREATE_ALIAS_BIT"),
2993                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                   "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
2994                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,                                   "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
2995                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                   "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
2996                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
2997                 tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                             "VK_IMAGE_CREATE_PROTECTED_BIT"),
2998                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                              "VK_IMAGE_CREATE_DISJOINT_BIT"),
2999                 tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,                                             "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
3000                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"),
3001                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,                                                "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
3002                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,                                "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
3003                 tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,              "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
3004                 tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,               "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3005                 tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,                               "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
3006                 tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,               "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR"),
3007                 tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,                                    "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR"),
3008                 tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT_KHR,                                                  "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
3009                 tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,                                                             "VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
3010                 tcu::Format::BitDesc(VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,                                                "VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM"),
3011         };
3012         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3013 }
3014
3015 tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
3016 {
3017         static const tcu::Format::BitDesc s_desc[] =
3018         {
3019                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,                                     "VK_SAMPLE_COUNT_1_BIT"),
3020                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,                                     "VK_SAMPLE_COUNT_2_BIT"),
3021                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,                                     "VK_SAMPLE_COUNT_4_BIT"),
3022                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,                                     "VK_SAMPLE_COUNT_8_BIT"),
3023                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,                            "VK_SAMPLE_COUNT_16_BIT"),
3024                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,                            "VK_SAMPLE_COUNT_32_BIT"),
3025                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,                            "VK_SAMPLE_COUNT_64_BIT"),
3026                 tcu::Format::BitDesc(VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,        "VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM"),
3027         };
3028         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3029 }
3030
3031 tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
3032 {
3033         static const tcu::Format::BitDesc s_desc[] =
3034         {
3035                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
3036                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
3037                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
3038                 tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
3039                 tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
3040                 tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
3041                 tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
3042                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
3043                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
3044                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
3045                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
3046                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
3047                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3048                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
3049                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
3050                 tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
3051                 tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
3052                 tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,                                  "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
3053                 tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,                                                 "VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
3054         };
3055         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3056 }
3057
3058 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
3059 {
3060         static const tcu::Format::BitDesc s_desc[] =
3061         {
3062                 tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,  "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
3063                 tcu::Format::BitDesc(VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM,                             "VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM"),
3064         };
3065         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3066 }
3067
3068 tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
3069 {
3070         static const tcu::Format::BitDesc s_desc[] =
3071         {
3072                 tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,           "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
3073                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,         "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
3074                 tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,     "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
3075                 tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,         "VK_MEMORY_HEAP_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> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
3081 {
3082         static const tcu::Format::BitDesc s_desc[] =
3083         {
3084                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
3085                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
3086                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
3087                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
3088                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
3089                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
3090                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
3091                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
3092                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
3093                 tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,                     "VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
3094         };
3095         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3096 }
3097
3098 tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
3099 {
3100         static const tcu::Format::BitDesc s_desc[] =
3101         {
3102                 tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
3103                 tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
3104                 tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
3105                 tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
3106                 tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
3107                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
3108                 tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
3109                 tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,       "VK_QUEUE_FLAG_BITS_MAX_ENUM"),
3110         };
3111         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3112 }
3113
3114 tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
3115 {
3116         static const tcu::Format::BitDesc s_desc[] =
3117         {
3118                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,              "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
3119                 tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM, "VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM"),
3120         };
3121         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3122 }
3123
3124 tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
3125 {
3126         static const tcu::Format::BitDesc s_desc[] =
3127         {
3128                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
3129                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
3130                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
3131                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
3132                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
3133                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
3134                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
3135                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
3136                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
3137                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
3138                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
3139                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
3140                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
3141                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
3142                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,                                                                        "VK_PIPELINE_STAGE_HOST_BIT"),
3143                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
3144                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                                                        "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
3145                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,                                                                            "VK_PIPELINE_STAGE_NONE"),
3146                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
3147                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3148                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
3149                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
3150                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
3151                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
3152                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
3153                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3154                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
3155                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,                                       "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
3156                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,                                       "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
3157                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,                     "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
3158                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE_KHR,                                                                        "VK_PIPELINE_STAGE_NONE_KHR"),
3159                 tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,                                                      "VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
3160         };
3161         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3162 }
3163
3164 tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
3165 {
3166         static const tcu::Format::BitDesc s_desc[] =
3167         {
3168                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,                "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
3169                 tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,  "VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
3170         };
3171         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3172 }
3173
3174 tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
3175 {
3176         static const tcu::Format::BitDesc s_desc[] =
3177         {
3178                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
3179                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
3180                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
3181                 tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,                 "VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM"),
3182         };
3183         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3184 }
3185
3186 tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
3187 {
3188         static const tcu::Format::BitDesc s_desc[] =
3189         {
3190                 tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,                      "VK_FENCE_CREATE_SIGNALED_BIT"),
3191                 tcu::Format::BitDesc(VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,        "VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM"),
3192         };
3193         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3194 }
3195
3196 tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
3197 {
3198         static const tcu::Format::BitDesc s_desc[] =
3199         {
3200                 tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,           "VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
3201                 tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,       "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"),
3202                 tcu::Format::BitDesc(VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,        "VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM"),
3203         };
3204         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3205 }
3206
3207 tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
3208 {
3209         static const tcu::Format::BitDesc s_desc[] =
3210         {
3211                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
3212                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
3213                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
3214                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
3215                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
3216                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
3217                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
3218                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
3219                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
3220                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
3221                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
3222                 tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,                                                            "VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM"),
3223         };
3224         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3225 }
3226
3227 tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
3228 {
3229         static const tcu::Format::BitDesc s_desc[] =
3230         {
3231                 tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
3232                 tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
3233                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
3234                 tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
3235                 tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
3236                 tcu::Format::BitDesc(VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,        "VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM"),
3237         };
3238         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3239 }
3240
3241 tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
3242 {
3243         static const tcu::Format::BitDesc s_desc[] =
3244         {
3245                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                               "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
3246                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                             "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
3247                 tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                               "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
3248                 tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                                    "VK_BUFFER_CREATE_PROTECTED_BIT"),
3249                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,                "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3250                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
3251                 tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3252                 tcu::Format::BitDesc(VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,                                               "VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3253         };
3254         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3255 }
3256
3257 tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
3258 {
3259         static const tcu::Format::BitDesc s_desc[] =
3260         {
3261                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
3262                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
3263                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
3264                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
3265                 tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
3266                 tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
3267                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
3268                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
3269                 tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
3270                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
3271                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
3272                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
3273                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
3274                 tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
3275                 tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
3276                 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"),
3277                 tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
3278                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
3279                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
3280                 tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
3281                 tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,                                                                        "VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
3282                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
3283                 tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
3284                 tcu::Format::BitDesc(VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                                                                        "VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
3285         };
3286         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3287 }
3288
3289 tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
3290 {
3291         static const tcu::Format::BitDesc s_desc[] =
3292         {
3293                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
3294                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
3295                 tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,                                           "VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
3296         };
3297         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3298 }
3299
3300 tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
3301 {
3302         static const tcu::Format::BitDesc s_desc[] =
3303         {
3304                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,              "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
3305                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,  "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
3306                 tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,                               "VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
3307         };
3308         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3309 }
3310
3311 tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
3312 {
3313         static const tcu::Format::BitDesc s_desc[] =
3314         {
3315                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,                          "VK_COLOR_COMPONENT_R_BIT"),
3316                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,                          "VK_COLOR_COMPONENT_G_BIT"),
3317                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,                          "VK_COLOR_COMPONENT_B_BIT"),
3318                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,                          "VK_COLOR_COMPONENT_A_BIT"),
3319                 tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,     "VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
3320         };
3321         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3322 }
3323
3324 tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
3325 {
3326         static const tcu::Format::BitDesc s_desc[] =
3327         {
3328                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,                                                                               "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
3329                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,                                                                                  "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
3330                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,                                                                                                 "VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
3331                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,                                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
3332                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
3333                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,                                                  "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
3334                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,                                                                    "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
3335                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                             "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3336                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,                              "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3337                 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"),
3338                 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"),
3339                 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"),
3340                 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"),
3341                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
3342                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
3343                 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"),
3344                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
3345                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
3346                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
3347                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
3348                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
3349                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,                                             "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
3350                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,                                                                 "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
3351                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
3352                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,                                                                                                  "VK_PIPELINE_CREATE_DISPATCH_BASE"),
3353                 tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
3354                 tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,    "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
3355                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,                                                   "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
3356                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,                                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
3357                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,                                              "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
3358                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,                                                                "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
3359                 tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,                                                                                             "VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
3360         };
3361         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3362 }
3363
3364 tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
3365 {
3366         static const tcu::Format::BitDesc s_desc[] =
3367         {
3368                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,           "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
3369                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,                        "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
3370                 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"),
3371                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,            "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
3372                 tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,                                        "VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM"),
3373         };
3374         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3375 }
3376
3377 tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
3378 {
3379         static const tcu::Format::BitDesc s_desc[] =
3380         {
3381                 tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
3382                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
3383                 tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
3384                 tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
3385                 tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
3386                 tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
3387                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
3388                 tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
3389                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
3390                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
3391                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
3392                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
3393                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
3394                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
3395                 tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,                                       "VK_SHADER_STAGE_TASK_BIT_NV"),
3396                 tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,                                       "VK_SHADER_STAGE_MESH_BIT_NV"),
3397                 tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
3398                 tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,                                     "VK_SHADER_STAGE_RAYGEN_BIT_NV"),
3399                 tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,                            "VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
3400                 tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,                        "VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
3401                 tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,                                       "VK_SHADER_STAGE_MISS_BIT_NV"),
3402                 tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,                       "VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
3403                 tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,                           "VK_SHADER_STAGE_CALLABLE_BIT_NV"),
3404                 tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,                        "VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
3405         };
3406         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3407 }
3408
3409 tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
3410 {
3411         static const tcu::Format::BitDesc s_desc[] =
3412         {
3413                 tcu::Format::BitDesc(VK_CULL_MODE_NONE,                                 "VK_CULL_MODE_NONE"),
3414                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,                    "VK_CULL_MODE_FRONT_BIT"),
3415                 tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                             "VK_CULL_MODE_BACK_BIT"),
3416                 tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,               "VK_CULL_MODE_FRONT_AND_BACK"),
3417                 tcu::Format::BitDesc(VK_CULL_MODE_FLAG_BITS_MAX_ENUM,   "VK_CULL_MODE_FLAG_BITS_MAX_ENUM"),
3418         };
3419         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3420 }
3421
3422 tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
3423 {
3424         static const tcu::Format::BitDesc s_desc[] =
3425         {
3426                 tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
3427                 tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
3428                 tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM,                                                                         "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
3429         };
3430         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3431 }
3432
3433 tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
3434 {
3435         static const tcu::Format::BitDesc s_desc[] =
3436         {
3437                 tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,        "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"),
3438                 tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM,                                                           "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
3439         };
3440         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3441 }
3442
3443 tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
3444 {
3445         static const tcu::Format::BitDesc s_desc[] =
3446         {
3447                 tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,        "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
3448                 tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,                      "VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
3449         };
3450         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3451 }
3452
3453 tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
3454 {
3455         static const tcu::Format::BitDesc s_desc[] =
3456         {
3457                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
3458                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
3459                 tcu::Format::BitDesc(VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,                                                      "VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM"),
3460         };
3461         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3462 }
3463
3464 tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
3465 {
3466         static const tcu::Format::BitDesc s_desc[] =
3467         {
3468                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,         "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
3469                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,           "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
3470                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,                     "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
3471                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,       "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
3472                 tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,                      "VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3473         };
3474         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3475 }
3476
3477 tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
3478 {
3479         static const tcu::Format::BitDesc s_desc[] =
3480         {
3481                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
3482                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,                   "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
3483                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,                  "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
3484                 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"),
3485                 tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,                                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
3486         };
3487         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3488 }
3489
3490 tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
3491 {
3492         static const tcu::Format::BitDesc s_desc[] =
3493         {
3494                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,           "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
3495                 tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,      "VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
3496         };
3497         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3498 }
3499
3500 tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
3501 {
3502         static const tcu::Format::BitDesc s_desc[] =
3503         {
3504                 tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,                       "VK_DEPENDENCY_BY_REGION_BIT"),
3505                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,            "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
3506                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,                      "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
3507                 tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,          "VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
3508                 tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,        "VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
3509                 tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,          "VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
3510         };
3511         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3512 }
3513
3514 tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
3515 {
3516         static const tcu::Format::BitDesc s_desc[] =
3517         {
3518                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,               "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
3519                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,   "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"),
3520                 tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,  "VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
3521         };
3522         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3523 }
3524
3525 tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
3526 {
3527         static const tcu::Format::BitDesc s_desc[] =
3528         {
3529                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
3530                 tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,  "VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
3531         };
3532         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3533 }
3534
3535 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
3536 {
3537         static const tcu::Format::BitDesc s_desc[] =
3538         {
3539                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,                                                        "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
3540                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,                                           "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
3541                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                                                           "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
3542                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                                                            "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
3543                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"),
3544                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
3545                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
3546                 tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,                                                                         "VK_SUBPASS_DESCRIPTION_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> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
3552 {
3553         static const tcu::Format::BitDesc s_desc[] =
3554         {
3555                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
3556                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
3557                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
3558                 tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,                 "VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
3559         };
3560         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3561 }
3562
3563 tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
3564 {
3565         static const tcu::Format::BitDesc s_desc[] =
3566         {
3567                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
3568                 tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,          "VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM"),
3569         };
3570         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3571 }
3572
3573 tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
3574 {
3575         static const tcu::Format::BitDesc s_desc[] =
3576         {
3577                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
3578                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
3579                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
3580                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                "VK_COMMAND_BUFFER_USAGE_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> getQueryControlFlagsStr (VkQueryControlFlags value)
3586 {
3587         static const tcu::Format::BitDesc s_desc[] =
3588         {
3589                 tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,                      "VK_QUERY_CONTROL_PRECISE_BIT"),
3590                 tcu::Format::BitDesc(VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,       "VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM"),
3591         };
3592         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3593 }
3594
3595 tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
3596 {
3597         static const tcu::Format::BitDesc s_desc[] =
3598         {
3599                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
3600                 tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,        "VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM"),
3601         };
3602         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3603 }
3604
3605 tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
3606 {
3607         static const tcu::Format::BitDesc s_desc[] =
3608         {
3609                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                         "VK_STENCIL_FACE_FRONT_BIT"),
3610                 tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                          "VK_STENCIL_FACE_BACK_BIT"),
3611                 tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,            "VK_STENCIL_FACE_FRONT_AND_BACK"),
3612                 tcu::Format::BitDesc(VK_STENCIL_FRONT_AND_BACK,                         "VK_STENCIL_FRONT_AND_BACK"),
3613                 tcu::Format::BitDesc(VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,        "VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM"),
3614         };
3615         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3616 }
3617
3618 tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags value)
3619 {
3620         static const tcu::Format::BitDesc s_desc[] =
3621         {
3622                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BASIC_BIT,                             "VK_SUBGROUP_FEATURE_BASIC_BIT"),
3623                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_VOTE_BIT,                              "VK_SUBGROUP_FEATURE_VOTE_BIT"),
3624                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,                "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"),
3625                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_BALLOT_BIT,                    "VK_SUBGROUP_FEATURE_BALLOT_BIT"),
3626                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_BIT,                   "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"),
3627                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,  "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"),
3628                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_CLUSTERED_BIT,                 "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"),
3629                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_QUAD_BIT,                              "VK_SUBGROUP_FEATURE_QUAD_BIT"),
3630                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,    "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
3631                 tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,    "VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM"),
3632         };
3633         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3634 }
3635
3636 tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
3637 {
3638         static const tcu::Format::BitDesc s_desc[] =
3639         {
3640                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
3641                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
3642                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
3643                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
3644                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR"),
3645                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,           "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR"),
3646                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR"),
3647                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR,        "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR"),
3648                 tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,         "VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3649         };
3650         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3651 }
3652
3653 tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
3654 {
3655         static const tcu::Format::BitDesc s_desc[] =
3656         {
3657                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                                "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
3658                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                             "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
3659                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,              "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
3660                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,                                    "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
3661                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,                                 "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR"),
3662                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,  "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
3663                 tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,                                             "VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM"),
3664         };
3665         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3666 }
3667
3668 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
3669 {
3670         static const tcu::Format::BitDesc s_desc[] =
3671         {
3672                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
3673                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3674                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3675                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
3676                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
3677                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
3678                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
3679                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
3680                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
3681                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
3682                 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"),
3683                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
3684                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
3685                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3686                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3687                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3688                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"),
3689                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"),
3690                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"),
3691                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"),
3692                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3693         };
3694         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3695 }
3696
3697 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
3698 {
3699         static const tcu::Format::BitDesc s_desc[] =
3700         {
3701                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,             "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
3702                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
3703                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
3704                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR, "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"),
3705                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"),
3706                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"),
3707                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,             "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
3708         };
3709         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3710 }
3711
3712 tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
3713 {
3714         static const tcu::Format::BitDesc s_desc[] =
3715         {
3716                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                               "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3717                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3718                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3719                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                                 "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
3720                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                   "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3721                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3722                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3723                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                             "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3724                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                  "VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3725         };
3726         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3727 }
3728
3729 tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
3730 {
3731         static const tcu::Format::BitDesc s_desc[] =
3732         {
3733                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
3734                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
3735                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR"),
3736                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR,      "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR"),
3737                 tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,      "VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM"),
3738         };
3739         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3740 }
3741
3742 tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
3743 {
3744         static const tcu::Format::BitDesc s_desc[] =
3745         {
3746                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,                     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
3747                 tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,         "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
3748                 tcu::Format::BitDesc(VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,        "VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM"),
3749         };
3750         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3751 }
3752
3753 tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
3754 {
3755         static const tcu::Format::BitDesc s_desc[] =
3756         {
3757                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,                 "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
3758                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,             "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"),
3759                 tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,    "VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM"),
3760         };
3761         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3762 }
3763
3764 tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
3765 {
3766         static const tcu::Format::BitDesc s_desc[] =
3767         {
3768                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
3769                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
3770                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
3771                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
3772                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
3773                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
3774                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"),
3775                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                       "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
3776                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
3777                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
3778                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"),
3779                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
3780                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                      "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
3781         };
3782         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3783 }
3784
3785 tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
3786 {
3787         static const tcu::Format::BitDesc s_desc[] =
3788         {
3789                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
3790                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
3791                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"),
3792                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"),
3793                 tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,  "VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM"),
3794         };
3795         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3796 }
3797
3798 tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
3799 {
3800         static const tcu::Format::BitDesc s_desc[] =
3801         {
3802                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                                      "VK_RESOLVE_MODE_NONE"),
3803                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,           "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
3804                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,                       "VK_RESOLVE_MODE_AVERAGE_BIT"),
3805                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                           "VK_RESOLVE_MODE_MIN_BIT"),
3806                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                           "VK_RESOLVE_MODE_MAX_BIT"),
3807                 tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE_KHR,                          "VK_RESOLVE_MODE_NONE_KHR"),
3808                 tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,       "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR"),
3809                 tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT_KHR,           "VK_RESOLVE_MODE_AVERAGE_BIT_KHR"),
3810                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT_KHR,                       "VK_RESOLVE_MODE_MIN_BIT_KHR"),
3811                 tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT_KHR,                       "VK_RESOLVE_MODE_MAX_BIT_KHR"),
3812                 tcu::Format::BitDesc(VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,        "VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM"),
3813         };
3814         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3815 }
3816
3817 tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
3818 {
3819         static const tcu::Format::BitDesc s_desc[] =
3820         {
3821                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                               "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
3822                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,             "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
3823                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                                 "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
3824                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,               "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
3825                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,                   "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"),
3826                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT, "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"),
3827                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,                             "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"),
3828                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,   "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"),
3829                 tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,                                  "VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM"),
3830         };
3831         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3832 }
3833
3834 tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
3835 {
3836         static const tcu::Format::BitDesc s_desc[] =
3837         {
3838                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,                         "VK_SEMAPHORE_WAIT_ANY_BIT"),
3839                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT_KHR,                     "VK_SEMAPHORE_WAIT_ANY_BIT_KHR"),
3840                 tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,      "VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM"),
3841         };
3842         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3843 }
3844
3845 tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
3846 {
3847         static const tcu::Format::BitDesc s_desc[] =
3848         {
3849                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,                                                           "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
3850                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,          "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
3851                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,                      "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
3852                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,                                                       "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"),
3853                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,      "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"),
3854                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,          "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"),
3855                 tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM,                                          "VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM"),
3856         };
3857         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3858 }
3859
3860 tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
3861 {
3862         static const tcu::Format::BitDesc s_desc[] =
3863         {
3864                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,                            "VK_TOOL_PURPOSE_VALIDATION_BIT"),
3865                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,                                     "VK_TOOL_PURPOSE_PROFILING_BIT"),
3866                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,                                       "VK_TOOL_PURPOSE_TRACING_BIT"),
3867                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,           "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
3868                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,            "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
3869                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,           "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
3870                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,                     "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
3871                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,                        "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"),
3872                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT_EXT,                         "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"),
3873                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT_EXT,                           "VK_TOOL_PURPOSE_TRACING_BIT_EXT"),
3874                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,       "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"),
3875                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,        "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"),
3876                 tcu::Format::BitDesc(VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM,                        "VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM"),
3877         };
3878         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3879 }
3880
3881 tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
3882 {
3883         static const tcu::Format::BitDesc s_desc[] =
3884         {
3885                 tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,           "VK_SUBMIT_PROTECTED_BIT"),
3886                 tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT_KHR,       "VK_SUBMIT_PROTECTED_BIT_KHR"),
3887                 tcu::Format::BitDesc(VK_SUBMIT_FLAG_BITS_MAX_ENUM,      "VK_SUBMIT_FLAG_BITS_MAX_ENUM"),
3888         };
3889         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3890 }
3891
3892 tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
3893 {
3894         static const tcu::Format::BitDesc s_desc[] =
3895         {
3896                 tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,               "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
3897                 tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,                                                               "VK_RENDERING_SUSPENDING_BIT"),
3898                 tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,                                                                 "VK_RENDERING_RESUMING_BIT"),
3899                 tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,   "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"),
3900                 tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT_KHR,                                                   "VK_RENDERING_SUSPENDING_BIT_KHR"),
3901                 tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT_KHR,                                                             "VK_RENDERING_RESUMING_BIT_KHR"),
3902                 tcu::Format::BitDesc(VK_RENDERING_FLAG_BITS_MAX_ENUM,                                                   "VK_RENDERING_FLAG_BITS_MAX_ENUM"),
3903         };
3904         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3905 }
3906
3907 tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
3908 {
3909         static const tcu::Format::BitDesc s_desc[] =
3910         {
3911                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
3912                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
3913                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
3914                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
3915                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
3916                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
3917                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
3918                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
3919                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
3920                 tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,                               "VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR"),
3921         };
3922         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3923 }
3924
3925 tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
3926 {
3927         static const tcu::Format::BitDesc s_desc[] =
3928         {
3929                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
3930                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
3931                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
3932                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
3933                 tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,         "VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3934         };
3935         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3936 }
3937
3938 tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
3939 {
3940         static const tcu::Format::BitDesc s_desc[] =
3941         {
3942                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
3943                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
3944                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
3945                 tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                "VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
3946         };
3947         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3948 }
3949
3950 tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
3951 {
3952         static const tcu::Format::BitDesc s_desc[] =
3953         {
3954                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,                                "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"),
3955                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,                               "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"),
3956                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,                                  "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"),
3957                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR,   "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"),
3958                 tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,               "VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR"),
3959         };
3960         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3961 }
3962
3963 tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
3964 {
3965         static const tcu::Format::BitDesc s_desc[] =
3966         {
3967                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
3968                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
3969                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
3970                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
3971                 tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,                             "VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
3972         };
3973         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3974 }
3975
3976 tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
3977 {
3978         static const tcu::Format::BitDesc s_desc[] =
3979         {
3980                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
3981                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
3982                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"),
3983                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"),
3984                 tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,                 "VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR"),
3985         };
3986         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3987 }
3988
3989 tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
3990 {
3991         static const tcu::Format::BitDesc s_desc[] =
3992         {
3993                 tcu::Format::BitDesc(VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,  "VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR"),
3994         };
3995         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
3996 }
3997
3998 tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
3999 {
4000         static const tcu::Format::BitDesc s_desc[] =
4001         {
4002                 tcu::Format::BitDesc(VK_DEBUG_REPORT_INFORMATION_BIT_EXT,                       "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"),
4003                 tcu::Format::BitDesc(VK_DEBUG_REPORT_WARNING_BIT_EXT,                           "VK_DEBUG_REPORT_WARNING_BIT_EXT"),
4004                 tcu::Format::BitDesc(VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,       "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"),
4005                 tcu::Format::BitDesc(VK_DEBUG_REPORT_ERROR_BIT_EXT,                                     "VK_DEBUG_REPORT_ERROR_BIT_EXT"),
4006                 tcu::Format::BitDesc(VK_DEBUG_REPORT_DEBUG_BIT_EXT,                                     "VK_DEBUG_REPORT_DEBUG_BIT_EXT"),
4007                 tcu::Format::BitDesc(VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,            "VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT"),
4008         };
4009         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4010 }
4011
4012 tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
4013 {
4014         static const tcu::Format::BitDesc s_desc[] =
4015         {
4016                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,                "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"),
4017                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,    "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"),
4018                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,                 "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"),
4019                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV,             "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"),
4020                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV"),
4021         };
4022         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4023 }
4024
4025 tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
4026 {
4027         static const tcu::Format::BitDesc s_desc[] =
4028         {
4029                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,  "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"),
4030                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"),
4031                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV,              "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"),
4032                 tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,  "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV"),
4033         };
4034         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4035 }
4036
4037 tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
4038 {
4039         static const tcu::Format::BitDesc s_desc[] =
4040         {
4041                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,                 "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
4042                 tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,   "VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT"),
4043         };
4044         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4045 }
4046
4047 tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
4048 {
4049         static const tcu::Format::BitDesc s_desc[] =
4050         {
4051                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,                 "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
4052                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,                             "VK_SURFACE_COUNTER_VBLANK_EXT"),
4053                 tcu::Format::BitDesc(VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT, "VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT"),
4054         };
4055         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4056 }
4057
4058 tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
4059 {
4060         static const tcu::Format::BitDesc s_desc[] =
4061         {
4062                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
4063                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,                              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
4064                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
4065                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,                             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
4066                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,    "VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT"),
4067         };
4068         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4069 }
4070
4071 tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
4072 {
4073         static const tcu::Format::BitDesc s_desc[] =
4074         {
4075                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,                       "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
4076                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,            "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
4077                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,           "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
4078                 tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,        "VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
4079         };
4080         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4081 }
4082
4083 tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
4084 {
4085         static const tcu::Format::BitDesc s_desc[] =
4086         {
4087                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
4088                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
4089                 tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,                                                         "VK_GEOMETRY_OPAQUE_BIT_NV"),
4090                 tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,        "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
4091                 tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,                                        "VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
4092         };
4093         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4094 }
4095
4096 tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
4097 {
4098         static const tcu::Format::BitDesc s_desc[] =
4099         {
4100                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,         "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
4101                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,                         "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
4102                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                         "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
4103                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                                      "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
4104                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,      "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
4105                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,                         "VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
4106                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,       "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
4107                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,                                          "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
4108                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,                                       "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
4109                 tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,                                       "VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
4110         };
4111         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4112 }
4113
4114 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
4115 {
4116         static const tcu::Format::BitDesc s_desc[] =
4117         {
4118                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4119                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4120                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4121                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4122                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4123                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
4124                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4125                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4126                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4127                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4128                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4129                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4130         };
4131         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4132 }
4133
4134 tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
4135 {
4136         static const tcu::Format::BitDesc s_desc[] =
4137         {
4138                 tcu::Format::BitDesc(VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,       "VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD"),
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> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
4144 {
4145         static const tcu::Format::BitDesc s_desc[] =
4146         {
4147                 tcu::Format::BitDesc(VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,  "VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD"),
4148         };
4149         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4150 }
4151
4152 tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
4153 {
4154         static const tcu::Format::BitDesc s_desc[] =
4155         {
4156                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
4157                 tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,   "VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
4158         };
4159         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4160 }
4161
4162 tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
4163 {
4164         static const tcu::Format::BitDesc s_desc[] =
4165         {
4166                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
4167                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
4168                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
4169                 tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,           "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
4170         };
4171         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4172 }
4173
4174 tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
4175 {
4176         static const tcu::Format::BitDesc s_desc[] =
4177         {
4178                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
4179                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
4180                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
4181                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
4182                 tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,                                "VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
4183         };
4184         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4185 }
4186
4187 tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
4188 {
4189         static const tcu::Format::BitDesc s_desc[] =
4190         {
4191                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,               "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
4192                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
4193                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,                              "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
4194                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
4195                 tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT,                               "VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT"),
4196         };
4197         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4198 }
4199
4200 tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
4201 {
4202         static const tcu::Format::BitDesc s_desc[] =
4203         {
4204                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,                          "VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
4205                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,       "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
4206                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
4207                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,                         "VK_IMAGE_COMPRESSION_DISABLED_EXT"),
4208                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT,       "VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT"),
4209         };
4210         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4211 }
4212
4213 tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
4214 {
4215         static const tcu::Format::BitDesc s_desc[] =
4216         {
4217                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,                                  "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
4218                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
4219                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
4220                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
4221                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
4222                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
4223                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
4224                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
4225                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
4226                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
4227                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
4228                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
4229                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
4230                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
4231                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
4232                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
4233                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
4234                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
4235                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
4236                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
4237                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
4238                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
4239                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
4240                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
4241                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
4242                 tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT,    "VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT"),
4243         };
4244         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4245 }
4246
4247 tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
4248 {
4249         static const tcu::Format::BitDesc s_desc[] =
4250         {
4251                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
4252                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
4253                 tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                   "VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
4254         };
4255         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4256 }
4257
4258 tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
4259 {
4260         static const tcu::Format::BitDesc s_desc[] =
4261         {
4262                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,                  "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
4263                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
4264                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
4265                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
4266                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
4267                 tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,   "VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR"),
4268         };
4269         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4270 }
4271
4272 tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
4273 {
4274         static const tcu::Format::BitDesc s_desc[] =
4275         {
4276                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,                       "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
4277                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,            "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
4278                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
4279                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
4280                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
4281                 tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,        "VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR"),
4282         };
4283         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4284 }
4285
4286 tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
4287 {
4288         static const tcu::Format::BitDesc s_desc[] =
4289         {
4290                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,                          "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
4291                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,                            "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
4292                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
4293                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
4294                 tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR"),
4295         };
4296         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4297 }
4298
4299 tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
4300 {
4301         static const tcu::Format::BitDesc s_desc[] =
4302         {
4303                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,                     "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
4304                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,     "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
4305                 tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                        "VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
4306         };
4307         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4308 }
4309
4310 tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
4311 {
4312         static const tcu::Format::BitDesc s_desc[] =
4313         {
4314                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,                               "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
4315                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
4316                 tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
4317         };
4318         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4319 }
4320
4321 tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
4322 {
4323         static const tcu::Format::BitDesc s_desc[] =
4324         {
4325                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,                               "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
4326                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,                             "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
4327                 tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4328         };
4329         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4330 }
4331
4332 tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
4333 {
4334         static const tcu::Format::BitDesc s_desc[] =
4335         {
4336                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,                     "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
4337                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,                      "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
4338                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,            "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
4339                 tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR,     "VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR"),
4340         };
4341         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4342 }
4343
4344 tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
4345 {
4346         static const tcu::Format::BitDesc s_desc[] =
4347         {
4348                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR,                                            "VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR"),
4349                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
4350                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
4351                 tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                         "VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
4352         };
4353         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4354 }
4355
4356 tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
4357 {
4358         static const tcu::Format::BitDesc s_desc[] =
4359         {
4360                 tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,                               "VK_VIDEO_DECODE_DEFAULT_KHR"),
4361                 tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
4362                 tcu::Format::BitDesc(VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR"),
4363         };
4364         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4365 }
4366
4367 tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
4368 {
4369         static const tcu::Format::BitDesc s_desc[] =
4370         {
4371                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,                               "VK_VIDEO_ENCODE_DEFAULT_KHR"),
4372                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
4373                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR"),
4374         };
4375         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4376 }
4377
4378 tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
4379 {
4380         static const tcu::Format::BitDesc s_desc[] =
4381         {
4382                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR,                                                            "VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"),
4383                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,     "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
4384                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                                         "VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
4385         };
4386         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4387 }
4388
4389 tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
4390 {
4391         static const tcu::Format::BitDesc s_desc[] =
4392         {
4393                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,                    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
4394                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
4395                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
4396                 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"),
4397         };
4398         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4399 }
4400
4401 tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
4402 {
4403         static const tcu::Format::BitDesc s_desc[] =
4404         {
4405                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,                          "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
4406                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR,           "VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"),
4407                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
4408         };
4409         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4410 }
4411
4412 tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
4413 {
4414         static const tcu::Format::BitDesc s_desc[] =
4415         {
4416                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"),
4417                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,             "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"),
4418                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4419                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,   "VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"),
4420                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4421                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4422                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                                  "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
4423                 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"),
4424                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"),
4425                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4426                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
4427                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
4428                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4429                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
4430                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
4431                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
4432                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,                "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
4433                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
4434                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
4435                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,    "VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"),
4436                 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"),
4437                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
4438                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
4439                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4440                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4441                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT"),
4442         };
4443         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4444 }
4445
4446 tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
4447 {
4448         static const tcu::Format::BitDesc s_desc[] =
4449         {
4450                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
4451                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
4452                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,                   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
4453                 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"),
4454         };
4455         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4456 }
4457
4458 tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
4459 {
4460         static const tcu::Format::BitDesc s_desc[] =
4461         {
4462                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
4463                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
4464                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4465                 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"),
4466         };
4467         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4468 }
4469
4470 tcu::Format::Bitfield<32> getVideoEncodeH264RateControlStructureFlagsEXTStr (VkVideoEncodeH264RateControlStructureFlagsEXT value)
4471 {
4472         static const tcu::Format::BitDesc s_desc[] =
4473         {
4474                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,                           "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
4475                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,                          "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
4476                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,                        "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
4477                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,        "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
4478         };
4479         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4480 }
4481
4482 tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
4483 {
4484         static const tcu::Format::BitDesc s_desc[] =
4485         {
4486                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
4487                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
4488                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,            "VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"),
4489                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,                                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
4490                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"),
4491                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
4492                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
4493                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,          "VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"),
4494                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"),
4495                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
4496                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
4497                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,       "VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"),
4498                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
4499                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
4500                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
4501                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,                         "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
4502                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"),
4503                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,        "VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"),
4504                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"),
4505                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"),
4506                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"),
4507                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"),
4508                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"),
4509                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
4510                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                                      "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
4511                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
4512                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT"),
4513         };
4514         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4515 }
4516
4517 tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
4518 {
4519         static const tcu::Format::BitDesc s_desc[] =
4520         {
4521                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,                             "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
4522                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,             "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4523                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,                   "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
4524                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,    "VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4525         };
4526         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4527 }
4528
4529 tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
4530 {
4531         static const tcu::Format::BitDesc s_desc[] =
4532         {
4533                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
4534                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
4535                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
4536                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,   "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
4537         };
4538         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4539 }
4540
4541 tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
4542 {
4543         static const tcu::Format::BitDesc s_desc[] =
4544         {
4545                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
4546                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
4547                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
4548                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT,      "VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT"),
4549         };
4550         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4551 }
4552
4553 tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
4554 {
4555         static const tcu::Format::BitDesc s_desc[] =
4556         {
4557                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,                               "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
4558                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,                               "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
4559                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,                              "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
4560                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,                              "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
4561                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT,  "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT"),
4562         };
4563         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4564 }
4565
4566 tcu::Format::Bitfield<32> getVideoEncodeH265RateControlStructureFlagsEXTStr (VkVideoEncodeH265RateControlStructureFlagsEXT value)
4567 {
4568         static const tcu::Format::BitDesc s_desc[] =
4569         {
4570                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,                           "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
4571                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
4572                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,                        "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
4573                 tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,        "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
4574         };
4575         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4576 }
4577
4578 tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
4579 {
4580         static const tcu::Format::BitDesc s_desc[] =
4581         {
4582                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,                                               "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
4583                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,  "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"),
4584                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT,    "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"),
4585                 tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT,                                "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT"),
4586         };
4587         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4588 }
4589
4590 tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
4591 {
4592         static const tcu::Format::BitDesc s_desc[] =
4593         {
4594                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
4595                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,          "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
4596                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,        "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
4597                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
4598                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
4599                 tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA"),
4600         };
4601         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4602 }
4603
4604 tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
4605 {
4606         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4607 }
4608
4609 tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
4610 {
4611         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4612 }
4613
4614 tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
4615 {
4616         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4617 }
4618
4619 tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
4620 {
4621         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4622 }
4623
4624 tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags value)
4625 {
4626         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4627 }
4628
4629 tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
4630 {
4631         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4632 }
4633
4634 tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
4635 {
4636         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4637 }
4638
4639 tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
4640 {
4641         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4642 }
4643
4644 tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
4645 {
4646         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4647 }
4648
4649 tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
4650 {
4651         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4652 }
4653
4654 tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
4655 {
4656         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4657 }
4658
4659 tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
4660 {
4661         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4662 }
4663
4664 tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
4665 {
4666         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4667 }
4668
4669 tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
4670 {
4671         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4672 }
4673
4674 tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
4675 {
4676         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4677 }
4678
4679 tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
4680 {
4681         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4682 }
4683
4684 tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
4685 {
4686         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4687 }
4688
4689 tcu::Format::Bitfield<32> getDisplayModeCreateFlagsKHRStr (VkDisplayModeCreateFlagsKHR value)
4690 {
4691         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4692 }
4693
4694 tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCreateFlagsKHR value)
4695 {
4696         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4697 }
4698
4699 tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
4700 {
4701         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4702 }
4703
4704 tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
4705 {
4706         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4707 }
4708
4709 tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
4710 {
4711         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4712 }
4713
4714 tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
4715 {
4716         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4717 }
4718
4719 tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
4720 {
4721         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4722 }
4723
4724 tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
4725 {
4726         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4727 }
4728
4729 tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
4730 {
4731         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4732 }
4733
4734 tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
4735 {
4736         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4737 }
4738
4739 tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
4740 {
4741         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4742 }
4743
4744 tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
4745 {
4746         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4747 }
4748
4749 tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
4750 {
4751         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4752 }
4753
4754 tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurfaceCreateFlagsEXT value)
4755 {
4756         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4757 }
4758
4759 tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
4760 {
4761         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4762 }
4763
4764 tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
4765 {
4766         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4767 }
4768
4769 tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
4770 {
4771         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4772 }
4773
4774 tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
4775 {
4776         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4777 }
4778
4779 tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
4780 {
4781         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4782 }
4783
4784 tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
4785 {
4786         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4787 }
4788
4789 tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
4790 {
4791         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4792 }
4793
4794 tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
4795 {
4796         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4797 }
4798
4799 tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
4800 {
4801         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4802 }
4803
4804 tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
4805 {
4806         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4807 }
4808
4809 tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
4810 {
4811         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4812 }
4813
4814 tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
4815 {
4816         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4817 }
4818
4819 tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
4820 {
4821         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4822 }
4823
4824 tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
4825 {
4826         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4827 }
4828
4829 tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
4830 {
4831         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4832 }
4833
4834 tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
4835 {
4836         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4837 }
4838
4839 tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
4840 {
4841         return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
4842 }
4843
4844 tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
4845 {
4846         static const tcu::Format::BitDesc s_desc[] =
4847         {
4848                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
4849                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
4850                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
4851                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
4852                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
4853                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
4854                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
4855                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
4856                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
4857                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
4858                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
4859                 tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
4860         };
4861         return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
4862 }
4863
4864 std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
4865 {
4866         s << "VkExtent2D = {\n";
4867         s << "\twidth = " << value.width << '\n';
4868         s << "\theight = " << value.height << '\n';
4869         s << '}';
4870         return s;
4871 }
4872
4873 std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
4874 {
4875         s << "VkExtent3D = {\n";
4876         s << "\twidth = " << value.width << '\n';
4877         s << "\theight = " << value.height << '\n';
4878         s << "\tdepth = " << value.depth << '\n';
4879         s << '}';
4880         return s;
4881 }
4882
4883 std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
4884 {
4885         s << "VkOffset2D = {\n";
4886         s << "\tx = " << value.x << '\n';
4887         s << "\ty = " << value.y << '\n';
4888         s << '}';
4889         return s;
4890 }
4891
4892 std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
4893 {
4894         s << "VkOffset3D = {\n";
4895         s << "\tx = " << value.x << '\n';
4896         s << "\ty = " << value.y << '\n';
4897         s << "\tz = " << value.z << '\n';
4898         s << '}';
4899         return s;
4900 }
4901
4902 std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
4903 {
4904         s << "VkRect2D = {\n";
4905         s << "\toffset = " << value.offset << '\n';
4906         s << "\textent = " << value.extent << '\n';
4907         s << '}';
4908         return s;
4909 }
4910
4911 std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
4912 {
4913         s << "VkBaseInStructure = {\n";
4914         s << "\tsType = " << value.sType << '\n';
4915         s << "\tpNext = " << value.pNext << '\n';
4916         s << '}';
4917         return s;
4918 }
4919
4920 std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
4921 {
4922         s << "VkBaseOutStructure = {\n";
4923         s << "\tsType = " << value.sType << '\n';
4924         s << "\tpNext = " << value.pNext << '\n';
4925         s << '}';
4926         return s;
4927 }
4928
4929 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
4930 {
4931         s << "VkBufferMemoryBarrier = {\n";
4932         s << "\tsType = " << value.sType << '\n';
4933         s << "\tpNext = " << value.pNext << '\n';
4934         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4935         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4936         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
4937         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
4938         s << "\tbuffer = " << value.buffer << '\n';
4939         s << "\toffset = " << value.offset << '\n';
4940         s << "\tsize = " << value.size << '\n';
4941         s << '}';
4942         return s;
4943 }
4944
4945 std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
4946 {
4947         s << "VkDispatchIndirectCommand = {\n";
4948         s << "\tx = " << value.x << '\n';
4949         s << "\ty = " << value.y << '\n';
4950         s << "\tz = " << value.z << '\n';
4951         s << '}';
4952         return s;
4953 }
4954
4955 std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
4956 {
4957         s << "VkDrawIndexedIndirectCommand = {\n";
4958         s << "\tindexCount = " << value.indexCount << '\n';
4959         s << "\tinstanceCount = " << value.instanceCount << '\n';
4960         s << "\tfirstIndex = " << value.firstIndex << '\n';
4961         s << "\tvertexOffset = " << value.vertexOffset << '\n';
4962         s << "\tfirstInstance = " << value.firstInstance << '\n';
4963         s << '}';
4964         return s;
4965 }
4966
4967 std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
4968 {
4969         s << "VkDrawIndirectCommand = {\n";
4970         s << "\tvertexCount = " << value.vertexCount << '\n';
4971         s << "\tinstanceCount = " << value.instanceCount << '\n';
4972         s << "\tfirstVertex = " << value.firstVertex << '\n';
4973         s << "\tfirstInstance = " << value.firstInstance << '\n';
4974         s << '}';
4975         return s;
4976 }
4977
4978 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
4979 {
4980         s << "VkImageSubresourceRange = {\n";
4981         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
4982         s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
4983         s << "\tlevelCount = " << value.levelCount << '\n';
4984         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
4985         s << "\tlayerCount = " << value.layerCount << '\n';
4986         s << '}';
4987         return s;
4988 }
4989
4990 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
4991 {
4992         s << "VkImageMemoryBarrier = {\n";
4993         s << "\tsType = " << value.sType << '\n';
4994         s << "\tpNext = " << value.pNext << '\n';
4995         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
4996         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
4997         s << "\toldLayout = " << value.oldLayout << '\n';
4998         s << "\tnewLayout = " << value.newLayout << '\n';
4999         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
5000         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
5001         s << "\timage = " << value.image << '\n';
5002         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5003         s << '}';
5004         return s;
5005 }
5006
5007 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
5008 {
5009         s << "VkMemoryBarrier = {\n";
5010         s << "\tsType = " << value.sType << '\n';
5011         s << "\tpNext = " << value.pNext << '\n';
5012         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
5013         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
5014         s << '}';
5015         return s;
5016 }
5017
5018 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
5019 {
5020         s << "VkPipelineCacheHeaderVersionOne = {\n";
5021         s << "\theaderSize = " << value.headerSize << '\n';
5022         s << "\theaderVersion = " << value.headerVersion << '\n';
5023         s << "\tvendorID = " << value.vendorID << '\n';
5024         s << "\tdeviceID = " << value.deviceID << '\n';
5025         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';
5026         s << '}';
5027         return s;
5028 }
5029
5030 std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
5031 {
5032         s << "VkAllocationCallbacks = {\n";
5033         s << "\tpUserData = " << value.pUserData << '\n';
5034         s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
5035         s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
5036         s << "\tpfnFree = " << value.pfnFree << '\n';
5037         s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
5038         s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
5039         s << '}';
5040         return s;
5041 }
5042
5043 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
5044 {
5045         s << "VkApplicationInfo = {\n";
5046         s << "\tsType = " << value.sType << '\n';
5047         s << "\tpNext = " << value.pNext << '\n';
5048         s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
5049         s << "\tapplicationVersion = " << value.applicationVersion << '\n';
5050         s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
5051         s << "\tengineVersion = " << value.engineVersion << '\n';
5052         s << "\tapiVersion = " << value.apiVersion << '\n';
5053         s << '}';
5054         return s;
5055 }
5056
5057 std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
5058 {
5059         s << "VkFormatProperties = {\n";
5060         s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
5061         s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
5062         s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
5063         s << '}';
5064         return s;
5065 }
5066
5067 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
5068 {
5069         s << "VkImageFormatProperties = {\n";
5070         s << "\tmaxExtent = " << value.maxExtent << '\n';
5071         s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
5072         s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
5073         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
5074         s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
5075         s << '}';
5076         return s;
5077 }
5078
5079 std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
5080 {
5081         s << "VkInstanceCreateInfo = {\n";
5082         s << "\tsType = " << value.sType << '\n';
5083         s << "\tpNext = " << value.pNext << '\n';
5084         s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
5085         s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
5086         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5087         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5088         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5089         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5090         s << '}';
5091         return s;
5092 }
5093
5094 std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
5095 {
5096         s << "VkMemoryHeap = {\n";
5097         s << "\tsize = " << value.size << '\n';
5098         s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
5099         s << '}';
5100         return s;
5101 }
5102
5103 std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
5104 {
5105         s << "VkMemoryType = {\n";
5106         s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
5107         s << "\theapIndex = " << value.heapIndex << '\n';
5108         s << '}';
5109         return s;
5110 }
5111
5112 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
5113 {
5114         s << "VkPhysicalDeviceFeatures = {\n";
5115         s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
5116         s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
5117         s << "\timageCubeArray = " << value.imageCubeArray << '\n';
5118         s << "\tindependentBlend = " << value.independentBlend << '\n';
5119         s << "\tgeometryShader = " << value.geometryShader << '\n';
5120         s << "\ttessellationShader = " << value.tessellationShader << '\n';
5121         s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
5122         s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
5123         s << "\tlogicOp = " << value.logicOp << '\n';
5124         s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
5125         s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
5126         s << "\tdepthClamp = " << value.depthClamp << '\n';
5127         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5128         s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
5129         s << "\tdepthBounds = " << value.depthBounds << '\n';
5130         s << "\twideLines = " << value.wideLines << '\n';
5131         s << "\tlargePoints = " << value.largePoints << '\n';
5132         s << "\talphaToOne = " << value.alphaToOne << '\n';
5133         s << "\tmultiViewport = " << value.multiViewport << '\n';
5134         s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
5135         s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
5136         s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
5137         s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
5138         s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
5139         s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
5140         s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
5141         s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
5142         s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
5143         s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
5144         s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
5145         s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
5146         s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
5147         s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
5148         s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
5149         s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
5150         s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
5151         s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
5152         s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
5153         s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
5154         s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
5155         s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
5156         s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
5157         s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
5158         s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
5159         s << "\tsparseBinding = " << value.sparseBinding << '\n';
5160         s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
5161         s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
5162         s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
5163         s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
5164         s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
5165         s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
5166         s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
5167         s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
5168         s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
5169         s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
5170         s << '}';
5171         return s;
5172 }
5173
5174 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
5175 {
5176         s << "VkPhysicalDeviceLimits = {\n";
5177         s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
5178         s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
5179         s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
5180         s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
5181         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
5182         s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
5183         s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
5184         s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
5185         s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
5186         s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
5187         s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
5188         s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
5189         s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
5190         s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
5191         s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
5192         s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
5193         s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
5194         s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
5195         s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
5196         s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
5197         s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
5198         s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
5199         s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
5200         s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
5201         s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
5202         s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
5203         s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
5204         s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
5205         s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
5206         s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
5207         s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
5208         s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
5209         s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
5210         s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
5211         s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
5212         s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
5213         s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
5214         s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
5215         s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
5216         s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
5217         s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
5218         s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
5219         s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
5220         s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
5221         s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
5222         s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
5223         s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
5224         s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
5225         s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
5226         s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
5227         s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
5228         s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
5229         s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
5230         s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
5231         s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
5232         s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
5233         s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
5234         s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
5235         s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
5236         s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
5237         s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
5238         s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
5239         s << "\tmaxViewports = " << value.maxViewports << '\n';
5240         s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
5241         s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
5242         s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
5243         s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
5244         s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
5245         s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
5246         s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
5247         s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
5248         s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
5249         s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
5250         s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
5251         s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
5252         s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
5253         s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
5254         s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
5255         s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
5256         s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
5257         s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
5258         s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
5259         s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
5260         s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
5261         s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
5262         s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
5263         s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
5264         s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
5265         s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
5266         s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
5267         s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
5268         s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
5269         s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
5270         s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
5271         s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
5272         s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
5273         s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
5274         s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
5275         s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
5276         s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
5277         s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
5278         s << "\tstrictLines = " << value.strictLines << '\n';
5279         s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
5280         s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
5281         s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
5282         s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
5283         s << '}';
5284         return s;
5285 }
5286
5287 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
5288 {
5289         s << "VkPhysicalDeviceMemoryProperties = {\n";
5290         s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
5291         s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
5292         s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
5293         s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
5294         s << '}';
5295         return s;
5296 }
5297
5298 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
5299 {
5300         s << "VkPhysicalDeviceSparseProperties = {\n";
5301         s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
5302         s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
5303         s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
5304         s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
5305         s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
5306         s << '}';
5307         return s;
5308 }
5309
5310 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
5311 {
5312         s << "VkPhysicalDeviceProperties = {\n";
5313         s << "\tapiVersion = " << value.apiVersion << '\n';
5314         s << "\tdriverVersion = " << value.driverVersion << '\n';
5315         s << "\tvendorID = " << value.vendorID << '\n';
5316         s << "\tdeviceID = " << value.deviceID << '\n';
5317         s << "\tdeviceType = " << value.deviceType << '\n';
5318         s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
5319         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';
5320         s << "\tlimits = " << value.limits << '\n';
5321         s << "\tsparseProperties = " << value.sparseProperties << '\n';
5322         s << '}';
5323         return s;
5324 }
5325
5326 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
5327 {
5328         s << "VkQueueFamilyProperties = {\n";
5329         s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
5330         s << "\tqueueCount = " << value.queueCount << '\n';
5331         s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
5332         s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
5333         s << '}';
5334         return s;
5335 }
5336
5337 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
5338 {
5339         s << "VkDeviceQueueCreateInfo = {\n";
5340         s << "\tsType = " << value.sType << '\n';
5341         s << "\tpNext = " << value.pNext << '\n';
5342         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
5343         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
5344         s << "\tqueueCount = " << value.queueCount << '\n';
5345         s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
5346         s << '}';
5347         return s;
5348 }
5349
5350 std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
5351 {
5352         s << "VkDeviceCreateInfo = {\n";
5353         s << "\tsType = " << value.sType << '\n';
5354         s << "\tpNext = " << value.pNext << '\n';
5355         s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
5356         s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
5357         s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
5358         s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
5359         s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
5360         s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
5361         s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
5362         s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
5363         s << '}';
5364         return s;
5365 }
5366
5367 std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
5368 {
5369         s << "VkExtensionProperties = {\n";
5370         s << "\textensionName = " << (const char*)value.extensionName << '\n';
5371         s << "\tspecVersion = " << value.specVersion << '\n';
5372         s << '}';
5373         return s;
5374 }
5375
5376 std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
5377 {
5378         s << "VkLayerProperties = {\n";
5379         s << "\tlayerName = " << (const char*)value.layerName << '\n';
5380         s << "\tspecVersion = " << value.specVersion << '\n';
5381         s << "\timplementationVersion = " << value.implementationVersion << '\n';
5382         s << "\tdescription = " << (const char*)value.description << '\n';
5383         s << '}';
5384         return s;
5385 }
5386
5387 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
5388 {
5389         s << "VkSubmitInfo = {\n";
5390         s << "\tsType = " << value.sType << '\n';
5391         s << "\tpNext = " << value.pNext << '\n';
5392         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5393         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5394         s << "\tpWaitDstStageMask = " << value.pWaitDstStageMask << '\n';
5395         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
5396         s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
5397         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5398         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5399         s << '}';
5400         return s;
5401 }
5402
5403 std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
5404 {
5405         s << "VkMappedMemoryRange = {\n";
5406         s << "\tsType = " << value.sType << '\n';
5407         s << "\tpNext = " << value.pNext << '\n';
5408         s << "\tmemory = " << value.memory << '\n';
5409         s << "\toffset = " << value.offset << '\n';
5410         s << "\tsize = " << value.size << '\n';
5411         s << '}';
5412         return s;
5413 }
5414
5415 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
5416 {
5417         s << "VkMemoryAllocateInfo = {\n";
5418         s << "\tsType = " << value.sType << '\n';
5419         s << "\tpNext = " << value.pNext << '\n';
5420         s << "\tallocationSize = " << value.allocationSize << '\n';
5421         s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
5422         s << '}';
5423         return s;
5424 }
5425
5426 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
5427 {
5428         s << "VkMemoryRequirements = {\n";
5429         s << "\tsize = " << value.size << '\n';
5430         s << "\talignment = " << value.alignment << '\n';
5431         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
5432         s << '}';
5433         return s;
5434 }
5435
5436 std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
5437 {
5438         s << "VkSparseMemoryBind = {\n";
5439         s << "\tresourceOffset = " << value.resourceOffset << '\n';
5440         s << "\tsize = " << value.size << '\n';
5441         s << "\tmemory = " << value.memory << '\n';
5442         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5443         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5444         s << '}';
5445         return s;
5446 }
5447
5448 std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
5449 {
5450         s << "VkSparseBufferMemoryBindInfo = {\n";
5451         s << "\tbuffer = " << value.buffer << '\n';
5452         s << "\tbindCount = " << value.bindCount << '\n';
5453         s << "\tpBinds = " << value.pBinds << '\n';
5454         s << '}';
5455         return s;
5456 }
5457
5458 std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value)
5459 {
5460         s << "VkSparseImageOpaqueMemoryBindInfo = {\n";
5461         s << "\timage = " << value.image << '\n';
5462         s << "\tbindCount = " << value.bindCount << '\n';
5463         s << "\tpBinds = " << value.pBinds << '\n';
5464         s << '}';
5465         return s;
5466 }
5467
5468 std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
5469 {
5470         s << "VkImageSubresource = {\n";
5471         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5472         s << "\tmipLevel = " << value.mipLevel << '\n';
5473         s << "\tarrayLayer = " << value.arrayLayer << '\n';
5474         s << '}';
5475         return s;
5476 }
5477
5478 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
5479 {
5480         s << "VkSparseImageMemoryBind = {\n";
5481         s << "\tsubresource = " << value.subresource << '\n';
5482         s << "\toffset = " << value.offset << '\n';
5483         s << "\textent = " << value.extent << '\n';
5484         s << "\tmemory = " << value.memory << '\n';
5485         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
5486         s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
5487         s << '}';
5488         return s;
5489 }
5490
5491 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
5492 {
5493         s << "VkSparseImageMemoryBindInfo = {\n";
5494         s << "\timage = " << value.image << '\n';
5495         s << "\tbindCount = " << value.bindCount << '\n';
5496         s << "\tpBinds = " << value.pBinds << '\n';
5497         s << '}';
5498         return s;
5499 }
5500
5501 std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
5502 {
5503         s << "VkBindSparseInfo = {\n";
5504         s << "\tsType = " << value.sType << '\n';
5505         s << "\tpNext = " << value.pNext << '\n';
5506         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
5507         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
5508         s << "\tbufferBindCount = " << value.bufferBindCount << '\n';
5509         s << "\tpBufferBinds = " << value.pBufferBinds << '\n';
5510         s << "\timageOpaqueBindCount = " << value.imageOpaqueBindCount << '\n';
5511         s << "\tpImageOpaqueBinds = " << value.pImageOpaqueBinds << '\n';
5512         s << "\timageBindCount = " << value.imageBindCount << '\n';
5513         s << "\tpImageBinds = " << value.pImageBinds << '\n';
5514         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
5515         s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
5516         s << '}';
5517         return s;
5518 }
5519
5520 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
5521 {
5522         s << "VkSparseImageFormatProperties = {\n";
5523         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
5524         s << "\timageGranularity = " << value.imageGranularity << '\n';
5525         s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
5526         s << '}';
5527         return s;
5528 }
5529
5530 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
5531 {
5532         s << "VkSparseImageMemoryRequirements = {\n";
5533         s << "\tformatProperties = " << value.formatProperties << '\n';
5534         s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
5535         s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
5536         s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
5537         s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
5538         s << '}';
5539         return s;
5540 }
5541
5542 std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
5543 {
5544         s << "VkFenceCreateInfo = {\n";
5545         s << "\tsType = " << value.sType << '\n';
5546         s << "\tpNext = " << value.pNext << '\n';
5547         s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
5548         s << '}';
5549         return s;
5550 }
5551
5552 std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
5553 {
5554         s << "VkSemaphoreCreateInfo = {\n";
5555         s << "\tsType = " << value.sType << '\n';
5556         s << "\tpNext = " << value.pNext << '\n';
5557         s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
5558         s << '}';
5559         return s;
5560 }
5561
5562 std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
5563 {
5564         s << "VkEventCreateInfo = {\n";
5565         s << "\tsType = " << value.sType << '\n';
5566         s << "\tpNext = " << value.pNext << '\n';
5567         s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
5568         s << '}';
5569         return s;
5570 }
5571
5572 std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
5573 {
5574         s << "VkQueryPoolCreateInfo = {\n";
5575         s << "\tsType = " << value.sType << '\n';
5576         s << "\tpNext = " << value.pNext << '\n';
5577         s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
5578         s << "\tqueryType = " << value.queryType << '\n';
5579         s << "\tqueryCount = " << value.queryCount << '\n';
5580         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
5581         s << '}';
5582         return s;
5583 }
5584
5585 std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
5586 {
5587         s << "VkBufferCreateInfo = {\n";
5588         s << "\tsType = " << value.sType << '\n';
5589         s << "\tpNext = " << value.pNext << '\n';
5590         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
5591         s << "\tsize = " << value.size << '\n';
5592         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
5593         s << "\tsharingMode = " << value.sharingMode << '\n';
5594         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5595         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5596         s << '}';
5597         return s;
5598 }
5599
5600 std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
5601 {
5602         s << "VkBufferViewCreateInfo = {\n";
5603         s << "\tsType = " << value.sType << '\n';
5604         s << "\tpNext = " << value.pNext << '\n';
5605         s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
5606         s << "\tbuffer = " << value.buffer << '\n';
5607         s << "\tformat = " << value.format << '\n';
5608         s << "\toffset = " << value.offset << '\n';
5609         s << "\trange = " << value.range << '\n';
5610         s << '}';
5611         return s;
5612 }
5613
5614 std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
5615 {
5616         s << "VkImageCreateInfo = {\n";
5617         s << "\tsType = " << value.sType << '\n';
5618         s << "\tpNext = " << value.pNext << '\n';
5619         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
5620         s << "\timageType = " << value.imageType << '\n';
5621         s << "\tformat = " << value.format << '\n';
5622         s << "\textent = " << value.extent << '\n';
5623         s << "\tmipLevels = " << value.mipLevels << '\n';
5624         s << "\tarrayLayers = " << value.arrayLayers << '\n';
5625         s << "\tsamples = " << value.samples << '\n';
5626         s << "\ttiling = " << value.tiling << '\n';
5627         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
5628         s << "\tsharingMode = " << value.sharingMode << '\n';
5629         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
5630         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
5631         s << "\tinitialLayout = " << value.initialLayout << '\n';
5632         s << '}';
5633         return s;
5634 }
5635
5636 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
5637 {
5638         s << "VkSubresourceLayout = {\n";
5639         s << "\toffset = " << value.offset << '\n';
5640         s << "\tsize = " << value.size << '\n';
5641         s << "\trowPitch = " << value.rowPitch << '\n';
5642         s << "\tarrayPitch = " << value.arrayPitch << '\n';
5643         s << "\tdepthPitch = " << value.depthPitch << '\n';
5644         s << '}';
5645         return s;
5646 }
5647
5648 std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
5649 {
5650         s << "VkComponentMapping = {\n";
5651         s << "\tr = " << value.r << '\n';
5652         s << "\tg = " << value.g << '\n';
5653         s << "\tb = " << value.b << '\n';
5654         s << "\ta = " << value.a << '\n';
5655         s << '}';
5656         return s;
5657 }
5658
5659 std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
5660 {
5661         s << "VkImageViewCreateInfo = {\n";
5662         s << "\tsType = " << value.sType << '\n';
5663         s << "\tpNext = " << value.pNext << '\n';
5664         s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
5665         s << "\timage = " << value.image << '\n';
5666         s << "\tviewType = " << value.viewType << '\n';
5667         s << "\tformat = " << value.format << '\n';
5668         s << "\tcomponents = " << value.components << '\n';
5669         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
5670         s << '}';
5671         return s;
5672 }
5673
5674 std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
5675 {
5676         s << "VkShaderModuleCreateInfo = {\n";
5677         s << "\tsType = " << value.sType << '\n';
5678         s << "\tpNext = " << value.pNext << '\n';
5679         s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
5680         s << "\tcodeSize = " << value.codeSize << '\n';
5681         s << "\tpCode = " << value.pCode << '\n';
5682         s << '}';
5683         return s;
5684 }
5685
5686 std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
5687 {
5688         s << "VkPipelineCacheCreateInfo = {\n";
5689         s << "\tsType = " << value.sType << '\n';
5690         s << "\tpNext = " << value.pNext << '\n';
5691         s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
5692         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
5693         s << "\tpInitialData = " << value.pInitialData << '\n';
5694         s << '}';
5695         return s;
5696 }
5697
5698 std::ostream& operator<< (std::ostream& s, const VkSpecializationMapEntry& value)
5699 {
5700         s << "VkSpecializationMapEntry = {\n";
5701         s << "\tconstantID = " << value.constantID << '\n';
5702         s << "\toffset = " << value.offset << '\n';
5703         s << "\tsize = " << value.size << '\n';
5704         s << '}';
5705         return s;
5706 }
5707
5708 std::ostream& operator<< (std::ostream& s, const VkSpecializationInfo& value)
5709 {
5710         s << "VkSpecializationInfo = {\n";
5711         s << "\tmapEntryCount = " << value.mapEntryCount << '\n';
5712         s << "\tpMapEntries = " << value.pMapEntries << '\n';
5713         s << "\tdataSize = " << value.dataSize << '\n';
5714         s << "\tpData = " << value.pData << '\n';
5715         s << '}';
5716         return s;
5717 }
5718
5719 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageCreateInfo& value)
5720 {
5721         s << "VkPipelineShaderStageCreateInfo = {\n";
5722         s << "\tsType = " << value.sType << '\n';
5723         s << "\tpNext = " << value.pNext << '\n';
5724         s << "\tflags = " << getPipelineShaderStageCreateFlagsStr(value.flags) << '\n';
5725         s << "\tstage = " << value.stage << '\n';
5726         s << "\tmodule = " << value.module << '\n';
5727         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
5728         s << "\tpSpecializationInfo = " << value.pSpecializationInfo << '\n';
5729         s << '}';
5730         return s;
5731 }
5732
5733 std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
5734 {
5735         s << "VkComputePipelineCreateInfo = {\n";
5736         s << "\tsType = " << value.sType << '\n';
5737         s << "\tpNext = " << value.pNext << '\n';
5738         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5739         s << "\tstage = " << value.stage << '\n';
5740         s << "\tlayout = " << value.layout << '\n';
5741         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5742         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5743         s << '}';
5744         return s;
5745 }
5746
5747 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
5748 {
5749         s << "VkVertexInputBindingDescription = {\n";
5750         s << "\tbinding = " << value.binding << '\n';
5751         s << "\tstride = " << value.stride << '\n';
5752         s << "\tinputRate = " << value.inputRate << '\n';
5753         s << '}';
5754         return s;
5755 }
5756
5757 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription& value)
5758 {
5759         s << "VkVertexInputAttributeDescription = {\n";
5760         s << "\tlocation = " << value.location << '\n';
5761         s << "\tbinding = " << value.binding << '\n';
5762         s << "\tformat = " << value.format << '\n';
5763         s << "\toffset = " << value.offset << '\n';
5764         s << '}';
5765         return s;
5766 }
5767
5768 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value)
5769 {
5770         s << "VkPipelineVertexInputStateCreateInfo = {\n";
5771         s << "\tsType = " << value.sType << '\n';
5772         s << "\tpNext = " << value.pNext << '\n';
5773         s << "\tflags = " << getPipelineVertexInputStateCreateFlagsStr(value.flags) << '\n';
5774         s << "\tvertexBindingDescriptionCount = " << value.vertexBindingDescriptionCount << '\n';
5775         s << "\tpVertexBindingDescriptions = " << value.pVertexBindingDescriptions << '\n';
5776         s << "\tvertexAttributeDescriptionCount = " << value.vertexAttributeDescriptionCount << '\n';
5777         s << "\tpVertexAttributeDescriptions = " << value.pVertexAttributeDescriptions << '\n';
5778         s << '}';
5779         return s;
5780 }
5781
5782 std::ostream& operator<< (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value)
5783 {
5784         s << "VkPipelineInputAssemblyStateCreateInfo = {\n";
5785         s << "\tsType = " << value.sType << '\n';
5786         s << "\tpNext = " << value.pNext << '\n';
5787         s << "\tflags = " << getPipelineInputAssemblyStateCreateFlagsStr(value.flags) << '\n';
5788         s << "\ttopology = " << value.topology << '\n';
5789         s << "\tprimitiveRestartEnable = " << value.primitiveRestartEnable << '\n';
5790         s << '}';
5791         return s;
5792 }
5793
5794 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value)
5795 {
5796         s << "VkPipelineTessellationStateCreateInfo = {\n";
5797         s << "\tsType = " << value.sType << '\n';
5798         s << "\tpNext = " << value.pNext << '\n';
5799         s << "\tflags = " << getPipelineTessellationStateCreateFlagsStr(value.flags) << '\n';
5800         s << "\tpatchControlPoints = " << value.patchControlPoints << '\n';
5801         s << '}';
5802         return s;
5803 }
5804
5805 std::ostream& operator<< (std::ostream& s, const VkViewport& value)
5806 {
5807         s << "VkViewport = {\n";
5808         s << "\tx = " << value.x << '\n';
5809         s << "\ty = " << value.y << '\n';
5810         s << "\twidth = " << value.width << '\n';
5811         s << "\theight = " << value.height << '\n';
5812         s << "\tminDepth = " << value.minDepth << '\n';
5813         s << "\tmaxDepth = " << value.maxDepth << '\n';
5814         s << '}';
5815         return s;
5816 }
5817
5818 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
5819 {
5820         s << "VkPipelineViewportStateCreateInfo = {\n";
5821         s << "\tsType = " << value.sType << '\n';
5822         s << "\tpNext = " << value.pNext << '\n';
5823         s << "\tflags = " << getPipelineViewportStateCreateFlagsStr(value.flags) << '\n';
5824         s << "\tviewportCount = " << value.viewportCount << '\n';
5825         s << "\tpViewports = " << value.pViewports << '\n';
5826         s << "\tscissorCount = " << value.scissorCount << '\n';
5827         s << "\tpScissors = " << value.pScissors << '\n';
5828         s << '}';
5829         return s;
5830 }
5831
5832 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value)
5833 {
5834         s << "VkPipelineRasterizationStateCreateInfo = {\n";
5835         s << "\tsType = " << value.sType << '\n';
5836         s << "\tpNext = " << value.pNext << '\n';
5837         s << "\tflags = " << getPipelineRasterizationStateCreateFlagsStr(value.flags) << '\n';
5838         s << "\tdepthClampEnable = " << value.depthClampEnable << '\n';
5839         s << "\trasterizerDiscardEnable = " << value.rasterizerDiscardEnable << '\n';
5840         s << "\tpolygonMode = " << value.polygonMode << '\n';
5841         s << "\tcullMode = " << getCullModeFlagsStr(value.cullMode) << '\n';
5842         s << "\tfrontFace = " << value.frontFace << '\n';
5843         s << "\tdepthBiasEnable = " << value.depthBiasEnable << '\n';
5844         s << "\tdepthBiasConstantFactor = " << value.depthBiasConstantFactor << '\n';
5845         s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
5846         s << "\tdepthBiasSlopeFactor = " << value.depthBiasSlopeFactor << '\n';
5847         s << "\tlineWidth = " << value.lineWidth << '\n';
5848         s << '}';
5849         return s;
5850 }
5851
5852 std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value)
5853 {
5854         s << "VkPipelineMultisampleStateCreateInfo = {\n";
5855         s << "\tsType = " << value.sType << '\n';
5856         s << "\tpNext = " << value.pNext << '\n';
5857         s << "\tflags = " << getPipelineMultisampleStateCreateFlagsStr(value.flags) << '\n';
5858         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
5859         s << "\tsampleShadingEnable = " << value.sampleShadingEnable << '\n';
5860         s << "\tminSampleShading = " << value.minSampleShading << '\n';
5861         s << "\tpSampleMask = " << value.pSampleMask << '\n';
5862         s << "\talphaToCoverageEnable = " << value.alphaToCoverageEnable << '\n';
5863         s << "\talphaToOneEnable = " << value.alphaToOneEnable << '\n';
5864         s << '}';
5865         return s;
5866 }
5867
5868 std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
5869 {
5870         s << "VkStencilOpState = {\n";
5871         s << "\tfailOp = " << value.failOp << '\n';
5872         s << "\tpassOp = " << value.passOp << '\n';
5873         s << "\tdepthFailOp = " << value.depthFailOp << '\n';
5874         s << "\tcompareOp = " << value.compareOp << '\n';
5875         s << "\tcompareMask = " << value.compareMask << '\n';
5876         s << "\twriteMask = " << value.writeMask << '\n';
5877         s << "\treference = " << value.reference << '\n';
5878         s << '}';
5879         return s;
5880 }
5881
5882 std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
5883 {
5884         s << "VkPipelineDepthStencilStateCreateInfo = {\n";
5885         s << "\tsType = " << value.sType << '\n';
5886         s << "\tpNext = " << value.pNext << '\n';
5887         s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
5888         s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
5889         s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
5890         s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
5891         s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
5892         s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
5893         s << "\tfront = " << value.front << '\n';
5894         s << "\tback = " << value.back << '\n';
5895         s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
5896         s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
5897         s << '}';
5898         return s;
5899 }
5900
5901 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
5902 {
5903         s << "VkPipelineColorBlendAttachmentState = {\n";
5904         s << "\tblendEnable = " << value.blendEnable << '\n';
5905         s << "\tsrcColorBlendFactor = " << value.srcColorBlendFactor << '\n';
5906         s << "\tdstColorBlendFactor = " << value.dstColorBlendFactor << '\n';
5907         s << "\tcolorBlendOp = " << value.colorBlendOp << '\n';
5908         s << "\tsrcAlphaBlendFactor = " << value.srcAlphaBlendFactor << '\n';
5909         s << "\tdstAlphaBlendFactor = " << value.dstAlphaBlendFactor << '\n';
5910         s << "\talphaBlendOp = " << value.alphaBlendOp << '\n';
5911         s << "\tcolorWriteMask = " << getColorComponentFlagsStr(value.colorWriteMask) << '\n';
5912         s << '}';
5913         return s;
5914 }
5915
5916 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value)
5917 {
5918         s << "VkPipelineColorBlendStateCreateInfo = {\n";
5919         s << "\tsType = " << value.sType << '\n';
5920         s << "\tpNext = " << value.pNext << '\n';
5921         s << "\tflags = " << getPipelineColorBlendStateCreateFlagsStr(value.flags) << '\n';
5922         s << "\tlogicOpEnable = " << value.logicOpEnable << '\n';
5923         s << "\tlogicOp = " << value.logicOp << '\n';
5924         s << "\tattachmentCount = " << value.attachmentCount << '\n';
5925         s << "\tpAttachments = " << value.pAttachments << '\n';
5926         s << "\tblendConstants = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.blendConstants), DE_ARRAY_END(value.blendConstants)) << '\n';
5927         s << '}';
5928         return s;
5929 }
5930
5931 std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value)
5932 {
5933         s << "VkPipelineDynamicStateCreateInfo = {\n";
5934         s << "\tsType = " << value.sType << '\n';
5935         s << "\tpNext = " << value.pNext << '\n';
5936         s << "\tflags = " << getPipelineDynamicStateCreateFlagsStr(value.flags) << '\n';
5937         s << "\tdynamicStateCount = " << value.dynamicStateCount << '\n';
5938         s << "\tpDynamicStates = " << value.pDynamicStates << '\n';
5939         s << '}';
5940         return s;
5941 }
5942
5943 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
5944 {
5945         s << "VkGraphicsPipelineCreateInfo = {\n";
5946         s << "\tsType = " << value.sType << '\n';
5947         s << "\tpNext = " << value.pNext << '\n';
5948         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
5949         s << "\tstageCount = " << value.stageCount << '\n';
5950         s << "\tpStages = " << value.pStages << '\n';
5951         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
5952         s << "\tpInputAssemblyState = " << value.pInputAssemblyState << '\n';
5953         s << "\tpTessellationState = " << value.pTessellationState << '\n';
5954         s << "\tpViewportState = " << value.pViewportState << '\n';
5955         s << "\tpRasterizationState = " << value.pRasterizationState << '\n';
5956         s << "\tpMultisampleState = " << value.pMultisampleState << '\n';
5957         s << "\tpDepthStencilState = " << value.pDepthStencilState << '\n';
5958         s << "\tpColorBlendState = " << value.pColorBlendState << '\n';
5959         s << "\tpDynamicState = " << value.pDynamicState << '\n';
5960         s << "\tlayout = " << value.layout << '\n';
5961         s << "\trenderPass = " << value.renderPass << '\n';
5962         s << "\tsubpass = " << value.subpass << '\n';
5963         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
5964         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
5965         s << '}';
5966         return s;
5967 }
5968
5969 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
5970 {
5971         s << "VkPushConstantRange = {\n";
5972         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
5973         s << "\toffset = " << value.offset << '\n';
5974         s << "\tsize = " << value.size << '\n';
5975         s << '}';
5976         return s;
5977 }
5978
5979 std::ostream& operator<< (std::ostream& s, const VkPipelineLayoutCreateInfo& value)
5980 {
5981         s << "VkPipelineLayoutCreateInfo = {\n";
5982         s << "\tsType = " << value.sType << '\n';
5983         s << "\tpNext = " << value.pNext << '\n';
5984         s << "\tflags = " << getPipelineLayoutCreateFlagsStr(value.flags) << '\n';
5985         s << "\tsetLayoutCount = " << value.setLayoutCount << '\n';
5986         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
5987         s << "\tpushConstantRangeCount = " << value.pushConstantRangeCount << '\n';
5988         s << "\tpPushConstantRanges = " << value.pPushConstantRanges << '\n';
5989         s << '}';
5990         return s;
5991 }
5992
5993 std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
5994 {
5995         s << "VkSamplerCreateInfo = {\n";
5996         s << "\tsType = " << value.sType << '\n';
5997         s << "\tpNext = " << value.pNext << '\n';
5998         s << "\tflags = " << getSamplerCreateFlagsStr(value.flags) << '\n';
5999         s << "\tmagFilter = " << value.magFilter << '\n';
6000         s << "\tminFilter = " << value.minFilter << '\n';
6001         s << "\tmipmapMode = " << value.mipmapMode << '\n';
6002         s << "\taddressModeU = " << value.addressModeU << '\n';
6003         s << "\taddressModeV = " << value.addressModeV << '\n';
6004         s << "\taddressModeW = " << value.addressModeW << '\n';
6005         s << "\tmipLodBias = " << value.mipLodBias << '\n';
6006         s << "\tanisotropyEnable = " << value.anisotropyEnable << '\n';
6007         s << "\tmaxAnisotropy = " << value.maxAnisotropy << '\n';
6008         s << "\tcompareEnable = " << value.compareEnable << '\n';
6009         s << "\tcompareOp = " << value.compareOp << '\n';
6010         s << "\tminLod = " << value.minLod << '\n';
6011         s << "\tmaxLod = " << value.maxLod << '\n';
6012         s << "\tborderColor = " << value.borderColor << '\n';
6013         s << "\tunnormalizedCoordinates = " << value.unnormalizedCoordinates << '\n';
6014         s << '}';
6015         return s;
6016 }
6017
6018 std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
6019 {
6020         s << "VkCopyDescriptorSet = {\n";
6021         s << "\tsType = " << value.sType << '\n';
6022         s << "\tpNext = " << value.pNext << '\n';
6023         s << "\tsrcSet = " << value.srcSet << '\n';
6024         s << "\tsrcBinding = " << value.srcBinding << '\n';
6025         s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
6026         s << "\tdstSet = " << value.dstSet << '\n';
6027         s << "\tdstBinding = " << value.dstBinding << '\n';
6028         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6029         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6030         s << '}';
6031         return s;
6032 }
6033
6034 std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
6035 {
6036         s << "VkDescriptorBufferInfo = {\n";
6037         s << "\tbuffer = " << value.buffer << '\n';
6038         s << "\toffset = " << value.offset << '\n';
6039         s << "\trange = " << value.range << '\n';
6040         s << '}';
6041         return s;
6042 }
6043
6044 std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
6045 {
6046         s << "VkDescriptorImageInfo = {\n";
6047         s << "\tsampler = " << value.sampler << '\n';
6048         s << "\timageView = " << value.imageView << '\n';
6049         s << "\timageLayout = " << value.imageLayout << '\n';
6050         s << '}';
6051         return s;
6052 }
6053
6054 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
6055 {
6056         s << "VkDescriptorPoolSize = {\n";
6057         s << "\ttype = " << value.type << '\n';
6058         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6059         s << '}';
6060         return s;
6061 }
6062
6063 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
6064 {
6065         s << "VkDescriptorPoolCreateInfo = {\n";
6066         s << "\tsType = " << value.sType << '\n';
6067         s << "\tpNext = " << value.pNext << '\n';
6068         s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
6069         s << "\tmaxSets = " << value.maxSets << '\n';
6070         s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
6071         s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
6072         s << '}';
6073         return s;
6074 }
6075
6076 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
6077 {
6078         s << "VkDescriptorSetAllocateInfo = {\n";
6079         s << "\tsType = " << value.sType << '\n';
6080         s << "\tpNext = " << value.pNext << '\n';
6081         s << "\tdescriptorPool = " << value.descriptorPool << '\n';
6082         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
6083         s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
6084         s << '}';
6085         return s;
6086 }
6087
6088 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
6089 {
6090         s << "VkDescriptorSetLayoutBinding = {\n";
6091         s << "\tbinding = " << value.binding << '\n';
6092         s << "\tdescriptorType = " << value.descriptorType << '\n';
6093         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6094         s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
6095         s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
6096         s << '}';
6097         return s;
6098 }
6099
6100 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
6101 {
6102         s << "VkDescriptorSetLayoutCreateInfo = {\n";
6103         s << "\tsType = " << value.sType << '\n';
6104         s << "\tpNext = " << value.pNext << '\n';
6105         s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
6106         s << "\tbindingCount = " << value.bindingCount << '\n';
6107         s << "\tpBindings = " << value.pBindings << '\n';
6108         s << '}';
6109         return s;
6110 }
6111
6112 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
6113 {
6114         s << "VkWriteDescriptorSet = {\n";
6115         s << "\tsType = " << value.sType << '\n';
6116         s << "\tpNext = " << value.pNext << '\n';
6117         s << "\tdstSet = " << value.dstSet << '\n';
6118         s << "\tdstBinding = " << value.dstBinding << '\n';
6119         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6120         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6121         s << "\tdescriptorType = " << value.descriptorType << '\n';
6122         s << "\tpImageInfo = " << value.pImageInfo << '\n';
6123         s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
6124         s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
6125         s << '}';
6126         return s;
6127 }
6128
6129 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
6130 {
6131         s << "VkAttachmentDescription = {\n";
6132         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
6133         s << "\tformat = " << value.format << '\n';
6134         s << "\tsamples = " << value.samples << '\n';
6135         s << "\tloadOp = " << value.loadOp << '\n';
6136         s << "\tstoreOp = " << value.storeOp << '\n';
6137         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
6138         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
6139         s << "\tinitialLayout = " << value.initialLayout << '\n';
6140         s << "\tfinalLayout = " << value.finalLayout << '\n';
6141         s << '}';
6142         return s;
6143 }
6144
6145 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
6146 {
6147         s << "VkAttachmentReference = {\n";
6148         s << "\tattachment = " << value.attachment << '\n';
6149         s << "\tlayout = " << value.layout << '\n';
6150         s << '}';
6151         return s;
6152 }
6153
6154 std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
6155 {
6156         s << "VkFramebufferCreateInfo = {\n";
6157         s << "\tsType = " << value.sType << '\n';
6158         s << "\tpNext = " << value.pNext << '\n';
6159         s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
6160         s << "\trenderPass = " << value.renderPass << '\n';
6161         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6162         s << "\tpAttachments = " << value.pAttachments << '\n';
6163         s << "\twidth = " << value.width << '\n';
6164         s << "\theight = " << value.height << '\n';
6165         s << "\tlayers = " << value.layers << '\n';
6166         s << '}';
6167         return s;
6168 }
6169
6170 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
6171 {
6172         s << "VkSubpassDescription = {\n";
6173         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
6174         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6175         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
6176         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
6177         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
6178         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
6179         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
6180         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
6181         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
6182         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
6183         s << '}';
6184         return s;
6185 }
6186
6187 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency& value)
6188 {
6189         s << "VkSubpassDependency = {\n";
6190         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
6191         s << "\tdstSubpass = " << value.dstSubpass << '\n';
6192         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
6193         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
6194         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
6195         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
6196         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
6197         s << '}';
6198         return s;
6199 }
6200
6201 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
6202 {
6203         s << "VkRenderPassCreateInfo = {\n";
6204         s << "\tsType = " << value.sType << '\n';
6205         s << "\tpNext = " << value.pNext << '\n';
6206         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
6207         s << "\tattachmentCount = " << value.attachmentCount << '\n';
6208         s << "\tpAttachments = " << value.pAttachments << '\n';
6209         s << "\tsubpassCount = " << value.subpassCount << '\n';
6210         s << "\tpSubpasses = " << value.pSubpasses << '\n';
6211         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6212         s << "\tpDependencies = " << value.pDependencies << '\n';
6213         s << '}';
6214         return s;
6215 }
6216
6217 std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
6218 {
6219         s << "VkCommandPoolCreateInfo = {\n";
6220         s << "\tsType = " << value.sType << '\n';
6221         s << "\tpNext = " << value.pNext << '\n';
6222         s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
6223         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6224         s << '}';
6225         return s;
6226 }
6227
6228 std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
6229 {
6230         s << "VkCommandBufferAllocateInfo = {\n";
6231         s << "\tsType = " << value.sType << '\n';
6232         s << "\tpNext = " << value.pNext << '\n';
6233         s << "\tcommandPool = " << value.commandPool << '\n';
6234         s << "\tlevel = " << value.level << '\n';
6235         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6236         s << '}';
6237         return s;
6238 }
6239
6240 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
6241 {
6242         s << "VkCommandBufferInheritanceInfo = {\n";
6243         s << "\tsType = " << value.sType << '\n';
6244         s << "\tpNext = " << value.pNext << '\n';
6245         s << "\trenderPass = " << value.renderPass << '\n';
6246         s << "\tsubpass = " << value.subpass << '\n';
6247         s << "\tframebuffer = " << value.framebuffer << '\n';
6248         s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
6249         s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
6250         s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
6251         s << '}';
6252         return s;
6253 }
6254
6255 std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
6256 {
6257         s << "VkCommandBufferBeginInfo = {\n";
6258         s << "\tsType = " << value.sType << '\n';
6259         s << "\tpNext = " << value.pNext << '\n';
6260         s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
6261         s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
6262         s << '}';
6263         return s;
6264 }
6265
6266 std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
6267 {
6268         s << "VkBufferCopy = {\n";
6269         s << "\tsrcOffset = " << value.srcOffset << '\n';
6270         s << "\tdstOffset = " << value.dstOffset << '\n';
6271         s << "\tsize = " << value.size << '\n';
6272         s << '}';
6273         return s;
6274 }
6275
6276 std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
6277 {
6278         s << "VkImageSubresourceLayers = {\n";
6279         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6280         s << "\tmipLevel = " << value.mipLevel << '\n';
6281         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6282         s << "\tlayerCount = " << value.layerCount << '\n';
6283         s << '}';
6284         return s;
6285 }
6286
6287 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
6288 {
6289         s << "VkBufferImageCopy = {\n";
6290         s << "\tbufferOffset = " << value.bufferOffset << '\n';
6291         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
6292         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
6293         s << "\timageSubresource = " << value.imageSubresource << '\n';
6294         s << "\timageOffset = " << value.imageOffset << '\n';
6295         s << "\timageExtent = " << value.imageExtent << '\n';
6296         s << '}';
6297         return s;
6298 }
6299
6300 std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
6301 {
6302         s << "VkClearColorValue = {\n";
6303         s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
6304         s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
6305         s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
6306         s << '}';
6307         return s;
6308 }
6309
6310 std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
6311 {
6312         s << "VkClearDepthStencilValue = {\n";
6313         s << "\tdepth = " << value.depth << '\n';
6314         s << "\tstencil = " << value.stencil << '\n';
6315         s << '}';
6316         return s;
6317 }
6318
6319 std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
6320 {
6321         s << "VkClearValue = {\n";
6322         s << "\tcolor = " << value.color << '\n';
6323         s << "\tdepthStencil = " << value.depthStencil << '\n';
6324         s << '}';
6325         return s;
6326 }
6327
6328 std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
6329 {
6330         s << "VkClearAttachment = {\n";
6331         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6332         s << "\tcolorAttachment = " << value.colorAttachment << '\n';
6333         s << "\tclearValue = " << value.clearValue << '\n';
6334         s << '}';
6335         return s;
6336 }
6337
6338 std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
6339 {
6340         s << "VkClearRect = {\n";
6341         s << "\trect = " << value.rect << '\n';
6342         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
6343         s << "\tlayerCount = " << value.layerCount << '\n';
6344         s << '}';
6345         return s;
6346 }
6347
6348 std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
6349 {
6350         s << "VkImageBlit = {\n";
6351         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6352         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
6353         s << "\tdstSubresource = " << value.dstSubresource << '\n';
6354         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
6355         s << '}';
6356         return s;
6357 }
6358
6359 std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
6360 {
6361         s << "VkImageCopy = {\n";
6362         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6363         s << "\tsrcOffset = " << value.srcOffset << '\n';
6364         s << "\tdstSubresource = " << value.dstSubresource << '\n';
6365         s << "\tdstOffset = " << value.dstOffset << '\n';
6366         s << "\textent = " << value.extent << '\n';
6367         s << '}';
6368         return s;
6369 }
6370
6371 std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
6372 {
6373         s << "VkImageResolve = {\n";
6374         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
6375         s << "\tsrcOffset = " << value.srcOffset << '\n';
6376         s << "\tdstSubresource = " << value.dstSubresource << '\n';
6377         s << "\tdstOffset = " << value.dstOffset << '\n';
6378         s << "\textent = " << value.extent << '\n';
6379         s << '}';
6380         return s;
6381 }
6382
6383 std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
6384 {
6385         s << "VkRenderPassBeginInfo = {\n";
6386         s << "\tsType = " << value.sType << '\n';
6387         s << "\tpNext = " << value.pNext << '\n';
6388         s << "\trenderPass = " << value.renderPass << '\n';
6389         s << "\tframebuffer = " << value.framebuffer << '\n';
6390         s << "\trenderArea = " << value.renderArea << '\n';
6391         s << "\tclearValueCount = " << value.clearValueCount << '\n';
6392         s << "\tpClearValues = " << value.pClearValues << '\n';
6393         s << '}';
6394         return s;
6395 }
6396
6397 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
6398 {
6399         s << "VkPhysicalDeviceSubgroupProperties = {\n";
6400         s << "\tsType = " << value.sType << '\n';
6401         s << "\tpNext = " << value.pNext << '\n';
6402         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
6403         s << "\tsupportedStages = " << getShaderStageFlagsStr(value.supportedStages) << '\n';
6404         s << "\tsupportedOperations = " << getSubgroupFeatureFlagsStr(value.supportedOperations) << '\n';
6405         s << "\tquadOperationsInAllStages = " << value.quadOperationsInAllStages << '\n';
6406         s << '}';
6407         return s;
6408 }
6409
6410 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
6411 {
6412         s << "VkBindBufferMemoryInfo = {\n";
6413         s << "\tsType = " << value.sType << '\n';
6414         s << "\tpNext = " << value.pNext << '\n';
6415         s << "\tbuffer = " << value.buffer << '\n';
6416         s << "\tmemory = " << value.memory << '\n';
6417         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6418         s << '}';
6419         return s;
6420 }
6421
6422 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
6423 {
6424         s << "VkBindImageMemoryInfo = {\n";
6425         s << "\tsType = " << value.sType << '\n';
6426         s << "\tpNext = " << value.pNext << '\n';
6427         s << "\timage = " << value.image << '\n';
6428         s << "\tmemory = " << value.memory << '\n';
6429         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
6430         s << '}';
6431         return s;
6432 }
6433
6434 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
6435 {
6436         s << "VkPhysicalDevice16BitStorageFeatures = {\n";
6437         s << "\tsType = " << value.sType << '\n';
6438         s << "\tpNext = " << value.pNext << '\n';
6439         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
6440         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
6441         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
6442         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
6443         s << '}';
6444         return s;
6445 }
6446
6447 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
6448 {
6449         s << "VkMemoryDedicatedRequirements = {\n";
6450         s << "\tsType = " << value.sType << '\n';
6451         s << "\tpNext = " << value.pNext << '\n';
6452         s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
6453         s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
6454         s << '}';
6455         return s;
6456 }
6457
6458 std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
6459 {
6460         s << "VkMemoryDedicatedAllocateInfo = {\n";
6461         s << "\tsType = " << value.sType << '\n';
6462         s << "\tpNext = " << value.pNext << '\n';
6463         s << "\timage = " << value.image << '\n';
6464         s << "\tbuffer = " << value.buffer << '\n';
6465         s << '}';
6466         return s;
6467 }
6468
6469 std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
6470 {
6471         s << "VkMemoryAllocateFlagsInfo = {\n";
6472         s << "\tsType = " << value.sType << '\n';
6473         s << "\tpNext = " << value.pNext << '\n';
6474         s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
6475         s << "\tdeviceMask = " << value.deviceMask << '\n';
6476         s << '}';
6477         return s;
6478 }
6479
6480 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
6481 {
6482         s << "VkDeviceGroupRenderPassBeginInfo = {\n";
6483         s << "\tsType = " << value.sType << '\n';
6484         s << "\tpNext = " << value.pNext << '\n';
6485         s << "\tdeviceMask = " << value.deviceMask << '\n';
6486         s << "\tdeviceRenderAreaCount = " << value.deviceRenderAreaCount << '\n';
6487         s << "\tpDeviceRenderAreas = " << value.pDeviceRenderAreas << '\n';
6488         s << '}';
6489         return s;
6490 }
6491
6492 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
6493 {
6494         s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
6495         s << "\tsType = " << value.sType << '\n';
6496         s << "\tpNext = " << value.pNext << '\n';
6497         s << "\tdeviceMask = " << value.deviceMask << '\n';
6498         s << '}';
6499         return s;
6500 }
6501
6502 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
6503 {
6504         s << "VkDeviceGroupSubmitInfo = {\n";
6505         s << "\tsType = " << value.sType << '\n';
6506         s << "\tpNext = " << value.pNext << '\n';
6507         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
6508         s << "\tpWaitSemaphoreDeviceIndices = " << value.pWaitSemaphoreDeviceIndices << '\n';
6509         s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
6510         s << "\tpCommandBufferDeviceMasks = " << value.pCommandBufferDeviceMasks << '\n';
6511         s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
6512         s << "\tpSignalSemaphoreDeviceIndices = " << value.pSignalSemaphoreDeviceIndices << '\n';
6513         s << '}';
6514         return s;
6515 }
6516
6517 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
6518 {
6519         s << "VkDeviceGroupBindSparseInfo = {\n";
6520         s << "\tsType = " << value.sType << '\n';
6521         s << "\tpNext = " << value.pNext << '\n';
6522         s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
6523         s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
6524         s << '}';
6525         return s;
6526 }
6527
6528 std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
6529 {
6530         s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
6531         s << "\tsType = " << value.sType << '\n';
6532         s << "\tpNext = " << value.pNext << '\n';
6533         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6534         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6535         s << '}';
6536         return s;
6537 }
6538
6539 std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
6540 {
6541         s << "VkBindImageMemoryDeviceGroupInfo = {\n";
6542         s << "\tsType = " << value.sType << '\n';
6543         s << "\tpNext = " << value.pNext << '\n';
6544         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
6545         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
6546         s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
6547         s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
6548         s << '}';
6549         return s;
6550 }
6551
6552 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
6553 {
6554         s << "VkPhysicalDeviceGroupProperties = {\n";
6555         s << "\tsType = " << value.sType << '\n';
6556         s << "\tpNext = " << value.pNext << '\n';
6557         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6558         s << "\tphysicalDevices = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.physicalDevices), DE_ARRAY_END(value.physicalDevices)) << '\n';
6559         s << "\tsubsetAllocation = " << value.subsetAllocation << '\n';
6560         s << '}';
6561         return s;
6562 }
6563
6564 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
6565 {
6566         s << "VkDeviceGroupDeviceCreateInfo = {\n";
6567         s << "\tsType = " << value.sType << '\n';
6568         s << "\tpNext = " << value.pNext << '\n';
6569         s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
6570         s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
6571         s << '}';
6572         return s;
6573 }
6574
6575 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
6576 {
6577         s << "VkBufferMemoryRequirementsInfo2 = {\n";
6578         s << "\tsType = " << value.sType << '\n';
6579         s << "\tpNext = " << value.pNext << '\n';
6580         s << "\tbuffer = " << value.buffer << '\n';
6581         s << '}';
6582         return s;
6583 }
6584
6585 std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
6586 {
6587         s << "VkImageMemoryRequirementsInfo2 = {\n";
6588         s << "\tsType = " << value.sType << '\n';
6589         s << "\tpNext = " << value.pNext << '\n';
6590         s << "\timage = " << value.image << '\n';
6591         s << '}';
6592         return s;
6593 }
6594
6595 std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
6596 {
6597         s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
6598         s << "\tsType = " << value.sType << '\n';
6599         s << "\tpNext = " << value.pNext << '\n';
6600         s << "\timage = " << value.image << '\n';
6601         s << '}';
6602         return s;
6603 }
6604
6605 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
6606 {
6607         s << "VkMemoryRequirements2 = {\n";
6608         s << "\tsType = " << value.sType << '\n';
6609         s << "\tpNext = " << value.pNext << '\n';
6610         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6611         s << '}';
6612         return s;
6613 }
6614
6615 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
6616 {
6617         s << "VkSparseImageMemoryRequirements2 = {\n";
6618         s << "\tsType = " << value.sType << '\n';
6619         s << "\tpNext = " << value.pNext << '\n';
6620         s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
6621         s << '}';
6622         return s;
6623 }
6624
6625 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
6626 {
6627         s << "VkPhysicalDeviceFeatures2 = {\n";
6628         s << "\tsType = " << value.sType << '\n';
6629         s << "\tpNext = " << value.pNext << '\n';
6630         s << "\tfeatures = " << value.features << '\n';
6631         s << '}';
6632         return s;
6633 }
6634
6635 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
6636 {
6637         s << "VkPhysicalDeviceProperties2 = {\n";
6638         s << "\tsType = " << value.sType << '\n';
6639         s << "\tpNext = " << value.pNext << '\n';
6640         s << "\tproperties = " << value.properties << '\n';
6641         s << '}';
6642         return s;
6643 }
6644
6645 std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
6646 {
6647         s << "VkFormatProperties2 = {\n";
6648         s << "\tsType = " << value.sType << '\n';
6649         s << "\tpNext = " << value.pNext << '\n';
6650         s << "\tformatProperties = " << value.formatProperties << '\n';
6651         s << '}';
6652         return s;
6653 }
6654
6655 std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
6656 {
6657         s << "VkImageFormatProperties2 = {\n";
6658         s << "\tsType = " << value.sType << '\n';
6659         s << "\tpNext = " << value.pNext << '\n';
6660         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
6661         s << '}';
6662         return s;
6663 }
6664
6665 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
6666 {
6667         s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
6668         s << "\tsType = " << value.sType << '\n';
6669         s << "\tpNext = " << value.pNext << '\n';
6670         s << "\tformat = " << value.format << '\n';
6671         s << "\ttype = " << value.type << '\n';
6672         s << "\ttiling = " << value.tiling << '\n';
6673         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6674         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
6675         s << '}';
6676         return s;
6677 }
6678
6679 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
6680 {
6681         s << "VkQueueFamilyProperties2 = {\n";
6682         s << "\tsType = " << value.sType << '\n';
6683         s << "\tpNext = " << value.pNext << '\n';
6684         s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
6685         s << '}';
6686         return s;
6687 }
6688
6689 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
6690 {
6691         s << "VkPhysicalDeviceMemoryProperties2 = {\n";
6692         s << "\tsType = " << value.sType << '\n';
6693         s << "\tpNext = " << value.pNext << '\n';
6694         s << "\tmemoryProperties = " << value.memoryProperties << '\n';
6695         s << '}';
6696         return s;
6697 }
6698
6699 std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
6700 {
6701         s << "VkSparseImageFormatProperties2 = {\n";
6702         s << "\tsType = " << value.sType << '\n';
6703         s << "\tpNext = " << value.pNext << '\n';
6704         s << "\tproperties = " << value.properties << '\n';
6705         s << '}';
6706         return s;
6707 }
6708
6709 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
6710 {
6711         s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
6712         s << "\tsType = " << value.sType << '\n';
6713         s << "\tpNext = " << value.pNext << '\n';
6714         s << "\tformat = " << value.format << '\n';
6715         s << "\ttype = " << value.type << '\n';
6716         s << "\tsamples = " << value.samples << '\n';
6717         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6718         s << "\ttiling = " << value.tiling << '\n';
6719         s << '}';
6720         return s;
6721 }
6722
6723 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
6724 {
6725         s << "VkPhysicalDevicePointClippingProperties = {\n";
6726         s << "\tsType = " << value.sType << '\n';
6727         s << "\tpNext = " << value.pNext << '\n';
6728         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
6729         s << '}';
6730         return s;
6731 }
6732
6733 std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
6734 {
6735         s << "VkInputAttachmentAspectReference = {\n";
6736         s << "\tsubpass = " << value.subpass << '\n';
6737         s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
6738         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
6739         s << '}';
6740         return s;
6741 }
6742
6743 std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
6744 {
6745         s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
6746         s << "\tsType = " << value.sType << '\n';
6747         s << "\tpNext = " << value.pNext << '\n';
6748         s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
6749         s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
6750         s << '}';
6751         return s;
6752 }
6753
6754 std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
6755 {
6756         s << "VkImageViewUsageCreateInfo = {\n";
6757         s << "\tsType = " << value.sType << '\n';
6758         s << "\tpNext = " << value.pNext << '\n';
6759         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
6760         s << '}';
6761         return s;
6762 }
6763
6764 std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
6765 {
6766         s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
6767         s << "\tsType = " << value.sType << '\n';
6768         s << "\tpNext = " << value.pNext << '\n';
6769         s << "\tdomainOrigin = " << value.domainOrigin << '\n';
6770         s << '}';
6771         return s;
6772 }
6773
6774 std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
6775 {
6776         s << "VkRenderPassMultiviewCreateInfo = {\n";
6777         s << "\tsType = " << value.sType << '\n';
6778         s << "\tpNext = " << value.pNext << '\n';
6779         s << "\tsubpassCount = " << value.subpassCount << '\n';
6780         s << "\tpViewMasks = " << value.pViewMasks << '\n';
6781         s << "\tdependencyCount = " << value.dependencyCount << '\n';
6782         s << "\tpViewOffsets = " << value.pViewOffsets << '\n';
6783         s << "\tcorrelationMaskCount = " << value.correlationMaskCount << '\n';
6784         s << "\tpCorrelationMasks = " << value.pCorrelationMasks << '\n';
6785         s << '}';
6786         return s;
6787 }
6788
6789 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
6790 {
6791         s << "VkPhysicalDeviceMultiviewFeatures = {\n";
6792         s << "\tsType = " << value.sType << '\n';
6793         s << "\tpNext = " << value.pNext << '\n';
6794         s << "\tmultiview = " << value.multiview << '\n';
6795         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
6796         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
6797         s << '}';
6798         return s;
6799 }
6800
6801 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
6802 {
6803         s << "VkPhysicalDeviceMultiviewProperties = {\n";
6804         s << "\tsType = " << value.sType << '\n';
6805         s << "\tpNext = " << value.pNext << '\n';
6806         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
6807         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
6808         s << '}';
6809         return s;
6810 }
6811
6812 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
6813 {
6814         s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
6815         s << "\tsType = " << value.sType << '\n';
6816         s << "\tpNext = " << value.pNext << '\n';
6817         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
6818         s << "\tvariablePointers = " << value.variablePointers << '\n';
6819         s << '}';
6820         return s;
6821 }
6822
6823 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
6824 {
6825         s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
6826         s << "\tsType = " << value.sType << '\n';
6827         s << "\tpNext = " << value.pNext << '\n';
6828         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
6829         s << '}';
6830         return s;
6831 }
6832
6833 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
6834 {
6835         s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
6836         s << "\tsType = " << value.sType << '\n';
6837         s << "\tpNext = " << value.pNext << '\n';
6838         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
6839         s << '}';
6840         return s;
6841 }
6842
6843 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
6844 {
6845         s << "VkDeviceQueueInfo2 = {\n";
6846         s << "\tsType = " << value.sType << '\n';
6847         s << "\tpNext = " << value.pNext << '\n';
6848         s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
6849         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
6850         s << "\tqueueIndex = " << value.queueIndex << '\n';
6851         s << '}';
6852         return s;
6853 }
6854
6855 std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
6856 {
6857         s << "VkProtectedSubmitInfo = {\n";
6858         s << "\tsType = " << value.sType << '\n';
6859         s << "\tpNext = " << value.pNext << '\n';
6860         s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
6861         s << '}';
6862         return s;
6863 }
6864
6865 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
6866 {
6867         s << "VkSamplerYcbcrConversionCreateInfo = {\n";
6868         s << "\tsType = " << value.sType << '\n';
6869         s << "\tpNext = " << value.pNext << '\n';
6870         s << "\tformat = " << value.format << '\n';
6871         s << "\tycbcrModel = " << value.ycbcrModel << '\n';
6872         s << "\tycbcrRange = " << value.ycbcrRange << '\n';
6873         s << "\tcomponents = " << value.components << '\n';
6874         s << "\txChromaOffset = " << value.xChromaOffset << '\n';
6875         s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
6876         s << "\tchromaFilter = " << value.chromaFilter << '\n';
6877         s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
6878         s << '}';
6879         return s;
6880 }
6881
6882 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
6883 {
6884         s << "VkSamplerYcbcrConversionInfo = {\n";
6885         s << "\tsType = " << value.sType << '\n';
6886         s << "\tpNext = " << value.pNext << '\n';
6887         s << "\tconversion = " << value.conversion << '\n';
6888         s << '}';
6889         return s;
6890 }
6891
6892 std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
6893 {
6894         s << "VkBindImagePlaneMemoryInfo = {\n";
6895         s << "\tsType = " << value.sType << '\n';
6896         s << "\tpNext = " << value.pNext << '\n';
6897         s << "\tplaneAspect = " << value.planeAspect << '\n';
6898         s << '}';
6899         return s;
6900 }
6901
6902 std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
6903 {
6904         s << "VkImagePlaneMemoryRequirementsInfo = {\n";
6905         s << "\tsType = " << value.sType << '\n';
6906         s << "\tpNext = " << value.pNext << '\n';
6907         s << "\tplaneAspect = " << value.planeAspect << '\n';
6908         s << '}';
6909         return s;
6910 }
6911
6912 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
6913 {
6914         s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
6915         s << "\tsType = " << value.sType << '\n';
6916         s << "\tpNext = " << value.pNext << '\n';
6917         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
6918         s << '}';
6919         return s;
6920 }
6921
6922 std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
6923 {
6924         s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
6925         s << "\tsType = " << value.sType << '\n';
6926         s << "\tpNext = " << value.pNext << '\n';
6927         s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
6928         s << '}';
6929         return s;
6930 }
6931
6932 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
6933 {
6934         s << "VkDescriptorUpdateTemplateEntry = {\n";
6935         s << "\tdstBinding = " << value.dstBinding << '\n';
6936         s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
6937         s << "\tdescriptorCount = " << value.descriptorCount << '\n';
6938         s << "\tdescriptorType = " << value.descriptorType << '\n';
6939         s << "\toffset = " << value.offset << '\n';
6940         s << "\tstride = " << value.stride << '\n';
6941         s << '}';
6942         return s;
6943 }
6944
6945 std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
6946 {
6947         s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
6948         s << "\tsType = " << value.sType << '\n';
6949         s << "\tpNext = " << value.pNext << '\n';
6950         s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
6951         s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
6952         s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
6953         s << "\ttemplateType = " << value.templateType << '\n';
6954         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
6955         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
6956         s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
6957         s << "\tset = " << value.set << '\n';
6958         s << '}';
6959         return s;
6960 }
6961
6962 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
6963 {
6964         s << "VkExternalMemoryProperties = {\n";
6965         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
6966         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
6967         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
6968         s << '}';
6969         return s;
6970 }
6971
6972 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
6973 {
6974         s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
6975         s << "\tsType = " << value.sType << '\n';
6976         s << "\tpNext = " << value.pNext << '\n';
6977         s << "\thandleType = " << value.handleType << '\n';
6978         s << '}';
6979         return s;
6980 }
6981
6982 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
6983 {
6984         s << "VkExternalImageFormatProperties = {\n";
6985         s << "\tsType = " << value.sType << '\n';
6986         s << "\tpNext = " << value.pNext << '\n';
6987         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
6988         s << '}';
6989         return s;
6990 }
6991
6992 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
6993 {
6994         s << "VkPhysicalDeviceExternalBufferInfo = {\n";
6995         s << "\tsType = " << value.sType << '\n';
6996         s << "\tpNext = " << value.pNext << '\n';
6997         s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
6998         s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
6999         s << "\thandleType = " << value.handleType << '\n';
7000         s << '}';
7001         return s;
7002 }
7003
7004 std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
7005 {
7006         s << "VkExternalBufferProperties = {\n";
7007         s << "\tsType = " << value.sType << '\n';
7008         s << "\tpNext = " << value.pNext << '\n';
7009         s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
7010         s << '}';
7011         return s;
7012 }
7013
7014 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
7015 {
7016         s << "VkPhysicalDeviceIDProperties = {\n";
7017         s << "\tsType = " << value.sType << '\n';
7018         s << "\tpNext = " << value.pNext << '\n';
7019         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';
7020         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';
7021         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';
7022         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7023         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7024         s << '}';
7025         return s;
7026 }
7027
7028 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
7029 {
7030         s << "VkExternalMemoryImageCreateInfo = {\n";
7031         s << "\tsType = " << value.sType << '\n';
7032         s << "\tpNext = " << value.pNext << '\n';
7033         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7034         s << '}';
7035         return s;
7036 }
7037
7038 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
7039 {
7040         s << "VkExternalMemoryBufferCreateInfo = {\n";
7041         s << "\tsType = " << value.sType << '\n';
7042         s << "\tpNext = " << value.pNext << '\n';
7043         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7044         s << '}';
7045         return s;
7046 }
7047
7048 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
7049 {
7050         s << "VkExportMemoryAllocateInfo = {\n";
7051         s << "\tsType = " << value.sType << '\n';
7052         s << "\tpNext = " << value.pNext << '\n';
7053         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
7054         s << '}';
7055         return s;
7056 }
7057
7058 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
7059 {
7060         s << "VkPhysicalDeviceExternalFenceInfo = {\n";
7061         s << "\tsType = " << value.sType << '\n';
7062         s << "\tpNext = " << value.pNext << '\n';
7063         s << "\thandleType = " << value.handleType << '\n';
7064         s << '}';
7065         return s;
7066 }
7067
7068 std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
7069 {
7070         s << "VkExternalFenceProperties = {\n";
7071         s << "\tsType = " << value.sType << '\n';
7072         s << "\tpNext = " << value.pNext << '\n';
7073         s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7074         s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7075         s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
7076         s << '}';
7077         return s;
7078 }
7079
7080 std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
7081 {
7082         s << "VkExportFenceCreateInfo = {\n";
7083         s << "\tsType = " << value.sType << '\n';
7084         s << "\tpNext = " << value.pNext << '\n';
7085         s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
7086         s << '}';
7087         return s;
7088 }
7089
7090 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
7091 {
7092         s << "VkExportSemaphoreCreateInfo = {\n";
7093         s << "\tsType = " << value.sType << '\n';
7094         s << "\tpNext = " << value.pNext << '\n';
7095         s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
7096         s << '}';
7097         return s;
7098 }
7099
7100 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
7101 {
7102         s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
7103         s << "\tsType = " << value.sType << '\n';
7104         s << "\tpNext = " << value.pNext << '\n';
7105         s << "\thandleType = " << value.handleType << '\n';
7106         s << '}';
7107         return s;
7108 }
7109
7110 std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
7111 {
7112         s << "VkExternalSemaphoreProperties = {\n";
7113         s << "\tsType = " << value.sType << '\n';
7114         s << "\tpNext = " << value.pNext << '\n';
7115         s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
7116         s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
7117         s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
7118         s << '}';
7119         return s;
7120 }
7121
7122 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
7123 {
7124         s << "VkPhysicalDeviceMaintenance3Properties = {\n";
7125         s << "\tsType = " << value.sType << '\n';
7126         s << "\tpNext = " << value.pNext << '\n';
7127         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
7128         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
7129         s << '}';
7130         return s;
7131 }
7132
7133 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
7134 {
7135         s << "VkDescriptorSetLayoutSupport = {\n";
7136         s << "\tsType = " << value.sType << '\n';
7137         s << "\tpNext = " << value.pNext << '\n';
7138         s << "\tsupported = " << value.supported << '\n';
7139         s << '}';
7140         return s;
7141 }
7142
7143 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
7144 {
7145         s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
7146         s << "\tsType = " << value.sType << '\n';
7147         s << "\tpNext = " << value.pNext << '\n';
7148         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
7149         s << '}';
7150         return s;
7151 }
7152
7153 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
7154 {
7155         s << "VkPhysicalDeviceVulkan11Features = {\n";
7156         s << "\tsType = " << value.sType << '\n';
7157         s << "\tpNext = " << value.pNext << '\n';
7158         s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
7159         s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
7160         s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
7161         s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
7162         s << "\tmultiview = " << value.multiview << '\n';
7163         s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
7164         s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
7165         s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
7166         s << "\tvariablePointers = " << value.variablePointers << '\n';
7167         s << "\tprotectedMemory = " << value.protectedMemory << '\n';
7168         s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
7169         s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
7170         s << '}';
7171         return s;
7172 }
7173
7174 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
7175 {
7176         s << "VkPhysicalDeviceVulkan11Properties = {\n";
7177         s << "\tsType = " << value.sType << '\n';
7178         s << "\tpNext = " << value.pNext << '\n';
7179         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';
7180         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';
7181         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';
7182         s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
7183         s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
7184         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
7185         s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
7186         s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
7187         s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
7188         s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
7189         s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
7190         s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
7191         s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
7192         s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
7193         s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
7194         s << '}';
7195         return s;
7196 }
7197
7198 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
7199 {
7200         s << "VkPhysicalDeviceVulkan12Features = {\n";
7201         s << "\tsType = " << value.sType << '\n';
7202         s << "\tpNext = " << value.pNext << '\n';
7203         s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
7204         s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
7205         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
7206         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
7207         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
7208         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
7209         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
7210         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
7211         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
7212         s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
7213         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7214         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7215         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7216         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7217         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7218         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7219         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7220         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7221         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7222         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7223         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7224         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7225         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7226         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7227         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7228         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7229         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7230         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7231         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7232         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7233         s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
7234         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7235         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7236         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7237         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7238         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7239         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7240         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7241         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7242         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7243         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7244         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7245         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7246         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7247         s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
7248         s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
7249         s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
7250         s << '}';
7251         return s;
7252 }
7253
7254 std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
7255 {
7256         s << "VkConformanceVersion = {\n";
7257         s << "\tmajor = " << value.major << '\n';
7258         s << "\tminor = " << value.minor << '\n';
7259         s << "\tsubminor = " << value.subminor << '\n';
7260         s << "\tpatch = " << value.patch << '\n';
7261         s << '}';
7262         return s;
7263 }
7264
7265 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
7266 {
7267         s << "VkPhysicalDeviceVulkan12Properties = {\n";
7268         s << "\tsType = " << value.sType << '\n';
7269         s << "\tpNext = " << value.pNext << '\n';
7270         s << "\tdriverID = " << value.driverID << '\n';
7271         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7272         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7273         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7274         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
7275         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
7276         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
7277         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
7278         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
7279         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
7280         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
7281         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
7282         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
7283         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
7284         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
7285         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
7286         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
7287         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
7288         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
7289         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
7290         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7291         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7292         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7293         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7294         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7295         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7296         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7297         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7298         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7299         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7300         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7301         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7302         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7303         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7304         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7305         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7306         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7307         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7308         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7309         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7310         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7311         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7312         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7313         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7314         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7315         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7316         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7317         s << "\tindependentResolve = " << value.independentResolve << '\n';
7318         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7319         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7320         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7321         s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
7322         s << '}';
7323         return s;
7324 }
7325
7326 std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
7327 {
7328         s << "VkImageFormatListCreateInfo = {\n";
7329         s << "\tsType = " << value.sType << '\n';
7330         s << "\tpNext = " << value.pNext << '\n';
7331         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7332         s << "\tpViewFormats = " << value.pViewFormats << '\n';
7333         s << '}';
7334         return s;
7335 }
7336
7337 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
7338 {
7339         s << "VkAttachmentDescription2 = {\n";
7340         s << "\tsType = " << value.sType << '\n';
7341         s << "\tpNext = " << value.pNext << '\n';
7342         s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
7343         s << "\tformat = " << value.format << '\n';
7344         s << "\tsamples = " << value.samples << '\n';
7345         s << "\tloadOp = " << value.loadOp << '\n';
7346         s << "\tstoreOp = " << value.storeOp << '\n';
7347         s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
7348         s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
7349         s << "\tinitialLayout = " << value.initialLayout << '\n';
7350         s << "\tfinalLayout = " << value.finalLayout << '\n';
7351         s << '}';
7352         return s;
7353 }
7354
7355 std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
7356 {
7357         s << "VkAttachmentReference2 = {\n";
7358         s << "\tsType = " << value.sType << '\n';
7359         s << "\tpNext = " << value.pNext << '\n';
7360         s << "\tattachment = " << value.attachment << '\n';
7361         s << "\tlayout = " << value.layout << '\n';
7362         s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
7363         s << '}';
7364         return s;
7365 }
7366
7367 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
7368 {
7369         s << "VkSubpassDescription2 = {\n";
7370         s << "\tsType = " << value.sType << '\n';
7371         s << "\tpNext = " << value.pNext << '\n';
7372         s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
7373         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
7374         s << "\tviewMask = " << value.viewMask << '\n';
7375         s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
7376         s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
7377         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
7378         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
7379         s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
7380         s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
7381         s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
7382         s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
7383         s << '}';
7384         return s;
7385 }
7386
7387 std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
7388 {
7389         s << "VkSubpassDependency2 = {\n";
7390         s << "\tsType = " << value.sType << '\n';
7391         s << "\tpNext = " << value.pNext << '\n';
7392         s << "\tsrcSubpass = " << value.srcSubpass << '\n';
7393         s << "\tdstSubpass = " << value.dstSubpass << '\n';
7394         s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
7395         s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
7396         s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
7397         s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
7398         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
7399         s << "\tviewOffset = " << value.viewOffset << '\n';
7400         s << '}';
7401         return s;
7402 }
7403
7404 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
7405 {
7406         s << "VkRenderPassCreateInfo2 = {\n";
7407         s << "\tsType = " << value.sType << '\n';
7408         s << "\tpNext = " << value.pNext << '\n';
7409         s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
7410         s << "\tattachmentCount = " << value.attachmentCount << '\n';
7411         s << "\tpAttachments = " << value.pAttachments << '\n';
7412         s << "\tsubpassCount = " << value.subpassCount << '\n';
7413         s << "\tpSubpasses = " << value.pSubpasses << '\n';
7414         s << "\tdependencyCount = " << value.dependencyCount << '\n';
7415         s << "\tpDependencies = " << value.pDependencies << '\n';
7416         s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
7417         s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
7418         s << '}';
7419         return s;
7420 }
7421
7422 std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
7423 {
7424         s << "VkSubpassBeginInfo = {\n";
7425         s << "\tsType = " << value.sType << '\n';
7426         s << "\tpNext = " << value.pNext << '\n';
7427         s << "\tcontents = " << value.contents << '\n';
7428         s << '}';
7429         return s;
7430 }
7431
7432 std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
7433 {
7434         s << "VkSubpassEndInfo = {\n";
7435         s << "\tsType = " << value.sType << '\n';
7436         s << "\tpNext = " << value.pNext << '\n';
7437         s << '}';
7438         return s;
7439 }
7440
7441 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
7442 {
7443         s << "VkPhysicalDevice8BitStorageFeatures = {\n";
7444         s << "\tsType = " << value.sType << '\n';
7445         s << "\tpNext = " << value.pNext << '\n';
7446         s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
7447         s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
7448         s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
7449         s << '}';
7450         return s;
7451 }
7452
7453 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
7454 {
7455         s << "VkPhysicalDeviceDriverProperties = {\n";
7456         s << "\tsType = " << value.sType << '\n';
7457         s << "\tpNext = " << value.pNext << '\n';
7458         s << "\tdriverID = " << value.driverID << '\n';
7459         s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
7460         s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
7461         s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
7462         s << '}';
7463         return s;
7464 }
7465
7466 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
7467 {
7468         s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
7469         s << "\tsType = " << value.sType << '\n';
7470         s << "\tpNext = " << value.pNext << '\n';
7471         s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
7472         s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
7473         s << '}';
7474         return s;
7475 }
7476
7477 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
7478 {
7479         s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
7480         s << "\tsType = " << value.sType << '\n';
7481         s << "\tpNext = " << value.pNext << '\n';
7482         s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
7483         s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
7484         s << '}';
7485         return s;
7486 }
7487
7488 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
7489 {
7490         s << "VkPhysicalDeviceFloatControlsProperties = {\n";
7491         s << "\tsType = " << value.sType << '\n';
7492         s << "\tpNext = " << value.pNext << '\n';
7493         s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
7494         s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
7495         s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
7496         s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
7497         s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
7498         s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
7499         s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
7500         s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
7501         s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
7502         s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
7503         s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
7504         s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
7505         s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
7506         s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
7507         s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
7508         s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
7509         s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
7510         s << '}';
7511         return s;
7512 }
7513
7514 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
7515 {
7516         s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
7517         s << "\tsType = " << value.sType << '\n';
7518         s << "\tpNext = " << value.pNext << '\n';
7519         s << "\tbindingCount = " << value.bindingCount << '\n';
7520         s << "\tpBindingFlags = " << value.pBindingFlags << '\n';
7521         s << '}';
7522         return s;
7523 }
7524
7525 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
7526 {
7527         s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
7528         s << "\tsType = " << value.sType << '\n';
7529         s << "\tpNext = " << value.pNext << '\n';
7530         s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
7531         s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
7532         s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
7533         s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
7534         s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
7535         s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
7536         s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
7537         s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
7538         s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
7539         s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
7540         s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
7541         s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
7542         s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
7543         s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
7544         s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
7545         s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
7546         s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
7547         s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
7548         s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
7549         s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
7550         s << '}';
7551         return s;
7552 }
7553
7554 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
7555 {
7556         s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
7557         s << "\tsType = " << value.sType << '\n';
7558         s << "\tpNext = " << value.pNext << '\n';
7559         s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
7560         s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
7561         s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
7562         s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
7563         s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
7564         s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
7565         s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
7566         s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
7567         s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
7568         s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
7569         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
7570         s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
7571         s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
7572         s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
7573         s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
7574         s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
7575         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
7576         s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
7577         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
7578         s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
7579         s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
7580         s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
7581         s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
7582         s << '}';
7583         return s;
7584 }
7585
7586 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
7587 {
7588         s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
7589         s << "\tsType = " << value.sType << '\n';
7590         s << "\tpNext = " << value.pNext << '\n';
7591         s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
7592         s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
7593         s << '}';
7594         return s;
7595 }
7596
7597 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
7598 {
7599         s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
7600         s << "\tsType = " << value.sType << '\n';
7601         s << "\tpNext = " << value.pNext << '\n';
7602         s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
7603         s << '}';
7604         return s;
7605 }
7606
7607 std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
7608 {
7609         s << "VkSubpassDescriptionDepthStencilResolve = {\n";
7610         s << "\tsType = " << value.sType << '\n';
7611         s << "\tpNext = " << value.pNext << '\n';
7612         s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
7613         s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
7614         s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
7615         s << '}';
7616         return s;
7617 }
7618
7619 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
7620 {
7621         s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
7622         s << "\tsType = " << value.sType << '\n';
7623         s << "\tpNext = " << value.pNext << '\n';
7624         s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
7625         s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
7626         s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
7627         s << "\tindependentResolve = " << value.independentResolve << '\n';
7628         s << '}';
7629         return s;
7630 }
7631
7632 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
7633 {
7634         s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
7635         s << "\tsType = " << value.sType << '\n';
7636         s << "\tpNext = " << value.pNext << '\n';
7637         s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
7638         s << '}';
7639         return s;
7640 }
7641
7642 std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
7643 {
7644         s << "VkImageStencilUsageCreateInfo = {\n";
7645         s << "\tsType = " << value.sType << '\n';
7646         s << "\tpNext = " << value.pNext << '\n';
7647         s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
7648         s << '}';
7649         return s;
7650 }
7651
7652 std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
7653 {
7654         s << "VkSamplerReductionModeCreateInfo = {\n";
7655         s << "\tsType = " << value.sType << '\n';
7656         s << "\tpNext = " << value.pNext << '\n';
7657         s << "\treductionMode = " << value.reductionMode << '\n';
7658         s << '}';
7659         return s;
7660 }
7661
7662 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
7663 {
7664         s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
7665         s << "\tsType = " << value.sType << '\n';
7666         s << "\tpNext = " << value.pNext << '\n';
7667         s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
7668         s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
7669         s << '}';
7670         return s;
7671 }
7672
7673 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
7674 {
7675         s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
7676         s << "\tsType = " << value.sType << '\n';
7677         s << "\tpNext = " << value.pNext << '\n';
7678         s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
7679         s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
7680         s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
7681         s << '}';
7682         return s;
7683 }
7684
7685 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
7686 {
7687         s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
7688         s << "\tsType = " << value.sType << '\n';
7689         s << "\tpNext = " << value.pNext << '\n';
7690         s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
7691         s << '}';
7692         return s;
7693 }
7694
7695 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
7696 {
7697         s << "VkFramebufferAttachmentImageInfo = {\n";
7698         s << "\tsType = " << value.sType << '\n';
7699         s << "\tpNext = " << value.pNext << '\n';
7700         s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
7701         s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
7702         s << "\twidth = " << value.width << '\n';
7703         s << "\theight = " << value.height << '\n';
7704         s << "\tlayerCount = " << value.layerCount << '\n';
7705         s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
7706         s << "\tpViewFormats = " << value.pViewFormats << '\n';
7707         s << '}';
7708         return s;
7709 }
7710
7711 std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
7712 {
7713         s << "VkFramebufferAttachmentsCreateInfo = {\n";
7714         s << "\tsType = " << value.sType << '\n';
7715         s << "\tpNext = " << value.pNext << '\n';
7716         s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
7717         s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
7718         s << '}';
7719         return s;
7720 }
7721
7722 std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
7723 {
7724         s << "VkRenderPassAttachmentBeginInfo = {\n";
7725         s << "\tsType = " << value.sType << '\n';
7726         s << "\tpNext = " << value.pNext << '\n';
7727         s << "\tattachmentCount = " << value.attachmentCount << '\n';
7728         s << "\tpAttachments = " << value.pAttachments << '\n';
7729         s << '}';
7730         return s;
7731 }
7732
7733 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
7734 {
7735         s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
7736         s << "\tsType = " << value.sType << '\n';
7737         s << "\tpNext = " << value.pNext << '\n';
7738         s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
7739         s << '}';
7740         return s;
7741 }
7742
7743 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
7744 {
7745         s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
7746         s << "\tsType = " << value.sType << '\n';
7747         s << "\tpNext = " << value.pNext << '\n';
7748         s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
7749         s << '}';
7750         return s;
7751 }
7752
7753 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
7754 {
7755         s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
7756         s << "\tsType = " << value.sType << '\n';
7757         s << "\tpNext = " << value.pNext << '\n';
7758         s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
7759         s << '}';
7760         return s;
7761 }
7762
7763 std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
7764 {
7765         s << "VkAttachmentReferenceStencilLayout = {\n";
7766         s << "\tsType = " << value.sType << '\n';
7767         s << "\tpNext = " << value.pNext << '\n';
7768         s << "\tstencilLayout = " << value.stencilLayout << '\n';
7769         s << '}';
7770         return s;
7771 }
7772
7773 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
7774 {
7775         s << "VkAttachmentDescriptionStencilLayout = {\n";
7776         s << "\tsType = " << value.sType << '\n';
7777         s << "\tpNext = " << value.pNext << '\n';
7778         s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
7779         s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
7780         s << '}';
7781         return s;
7782 }
7783
7784 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
7785 {
7786         s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
7787         s << "\tsType = " << value.sType << '\n';
7788         s << "\tpNext = " << value.pNext << '\n';
7789         s << "\thostQueryReset = " << value.hostQueryReset << '\n';
7790         s << '}';
7791         return s;
7792 }
7793
7794 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
7795 {
7796         s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
7797         s << "\tsType = " << value.sType << '\n';
7798         s << "\tpNext = " << value.pNext << '\n';
7799         s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
7800         s << '}';
7801         return s;
7802 }
7803
7804 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
7805 {
7806         s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
7807         s << "\tsType = " << value.sType << '\n';
7808         s << "\tpNext = " << value.pNext << '\n';
7809         s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
7810         s << '}';
7811         return s;
7812 }
7813
7814 std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
7815 {
7816         s << "VkSemaphoreTypeCreateInfo = {\n";
7817         s << "\tsType = " << value.sType << '\n';
7818         s << "\tpNext = " << value.pNext << '\n';
7819         s << "\tsemaphoreType = " << value.semaphoreType << '\n';
7820         s << "\tinitialValue = " << value.initialValue << '\n';
7821         s << '}';
7822         return s;
7823 }
7824
7825 std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
7826 {
7827         s << "VkTimelineSemaphoreSubmitInfo = {\n";
7828         s << "\tsType = " << value.sType << '\n';
7829         s << "\tpNext = " << value.pNext << '\n';
7830         s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
7831         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
7832         s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
7833         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
7834         s << '}';
7835         return s;
7836 }
7837
7838 std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
7839 {
7840         s << "VkSemaphoreWaitInfo = {\n";
7841         s << "\tsType = " << value.sType << '\n';
7842         s << "\tpNext = " << value.pNext << '\n';
7843         s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
7844         s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
7845         s << "\tpSemaphores = " << value.pSemaphores << '\n';
7846         s << "\tpValues = " << value.pValues << '\n';
7847         s << '}';
7848         return s;
7849 }
7850
7851 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
7852 {
7853         s << "VkSemaphoreSignalInfo = {\n";
7854         s << "\tsType = " << value.sType << '\n';
7855         s << "\tpNext = " << value.pNext << '\n';
7856         s << "\tsemaphore = " << value.semaphore << '\n';
7857         s << "\tvalue = " << value.value << '\n';
7858         s << '}';
7859         return s;
7860 }
7861
7862 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
7863 {
7864         s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
7865         s << "\tsType = " << value.sType << '\n';
7866         s << "\tpNext = " << value.pNext << '\n';
7867         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
7868         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
7869         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
7870         s << '}';
7871         return s;
7872 }
7873
7874 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
7875 {
7876         s << "VkBufferDeviceAddressInfo = {\n";
7877         s << "\tsType = " << value.sType << '\n';
7878         s << "\tpNext = " << value.pNext << '\n';
7879         s << "\tbuffer = " << value.buffer << '\n';
7880         s << '}';
7881         return s;
7882 }
7883
7884 std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
7885 {
7886         s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
7887         s << "\tsType = " << value.sType << '\n';
7888         s << "\tpNext = " << value.pNext << '\n';
7889         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7890         s << '}';
7891         return s;
7892 }
7893
7894 std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
7895 {
7896         s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
7897         s << "\tsType = " << value.sType << '\n';
7898         s << "\tpNext = " << value.pNext << '\n';
7899         s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
7900         s << '}';
7901         return s;
7902 }
7903
7904 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
7905 {
7906         s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
7907         s << "\tsType = " << value.sType << '\n';
7908         s << "\tpNext = " << value.pNext << '\n';
7909         s << "\tmemory = " << value.memory << '\n';
7910         s << '}';
7911         return s;
7912 }
7913
7914 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
7915 {
7916         s << "VkPhysicalDeviceVulkan13Features = {\n";
7917         s << "\tsType = " << value.sType << '\n';
7918         s << "\tpNext = " << value.pNext << '\n';
7919         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
7920         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
7921         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
7922         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
7923         s << "\tprivateData = " << value.privateData << '\n';
7924         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
7925         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
7926         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
7927         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
7928         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
7929         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
7930         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
7931         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
7932         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
7933         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
7934         s << '}';
7935         return s;
7936 }
7937
7938 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
7939 {
7940         s << "VkPhysicalDeviceVulkan13Properties = {\n";
7941         s << "\tsType = " << value.sType << '\n';
7942         s << "\tpNext = " << value.pNext << '\n';
7943         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
7944         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
7945         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
7946         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
7947         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
7948         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
7949         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
7950         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
7951         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
7952         s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
7953         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
7954         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
7955         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
7956         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
7957         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
7958         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
7959         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
7960         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
7961         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
7962         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
7963         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
7964         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
7965         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
7966         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
7967         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
7968         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
7969         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
7970         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
7971         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
7972         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
7973         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
7974         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
7975         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
7976         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
7977         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
7978         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
7979         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
7980         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
7981         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
7982         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
7983         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
7984         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
7985         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
7986         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
7987         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
7988         s << '}';
7989         return s;
7990 }
7991
7992 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
7993 {
7994         s << "VkPipelineCreationFeedback = {\n";
7995         s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
7996         s << "\tduration = " << value.duration << '\n';
7997         s << '}';
7998         return s;
7999 }
8000
8001 std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
8002 {
8003         s << "VkPipelineCreationFeedbackCreateInfo = {\n";
8004         s << "\tsType = " << value.sType << '\n';
8005         s << "\tpNext = " << value.pNext << '\n';
8006         s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
8007         s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
8008         s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
8009         s << '}';
8010         return s;
8011 }
8012
8013 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
8014 {
8015         s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
8016         s << "\tsType = " << value.sType << '\n';
8017         s << "\tpNext = " << value.pNext << '\n';
8018         s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
8019         s << '}';
8020         return s;
8021 }
8022
8023 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
8024 {
8025         s << "VkPhysicalDeviceToolProperties = {\n";
8026         s << "\tsType = " << value.sType << '\n';
8027         s << "\tpNext = " << value.pNext << '\n';
8028         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
8029         s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
8030         s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
8031         s << "\tdescription = " << (const char*)value.description << '\n';
8032         s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
8033         s << '}';
8034         return s;
8035 }
8036
8037 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
8038 {
8039         s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
8040         s << "\tsType = " << value.sType << '\n';
8041         s << "\tpNext = " << value.pNext << '\n';
8042         s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
8043         s << '}';
8044         return s;
8045 }
8046
8047 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
8048 {
8049         s << "VkPhysicalDevicePrivateDataFeatures = {\n";
8050         s << "\tsType = " << value.sType << '\n';
8051         s << "\tpNext = " << value.pNext << '\n';
8052         s << "\tprivateData = " << value.privateData << '\n';
8053         s << '}';
8054         return s;
8055 }
8056
8057 std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
8058 {
8059         s << "VkDevicePrivateDataCreateInfo = {\n";
8060         s << "\tsType = " << value.sType << '\n';
8061         s << "\tpNext = " << value.pNext << '\n';
8062         s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
8063         s << '}';
8064         return s;
8065 }
8066
8067 std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
8068 {
8069         s << "VkPrivateDataSlotCreateInfo = {\n";
8070         s << "\tsType = " << value.sType << '\n';
8071         s << "\tpNext = " << value.pNext << '\n';
8072         s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
8073         s << '}';
8074         return s;
8075 }
8076
8077 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
8078 {
8079         s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
8080         s << "\tsType = " << value.sType << '\n';
8081         s << "\tpNext = " << value.pNext << '\n';
8082         s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
8083         s << '}';
8084         return s;
8085 }
8086
8087 std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
8088 {
8089         s << "VkMemoryBarrier2 = {\n";
8090         s << "\tsType = " << value.sType << '\n';
8091         s << "\tpNext = " << value.pNext << '\n';
8092         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8093         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8094         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8095         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8096         s << '}';
8097         return s;
8098 }
8099
8100 std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
8101 {
8102         s << "VkBufferMemoryBarrier2 = {\n";
8103         s << "\tsType = " << value.sType << '\n';
8104         s << "\tpNext = " << value.pNext << '\n';
8105         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8106         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8107         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8108         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8109         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8110         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8111         s << "\tbuffer = " << value.buffer << '\n';
8112         s << "\toffset = " << value.offset << '\n';
8113         s << "\tsize = " << value.size << '\n';
8114         s << '}';
8115         return s;
8116 }
8117
8118 std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
8119 {
8120         s << "VkImageMemoryBarrier2 = {\n";
8121         s << "\tsType = " << value.sType << '\n';
8122         s << "\tpNext = " << value.pNext << '\n';
8123         s << "\tsrcStageMask = " << value.srcStageMask << '\n';
8124         s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
8125         s << "\tdstStageMask = " << value.dstStageMask << '\n';
8126         s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
8127         s << "\toldLayout = " << value.oldLayout << '\n';
8128         s << "\tnewLayout = " << value.newLayout << '\n';
8129         s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
8130         s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
8131         s << "\timage = " << value.image << '\n';
8132         s << "\tsubresourceRange = " << value.subresourceRange << '\n';
8133         s << '}';
8134         return s;
8135 }
8136
8137 std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
8138 {
8139         s << "VkDependencyInfo = {\n";
8140         s << "\tsType = " << value.sType << '\n';
8141         s << "\tpNext = " << value.pNext << '\n';
8142         s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
8143         s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
8144         s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
8145         s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
8146         s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
8147         s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
8148         s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
8149         s << '}';
8150         return s;
8151 }
8152
8153 std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
8154 {
8155         s << "VkSemaphoreSubmitInfo = {\n";
8156         s << "\tsType = " << value.sType << '\n';
8157         s << "\tpNext = " << value.pNext << '\n';
8158         s << "\tsemaphore = " << value.semaphore << '\n';
8159         s << "\tvalue = " << value.value << '\n';
8160         s << "\tstageMask = " << value.stageMask << '\n';
8161         s << "\tdeviceIndex = " << value.deviceIndex << '\n';
8162         s << '}';
8163         return s;
8164 }
8165
8166 std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
8167 {
8168         s << "VkCommandBufferSubmitInfo = {\n";
8169         s << "\tsType = " << value.sType << '\n';
8170         s << "\tpNext = " << value.pNext << '\n';
8171         s << "\tcommandBuffer = " << value.commandBuffer << '\n';
8172         s << "\tdeviceMask = " << value.deviceMask << '\n';
8173         s << '}';
8174         return s;
8175 }
8176
8177 std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
8178 {
8179         s << "VkSubmitInfo2 = {\n";
8180         s << "\tsType = " << value.sType << '\n';
8181         s << "\tpNext = " << value.pNext << '\n';
8182         s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
8183         s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
8184         s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
8185         s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
8186         s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
8187         s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
8188         s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
8189         s << '}';
8190         return s;
8191 }
8192
8193 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
8194 {
8195         s << "VkPhysicalDeviceSynchronization2Features = {\n";
8196         s << "\tsType = " << value.sType << '\n';
8197         s << "\tpNext = " << value.pNext << '\n';
8198         s << "\tsynchronization2 = " << value.synchronization2 << '\n';
8199         s << '}';
8200         return s;
8201 }
8202
8203 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
8204 {
8205         s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
8206         s << "\tsType = " << value.sType << '\n';
8207         s << "\tpNext = " << value.pNext << '\n';
8208         s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
8209         s << '}';
8210         return s;
8211 }
8212
8213 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
8214 {
8215         s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
8216         s << "\tsType = " << value.sType << '\n';
8217         s << "\tpNext = " << value.pNext << '\n';
8218         s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
8219         s << '}';
8220         return s;
8221 }
8222
8223 std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
8224 {
8225         s << "VkBufferCopy2 = {\n";
8226         s << "\tsType = " << value.sType << '\n';
8227         s << "\tpNext = " << value.pNext << '\n';
8228         s << "\tsrcOffset = " << value.srcOffset << '\n';
8229         s << "\tdstOffset = " << value.dstOffset << '\n';
8230         s << "\tsize = " << value.size << '\n';
8231         s << '}';
8232         return s;
8233 }
8234
8235 std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
8236 {
8237         s << "VkCopyBufferInfo2 = {\n";
8238         s << "\tsType = " << value.sType << '\n';
8239         s << "\tpNext = " << value.pNext << '\n';
8240         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8241         s << "\tdstBuffer = " << value.dstBuffer << '\n';
8242         s << "\tregionCount = " << value.regionCount << '\n';
8243         s << "\tpRegions = " << value.pRegions << '\n';
8244         s << '}';
8245         return s;
8246 }
8247
8248 std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
8249 {
8250         s << "VkImageCopy2 = {\n";
8251         s << "\tsType = " << value.sType << '\n';
8252         s << "\tpNext = " << value.pNext << '\n';
8253         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8254         s << "\tsrcOffset = " << value.srcOffset << '\n';
8255         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8256         s << "\tdstOffset = " << value.dstOffset << '\n';
8257         s << "\textent = " << value.extent << '\n';
8258         s << '}';
8259         return s;
8260 }
8261
8262 std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
8263 {
8264         s << "VkCopyImageInfo2 = {\n";
8265         s << "\tsType = " << value.sType << '\n';
8266         s << "\tpNext = " << value.pNext << '\n';
8267         s << "\tsrcImage = " << value.srcImage << '\n';
8268         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8269         s << "\tdstImage = " << value.dstImage << '\n';
8270         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8271         s << "\tregionCount = " << value.regionCount << '\n';
8272         s << "\tpRegions = " << value.pRegions << '\n';
8273         s << '}';
8274         return s;
8275 }
8276
8277 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
8278 {
8279         s << "VkBufferImageCopy2 = {\n";
8280         s << "\tsType = " << value.sType << '\n';
8281         s << "\tpNext = " << value.pNext << '\n';
8282         s << "\tbufferOffset = " << value.bufferOffset << '\n';
8283         s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
8284         s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
8285         s << "\timageSubresource = " << value.imageSubresource << '\n';
8286         s << "\timageOffset = " << value.imageOffset << '\n';
8287         s << "\timageExtent = " << value.imageExtent << '\n';
8288         s << '}';
8289         return s;
8290 }
8291
8292 std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
8293 {
8294         s << "VkCopyBufferToImageInfo2 = {\n";
8295         s << "\tsType = " << value.sType << '\n';
8296         s << "\tpNext = " << value.pNext << '\n';
8297         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
8298         s << "\tdstImage = " << value.dstImage << '\n';
8299         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8300         s << "\tregionCount = " << value.regionCount << '\n';
8301         s << "\tpRegions = " << value.pRegions << '\n';
8302         s << '}';
8303         return s;
8304 }
8305
8306 std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
8307 {
8308         s << "VkCopyImageToBufferInfo2 = {\n";
8309         s << "\tsType = " << value.sType << '\n';
8310         s << "\tpNext = " << value.pNext << '\n';
8311         s << "\tsrcImage = " << value.srcImage << '\n';
8312         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8313         s << "\tdstBuffer = " << value.dstBuffer << '\n';
8314         s << "\tregionCount = " << value.regionCount << '\n';
8315         s << "\tpRegions = " << value.pRegions << '\n';
8316         s << '}';
8317         return s;
8318 }
8319
8320 std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
8321 {
8322         s << "VkImageBlit2 = {\n";
8323         s << "\tsType = " << value.sType << '\n';
8324         s << "\tpNext = " << value.pNext << '\n';
8325         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8326         s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
8327         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8328         s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
8329         s << '}';
8330         return s;
8331 }
8332
8333 std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
8334 {
8335         s << "VkBlitImageInfo2 = {\n";
8336         s << "\tsType = " << value.sType << '\n';
8337         s << "\tpNext = " << value.pNext << '\n';
8338         s << "\tsrcImage = " << value.srcImage << '\n';
8339         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8340         s << "\tdstImage = " << value.dstImage << '\n';
8341         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8342         s << "\tregionCount = " << value.regionCount << '\n';
8343         s << "\tpRegions = " << value.pRegions << '\n';
8344         s << "\tfilter = " << value.filter << '\n';
8345         s << '}';
8346         return s;
8347 }
8348
8349 std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
8350 {
8351         s << "VkImageResolve2 = {\n";
8352         s << "\tsType = " << value.sType << '\n';
8353         s << "\tpNext = " << value.pNext << '\n';
8354         s << "\tsrcSubresource = " << value.srcSubresource << '\n';
8355         s << "\tsrcOffset = " << value.srcOffset << '\n';
8356         s << "\tdstSubresource = " << value.dstSubresource << '\n';
8357         s << "\tdstOffset = " << value.dstOffset << '\n';
8358         s << "\textent = " << value.extent << '\n';
8359         s << '}';
8360         return s;
8361 }
8362
8363 std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
8364 {
8365         s << "VkResolveImageInfo2 = {\n";
8366         s << "\tsType = " << value.sType << '\n';
8367         s << "\tpNext = " << value.pNext << '\n';
8368         s << "\tsrcImage = " << value.srcImage << '\n';
8369         s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
8370         s << "\tdstImage = " << value.dstImage << '\n';
8371         s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
8372         s << "\tregionCount = " << value.regionCount << '\n';
8373         s << "\tpRegions = " << value.pRegions << '\n';
8374         s << '}';
8375         return s;
8376 }
8377
8378 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
8379 {
8380         s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
8381         s << "\tsType = " << value.sType << '\n';
8382         s << "\tpNext = " << value.pNext << '\n';
8383         s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
8384         s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
8385         s << '}';
8386         return s;
8387 }
8388
8389 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
8390 {
8391         s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
8392         s << "\tsType = " << value.sType << '\n';
8393         s << "\tpNext = " << value.pNext << '\n';
8394         s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
8395         s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
8396         s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
8397         s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
8398         s << '}';
8399         return s;
8400 }
8401
8402 std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
8403 {
8404         s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
8405         s << "\tsType = " << value.sType << '\n';
8406         s << "\tpNext = " << value.pNext << '\n';
8407         s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
8408         s << '}';
8409         return s;
8410 }
8411
8412 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
8413 {
8414         s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
8415         s << "\tsType = " << value.sType << '\n';
8416         s << "\tpNext = " << value.pNext << '\n';
8417         s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
8418         s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
8419         s << '}';
8420         return s;
8421 }
8422
8423 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
8424 {
8425         s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
8426         s << "\tsType = " << value.sType << '\n';
8427         s << "\tpNext = " << value.pNext << '\n';
8428         s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
8429         s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
8430         s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
8431         s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
8432         s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
8433         s << '}';
8434         return s;
8435 }
8436
8437 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
8438 {
8439         s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
8440         s << "\tsType = " << value.sType << '\n';
8441         s << "\tpNext = " << value.pNext << '\n';
8442         s << "\tdataSize = " << value.dataSize << '\n';
8443         s << "\tpData = " << value.pData << '\n';
8444         s << '}';
8445         return s;
8446 }
8447
8448 std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
8449 {
8450         s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
8451         s << "\tsType = " << value.sType << '\n';
8452         s << "\tpNext = " << value.pNext << '\n';
8453         s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
8454         s << '}';
8455         return s;
8456 }
8457
8458 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
8459 {
8460         s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
8461         s << "\tsType = " << value.sType << '\n';
8462         s << "\tpNext = " << value.pNext << '\n';
8463         s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
8464         s << '}';
8465         return s;
8466 }
8467
8468 std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
8469 {
8470         s << "VkRenderingAttachmentInfo = {\n";
8471         s << "\tsType = " << value.sType << '\n';
8472         s << "\tpNext = " << value.pNext << '\n';
8473         s << "\timageView = " << value.imageView << '\n';
8474         s << "\timageLayout = " << value.imageLayout << '\n';
8475         s << "\tresolveMode = " << value.resolveMode << '\n';
8476         s << "\tresolveImageView = " << value.resolveImageView << '\n';
8477         s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
8478         s << "\tloadOp = " << value.loadOp << '\n';
8479         s << "\tstoreOp = " << value.storeOp << '\n';
8480         s << "\tclearValue = " << value.clearValue << '\n';
8481         s << '}';
8482         return s;
8483 }
8484
8485 std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
8486 {
8487         s << "VkRenderingInfo = {\n";
8488         s << "\tsType = " << value.sType << '\n';
8489         s << "\tpNext = " << value.pNext << '\n';
8490         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
8491         s << "\trenderArea = " << value.renderArea << '\n';
8492         s << "\tlayerCount = " << value.layerCount << '\n';
8493         s << "\tviewMask = " << value.viewMask << '\n';
8494         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8495         s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
8496         s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
8497         s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
8498         s << '}';
8499         return s;
8500 }
8501
8502 std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
8503 {
8504         s << "VkPipelineRenderingCreateInfo = {\n";
8505         s << "\tsType = " << value.sType << '\n';
8506         s << "\tpNext = " << value.pNext << '\n';
8507         s << "\tviewMask = " << value.viewMask << '\n';
8508         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8509         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
8510         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
8511         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
8512         s << '}';
8513         return s;
8514 }
8515
8516 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
8517 {
8518         s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
8519         s << "\tsType = " << value.sType << '\n';
8520         s << "\tpNext = " << value.pNext << '\n';
8521         s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
8522         s << '}';
8523         return s;
8524 }
8525
8526 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
8527 {
8528         s << "VkCommandBufferInheritanceRenderingInfo = {\n";
8529         s << "\tsType = " << value.sType << '\n';
8530         s << "\tpNext = " << value.pNext << '\n';
8531         s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
8532         s << "\tviewMask = " << value.viewMask << '\n';
8533         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8534         s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
8535         s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
8536         s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
8537         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
8538         s << '}';
8539         return s;
8540 }
8541
8542 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
8543 {
8544         s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
8545         s << "\tsType = " << value.sType << '\n';
8546         s << "\tpNext = " << value.pNext << '\n';
8547         s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
8548         s << '}';
8549         return s;
8550 }
8551
8552 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
8553 {
8554         s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
8555         s << "\tsType = " << value.sType << '\n';
8556         s << "\tpNext = " << value.pNext << '\n';
8557         s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
8558         s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
8559         s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
8560         s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
8561         s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
8562         s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
8563         s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
8564         s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
8565         s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
8566         s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
8567         s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
8568         s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
8569         s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
8570         s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
8571         s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
8572         s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
8573         s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
8574         s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
8575         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
8576         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
8577         s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
8578         s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
8579         s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
8580         s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
8581         s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
8582         s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
8583         s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
8584         s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
8585         s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
8586         s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
8587         s << '}';
8588         return s;
8589 }
8590
8591 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
8592 {
8593         s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
8594         s << "\tsType = " << value.sType << '\n';
8595         s << "\tpNext = " << value.pNext << '\n';
8596         s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
8597         s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
8598         s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
8599         s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
8600         s << '}';
8601         return s;
8602 }
8603
8604 std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
8605 {
8606         s << "VkFormatProperties3 = {\n";
8607         s << "\tsType = " << value.sType << '\n';
8608         s << "\tpNext = " << value.pNext << '\n';
8609         s << "\tlinearTilingFeatures = " << value.linearTilingFeatures << '\n';
8610         s << "\toptimalTilingFeatures = " << value.optimalTilingFeatures << '\n';
8611         s << "\tbufferFeatures = " << value.bufferFeatures << '\n';
8612         s << '}';
8613         return s;
8614 }
8615
8616 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
8617 {
8618         s << "VkPhysicalDeviceMaintenance4Features = {\n";
8619         s << "\tsType = " << value.sType << '\n';
8620         s << "\tpNext = " << value.pNext << '\n';
8621         s << "\tmaintenance4 = " << value.maintenance4 << '\n';
8622         s << '}';
8623         return s;
8624 }
8625
8626 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
8627 {
8628         s << "VkPhysicalDeviceMaintenance4Properties = {\n";
8629         s << "\tsType = " << value.sType << '\n';
8630         s << "\tpNext = " << value.pNext << '\n';
8631         s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
8632         s << '}';
8633         return s;
8634 }
8635
8636 std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
8637 {
8638         s << "VkDeviceBufferMemoryRequirements = {\n";
8639         s << "\tsType = " << value.sType << '\n';
8640         s << "\tpNext = " << value.pNext << '\n';
8641         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8642         s << '}';
8643         return s;
8644 }
8645
8646 std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
8647 {
8648         s << "VkDeviceImageMemoryRequirements = {\n";
8649         s << "\tsType = " << value.sType << '\n';
8650         s << "\tpNext = " << value.pNext << '\n';
8651         s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
8652         s << "\tplaneAspect = " << value.planeAspect << '\n';
8653         s << '}';
8654         return s;
8655 }
8656
8657 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
8658 {
8659         s << "VkSurfaceCapabilitiesKHR = {\n";
8660         s << "\tminImageCount = " << value.minImageCount << '\n';
8661         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
8662         s << "\tcurrentExtent = " << value.currentExtent << '\n';
8663         s << "\tminImageExtent = " << value.minImageExtent << '\n';
8664         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
8665         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
8666         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8667         s << "\tcurrentTransform = " << value.currentTransform << '\n';
8668         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
8669         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
8670         s << '}';
8671         return s;
8672 }
8673
8674 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
8675 {
8676         s << "VkSurfaceFormatKHR = {\n";
8677         s << "\tformat = " << value.format << '\n';
8678         s << "\tcolorSpace = " << value.colorSpace << '\n';
8679         s << '}';
8680         return s;
8681 }
8682
8683 std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
8684 {
8685         s << "VkSwapchainCreateInfoKHR = {\n";
8686         s << "\tsType = " << value.sType << '\n';
8687         s << "\tpNext = " << value.pNext << '\n';
8688         s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
8689         s << "\tsurface = " << value.surface << '\n';
8690         s << "\tminImageCount = " << value.minImageCount << '\n';
8691         s << "\timageFormat = " << value.imageFormat << '\n';
8692         s << "\timageColorSpace = " << value.imageColorSpace << '\n';
8693         s << "\timageExtent = " << value.imageExtent << '\n';
8694         s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
8695         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
8696         s << "\timageSharingMode = " << value.imageSharingMode << '\n';
8697         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
8698         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
8699         s << "\tpreTransform = " << value.preTransform << '\n';
8700         s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
8701         s << "\tpresentMode = " << value.presentMode << '\n';
8702         s << "\tclipped = " << value.clipped << '\n';
8703         s << "\toldSwapchain = " << value.oldSwapchain << '\n';
8704         s << '}';
8705         return s;
8706 }
8707
8708 std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
8709 {
8710         s << "VkPresentInfoKHR = {\n";
8711         s << "\tsType = " << value.sType << '\n';
8712         s << "\tpNext = " << value.pNext << '\n';
8713         s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
8714         s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
8715         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8716         s << "\tpSwapchains = " << value.pSwapchains << '\n';
8717         s << "\tpImageIndices = " << value.pImageIndices << '\n';
8718         s << "\tpResults = " << value.pResults << '\n';
8719         s << '}';
8720         return s;
8721 }
8722
8723 std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
8724 {
8725         s << "VkImageSwapchainCreateInfoKHR = {\n";
8726         s << "\tsType = " << value.sType << '\n';
8727         s << "\tpNext = " << value.pNext << '\n';
8728         s << "\tswapchain = " << value.swapchain << '\n';
8729         s << '}';
8730         return s;
8731 }
8732
8733 std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
8734 {
8735         s << "VkBindImageMemorySwapchainInfoKHR = {\n";
8736         s << "\tsType = " << value.sType << '\n';
8737         s << "\tpNext = " << value.pNext << '\n';
8738         s << "\tswapchain = " << value.swapchain << '\n';
8739         s << "\timageIndex = " << value.imageIndex << '\n';
8740         s << '}';
8741         return s;
8742 }
8743
8744 std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
8745 {
8746         s << "VkAcquireNextImageInfoKHR = {\n";
8747         s << "\tsType = " << value.sType << '\n';
8748         s << "\tpNext = " << value.pNext << '\n';
8749         s << "\tswapchain = " << value.swapchain << '\n';
8750         s << "\ttimeout = " << value.timeout << '\n';
8751         s << "\tsemaphore = " << value.semaphore << '\n';
8752         s << "\tfence = " << value.fence << '\n';
8753         s << "\tdeviceMask = " << value.deviceMask << '\n';
8754         s << '}';
8755         return s;
8756 }
8757
8758 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
8759 {
8760         s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
8761         s << "\tsType = " << value.sType << '\n';
8762         s << "\tpNext = " << value.pNext << '\n';
8763         s << "\tpresentMask = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.presentMask), DE_ARRAY_END(value.presentMask)) << '\n';
8764         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8765         s << '}';
8766         return s;
8767 }
8768
8769 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
8770 {
8771         s << "VkDeviceGroupPresentInfoKHR = {\n";
8772         s << "\tsType = " << value.sType << '\n';
8773         s << "\tpNext = " << value.pNext << '\n';
8774         s << "\tswapchainCount = " << value.swapchainCount << '\n';
8775         s << "\tpDeviceMasks = " << value.pDeviceMasks << '\n';
8776         s << "\tmode = " << value.mode << '\n';
8777         s << '}';
8778         return s;
8779 }
8780
8781 std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
8782 {
8783         s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
8784         s << "\tsType = " << value.sType << '\n';
8785         s << "\tpNext = " << value.pNext << '\n';
8786         s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
8787         s << '}';
8788         return s;
8789 }
8790
8791 std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
8792 {
8793         s << "VkDisplayModeParametersKHR = {\n";
8794         s << "\tvisibleRegion = " << value.visibleRegion << '\n';
8795         s << "\trefreshRate = " << value.refreshRate << '\n';
8796         s << '}';
8797         return s;
8798 }
8799
8800 std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
8801 {
8802         s << "VkDisplayModeCreateInfoKHR = {\n";
8803         s << "\tsType = " << value.sType << '\n';
8804         s << "\tpNext = " << value.pNext << '\n';
8805         s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
8806         s << "\tparameters = " << value.parameters << '\n';
8807         s << '}';
8808         return s;
8809 }
8810
8811 std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
8812 {
8813         s << "VkDisplayModePropertiesKHR = {\n";
8814         s << "\tdisplayMode = " << value.displayMode << '\n';
8815         s << "\tparameters = " << value.parameters << '\n';
8816         s << '}';
8817         return s;
8818 }
8819
8820 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
8821 {
8822         s << "VkDisplayPlaneCapabilitiesKHR = {\n";
8823         s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
8824         s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
8825         s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
8826         s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
8827         s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
8828         s << "\tminDstPosition = " << value.minDstPosition << '\n';
8829         s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
8830         s << "\tminDstExtent = " << value.minDstExtent << '\n';
8831         s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
8832         s << '}';
8833         return s;
8834 }
8835
8836 std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
8837 {
8838         s << "VkDisplayPlanePropertiesKHR = {\n";
8839         s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
8840         s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
8841         s << '}';
8842         return s;
8843 }
8844
8845 std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
8846 {
8847         s << "VkDisplayPropertiesKHR = {\n";
8848         s << "\tdisplay = " << value.display << '\n';
8849         s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
8850         s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
8851         s << "\tphysicalResolution = " << value.physicalResolution << '\n';
8852         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
8853         s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
8854         s << "\tpersistentContent = " << value.persistentContent << '\n';
8855         s << '}';
8856         return s;
8857 }
8858
8859 std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
8860 {
8861         s << "VkDisplaySurfaceCreateInfoKHR = {\n";
8862         s << "\tsType = " << value.sType << '\n';
8863         s << "\tpNext = " << value.pNext << '\n';
8864         s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
8865         s << "\tdisplayMode = " << value.displayMode << '\n';
8866         s << "\tplaneIndex = " << value.planeIndex << '\n';
8867         s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
8868         s << "\ttransform = " << value.transform << '\n';
8869         s << "\tglobalAlpha = " << value.globalAlpha << '\n';
8870         s << "\talphaMode = " << value.alphaMode << '\n';
8871         s << "\timageExtent = " << value.imageExtent << '\n';
8872         s << '}';
8873         return s;
8874 }
8875
8876 std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
8877 {
8878         s << "VkDisplayPresentInfoKHR = {\n";
8879         s << "\tsType = " << value.sType << '\n';
8880         s << "\tpNext = " << value.pNext << '\n';
8881         s << "\tsrcRect = " << value.srcRect << '\n';
8882         s << "\tdstRect = " << value.dstRect << '\n';
8883         s << "\tpersistent = " << value.persistent << '\n';
8884         s << '}';
8885         return s;
8886 }
8887
8888 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
8889 {
8890         s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
8891         s << "\tsType = " << value.sType << '\n';
8892         s << "\tpNext = " << value.pNext << '\n';
8893         s << "\timageView = " << value.imageView << '\n';
8894         s << "\timageLayout = " << value.imageLayout << '\n';
8895         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
8896         s << '}';
8897         return s;
8898 }
8899
8900 std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
8901 {
8902         s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
8903         s << "\tsType = " << value.sType << '\n';
8904         s << "\tpNext = " << value.pNext << '\n';
8905         s << "\timageView = " << value.imageView << '\n';
8906         s << "\timageLayout = " << value.imageLayout << '\n';
8907         s << '}';
8908         return s;
8909 }
8910
8911 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
8912 {
8913         s << "VkAttachmentSampleCountInfoAMD = {\n";
8914         s << "\tsType = " << value.sType << '\n';
8915         s << "\tpNext = " << value.pNext << '\n';
8916         s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
8917         s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
8918         s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
8919         s << '}';
8920         return s;
8921 }
8922
8923 std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
8924 {
8925         s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
8926         s << "\tsType = " << value.sType << '\n';
8927         s << "\tpNext = " << value.pNext << '\n';
8928         s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
8929         s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
8930         s << '}';
8931         return s;
8932 }
8933
8934 std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
8935 {
8936         s << "VkImportMemoryFdInfoKHR = {\n";
8937         s << "\tsType = " << value.sType << '\n';
8938         s << "\tpNext = " << value.pNext << '\n';
8939         s << "\thandleType = " << value.handleType << '\n';
8940         s << "\tfd = " << value.fd << '\n';
8941         s << '}';
8942         return s;
8943 }
8944
8945 std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
8946 {
8947         s << "VkMemoryFdPropertiesKHR = {\n";
8948         s << "\tsType = " << value.sType << '\n';
8949         s << "\tpNext = " << value.pNext << '\n';
8950         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
8951         s << '}';
8952         return s;
8953 }
8954
8955 std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
8956 {
8957         s << "VkMemoryGetFdInfoKHR = {\n";
8958         s << "\tsType = " << value.sType << '\n';
8959         s << "\tpNext = " << value.pNext << '\n';
8960         s << "\tmemory = " << value.memory << '\n';
8961         s << "\thandleType = " << value.handleType << '\n';
8962         s << '}';
8963         return s;
8964 }
8965
8966 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
8967 {
8968         s << "VkImportSemaphoreFdInfoKHR = {\n";
8969         s << "\tsType = " << value.sType << '\n';
8970         s << "\tpNext = " << value.pNext << '\n';
8971         s << "\tsemaphore = " << value.semaphore << '\n';
8972         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
8973         s << "\thandleType = " << value.handleType << '\n';
8974         s << "\tfd = " << value.fd << '\n';
8975         s << '}';
8976         return s;
8977 }
8978
8979 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
8980 {
8981         s << "VkSemaphoreGetFdInfoKHR = {\n";
8982         s << "\tsType = " << value.sType << '\n';
8983         s << "\tpNext = " << value.pNext << '\n';
8984         s << "\tsemaphore = " << value.semaphore << '\n';
8985         s << "\thandleType = " << value.handleType << '\n';
8986         s << '}';
8987         return s;
8988 }
8989
8990 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
8991 {
8992         s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
8993         s << "\tsType = " << value.sType << '\n';
8994         s << "\tpNext = " << value.pNext << '\n';
8995         s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
8996         s << '}';
8997         return s;
8998 }
8999
9000 std::ostream& operator<< (std::ostream& s, const VkRectLayerKHR& value)
9001 {
9002         s << "VkRectLayerKHR = {\n";
9003         s << "\toffset = " << value.offset << '\n';
9004         s << "\textent = " << value.extent << '\n';
9005         s << "\tlayer = " << value.layer << '\n';
9006         s << '}';
9007         return s;
9008 }
9009
9010 std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
9011 {
9012         s << "VkPresentRegionKHR = {\n";
9013         s << "\trectangleCount = " << value.rectangleCount << '\n';
9014         s << "\tpRectangles = " << value.pRectangles << '\n';
9015         s << '}';
9016         return s;
9017 }
9018
9019 std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
9020 {
9021         s << "VkPresentRegionsKHR = {\n";
9022         s << "\tsType = " << value.sType << '\n';
9023         s << "\tpNext = " << value.pNext << '\n';
9024         s << "\tswapchainCount = " << value.swapchainCount << '\n';
9025         s << "\tpRegions = " << value.pRegions << '\n';
9026         s << '}';
9027         return s;
9028 }
9029
9030 std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
9031 {
9032         s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
9033         s << "\tsType = " << value.sType << '\n';
9034         s << "\tpNext = " << value.pNext << '\n';
9035         s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
9036         s << '}';
9037         return s;
9038 }
9039
9040 std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
9041 {
9042         s << "VkImportFenceFdInfoKHR = {\n";
9043         s << "\tsType = " << value.sType << '\n';
9044         s << "\tpNext = " << value.pNext << '\n';
9045         s << "\tfence = " << value.fence << '\n';
9046         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
9047         s << "\thandleType = " << value.handleType << '\n';
9048         s << "\tfd = " << value.fd << '\n';
9049         s << '}';
9050         return s;
9051 }
9052
9053 std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
9054 {
9055         s << "VkFenceGetFdInfoKHR = {\n";
9056         s << "\tsType = " << value.sType << '\n';
9057         s << "\tpNext = " << value.pNext << '\n';
9058         s << "\tfence = " << value.fence << '\n';
9059         s << "\thandleType = " << value.handleType << '\n';
9060         s << '}';
9061         return s;
9062 }
9063
9064 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
9065 {
9066         s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
9067         s << "\tsType = " << value.sType << '\n';
9068         s << "\tpNext = " << value.pNext << '\n';
9069         s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
9070         s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
9071         s << '}';
9072         return s;
9073 }
9074
9075 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
9076 {
9077         s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
9078         s << "\tsType = " << value.sType << '\n';
9079         s << "\tpNext = " << value.pNext << '\n';
9080         s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
9081         s << '}';
9082         return s;
9083 }
9084
9085 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
9086 {
9087         s << "VkPerformanceCounterKHR = {\n";
9088         s << "\tsType = " << value.sType << '\n';
9089         s << "\tpNext = " << value.pNext << '\n';
9090         s << "\tunit = " << value.unit << '\n';
9091         s << "\tscope = " << value.scope << '\n';
9092         s << "\tstorage = " << value.storage << '\n';
9093         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';
9094         s << '}';
9095         return s;
9096 }
9097
9098 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
9099 {
9100         s << "VkPerformanceCounterDescriptionKHR = {\n";
9101         s << "\tsType = " << value.sType << '\n';
9102         s << "\tpNext = " << value.pNext << '\n';
9103         s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
9104         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9105         s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
9106         s << "\tdescription = " << (const char*)value.description << '\n';
9107         s << '}';
9108         return s;
9109 }
9110
9111 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
9112 {
9113         s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
9114         s << "\tsType = " << value.sType << '\n';
9115         s << "\tpNext = " << value.pNext << '\n';
9116         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
9117         s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
9118         s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
9119         s << '}';
9120         return s;
9121 }
9122
9123 std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
9124 {
9125         s << "VkPerformanceCounterResultKHR = {\n";
9126         s << "\tint32 = " << value.int32 << '\n';
9127         s << "\tint64 = " << value.int64 << '\n';
9128         s << "\tuint32 = " << value.uint32 << '\n';
9129         s << "\tuint64 = " << value.uint64 << '\n';
9130         s << "\tfloat32 = " << value.float32 << '\n';
9131         s << "\tfloat64 = " << value.float64 << '\n';
9132         s << '}';
9133         return s;
9134 }
9135
9136 std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
9137 {
9138         s << "VkAcquireProfilingLockInfoKHR = {\n";
9139         s << "\tsType = " << value.sType << '\n';
9140         s << "\tpNext = " << value.pNext << '\n';
9141         s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
9142         s << "\ttimeout = " << value.timeout << '\n';
9143         s << '}';
9144         return s;
9145 }
9146
9147 std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
9148 {
9149         s << "VkPerformanceQuerySubmitInfoKHR = {\n";
9150         s << "\tsType = " << value.sType << '\n';
9151         s << "\tpNext = " << value.pNext << '\n';
9152         s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
9153         s << '}';
9154         return s;
9155 }
9156
9157 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
9158 {
9159         s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
9160         s << "\tsType = " << value.sType << '\n';
9161         s << "\tpNext = " << value.pNext << '\n';
9162         s << "\tsurface = " << value.surface << '\n';
9163         s << '}';
9164         return s;
9165 }
9166
9167 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
9168 {
9169         s << "VkSurfaceCapabilities2KHR = {\n";
9170         s << "\tsType = " << value.sType << '\n';
9171         s << "\tpNext = " << value.pNext << '\n';
9172         s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
9173         s << '}';
9174         return s;
9175 }
9176
9177 std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
9178 {
9179         s << "VkSurfaceFormat2KHR = {\n";
9180         s << "\tsType = " << value.sType << '\n';
9181         s << "\tpNext = " << value.pNext << '\n';
9182         s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
9183         s << '}';
9184         return s;
9185 }
9186
9187 std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
9188 {
9189         s << "VkDisplayProperties2KHR = {\n";
9190         s << "\tsType = " << value.sType << '\n';
9191         s << "\tpNext = " << value.pNext << '\n';
9192         s << "\tdisplayProperties = " << value.displayProperties << '\n';
9193         s << '}';
9194         return s;
9195 }
9196
9197 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
9198 {
9199         s << "VkDisplayPlaneProperties2KHR = {\n";
9200         s << "\tsType = " << value.sType << '\n';
9201         s << "\tpNext = " << value.pNext << '\n';
9202         s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
9203         s << '}';
9204         return s;
9205 }
9206
9207 std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
9208 {
9209         s << "VkDisplayModeProperties2KHR = {\n";
9210         s << "\tsType = " << value.sType << '\n';
9211         s << "\tpNext = " << value.pNext << '\n';
9212         s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
9213         s << '}';
9214         return s;
9215 }
9216
9217 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
9218 {
9219         s << "VkDisplayPlaneInfo2KHR = {\n";
9220         s << "\tsType = " << value.sType << '\n';
9221         s << "\tpNext = " << value.pNext << '\n';
9222         s << "\tmode = " << value.mode << '\n';
9223         s << "\tplaneIndex = " << value.planeIndex << '\n';
9224         s << '}';
9225         return s;
9226 }
9227
9228 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
9229 {
9230         s << "VkDisplayPlaneCapabilities2KHR = {\n";
9231         s << "\tsType = " << value.sType << '\n';
9232         s << "\tpNext = " << value.pNext << '\n';
9233         s << "\tcapabilities = " << value.capabilities << '\n';
9234         s << '}';
9235         return s;
9236 }
9237
9238 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
9239 {
9240         s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
9241         s << "\tsType = " << value.sType << '\n';
9242         s << "\tpNext = " << value.pNext << '\n';
9243         s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
9244         s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
9245         s << '}';
9246         return s;
9247 }
9248
9249 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
9250 {
9251         s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
9252         s << "\tsType = " << value.sType << '\n';
9253         s << "\tpNext = " << value.pNext << '\n';
9254         s << "\tglobalPriority = " << value.globalPriority << '\n';
9255         s << '}';
9256         return s;
9257 }
9258
9259 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
9260 {
9261         s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
9262         s << "\tsType = " << value.sType << '\n';
9263         s << "\tpNext = " << value.pNext << '\n';
9264         s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
9265         s << '}';
9266         return s;
9267 }
9268
9269 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
9270 {
9271         s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
9272         s << "\tsType = " << value.sType << '\n';
9273         s << "\tpNext = " << value.pNext << '\n';
9274         s << "\tpriorityCount = " << value.priorityCount << '\n';
9275         s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
9276         s << '}';
9277         return s;
9278 }
9279
9280 std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
9281 {
9282         s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
9283         s << "\tsType = " << value.sType << '\n';
9284         s << "\tpNext = " << value.pNext << '\n';
9285         s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
9286         s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
9287         s << '}';
9288         return s;
9289 }
9290
9291 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
9292 {
9293         s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
9294         s << "\tsType = " << value.sType << '\n';
9295         s << "\tpNext = " << value.pNext << '\n';
9296         s << "\tfragmentSize = " << value.fragmentSize << '\n';
9297         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
9298         s << '}';
9299         return s;
9300 }
9301
9302 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
9303 {
9304         s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
9305         s << "\tsType = " << value.sType << '\n';
9306         s << "\tpNext = " << value.pNext << '\n';
9307         s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
9308         s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
9309         s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
9310         s << '}';
9311         return s;
9312 }
9313
9314 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
9315 {
9316         s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
9317         s << "\tsType = " << value.sType << '\n';
9318         s << "\tpNext = " << value.pNext << '\n';
9319         s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
9320         s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
9321         s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
9322         s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
9323         s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
9324         s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
9325         s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
9326         s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
9327         s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
9328         s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
9329         s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
9330         s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
9331         s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
9332         s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
9333         s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
9334         s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
9335         s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
9336         s << '}';
9337         return s;
9338 }
9339
9340 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
9341 {
9342         s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
9343         s << "\tsType = " << value.sType << '\n';
9344         s << "\tpNext = " << value.pNext << '\n';
9345         s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
9346         s << "\tfragmentSize = " << value.fragmentSize << '\n';
9347         s << '}';
9348         return s;
9349 }
9350
9351 std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
9352 {
9353         s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
9354         s << "\tsType = " << value.sType << '\n';
9355         s << "\tpNext = " << value.pNext << '\n';
9356         s << "\tsupportsProtected = " << value.supportsProtected << '\n';
9357         s << '}';
9358         return s;
9359 }
9360
9361 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
9362 {
9363         s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
9364         s << "\tsType = " << value.sType << '\n';
9365         s << "\tpNext = " << value.pNext << '\n';
9366         s << "\tpresentWait = " << value.presentWait << '\n';
9367         s << '}';
9368         return s;
9369 }
9370
9371 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
9372 {
9373         s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
9374         s << "\tsType = " << value.sType << '\n';
9375         s << "\tpNext = " << value.pNext << '\n';
9376         s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
9377         s << '}';
9378         return s;
9379 }
9380
9381 std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
9382 {
9383         s << "VkPipelineInfoKHR = {\n";
9384         s << "\tsType = " << value.sType << '\n';
9385         s << "\tpNext = " << value.pNext << '\n';
9386         s << "\tpipeline = " << value.pipeline << '\n';
9387         s << '}';
9388         return s;
9389 }
9390
9391 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
9392 {
9393         s << "VkPipelineExecutablePropertiesKHR = {\n";
9394         s << "\tsType = " << value.sType << '\n';
9395         s << "\tpNext = " << value.pNext << '\n';
9396         s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
9397         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9398         s << "\tdescription = " << (const char*)value.description << '\n';
9399         s << "\tsubgroupSize = " << value.subgroupSize << '\n';
9400         s << '}';
9401         return s;
9402 }
9403
9404 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
9405 {
9406         s << "VkPipelineExecutableInfoKHR = {\n";
9407         s << "\tsType = " << value.sType << '\n';
9408         s << "\tpNext = " << value.pNext << '\n';
9409         s << "\tpipeline = " << value.pipeline << '\n';
9410         s << "\texecutableIndex = " << value.executableIndex << '\n';
9411         s << '}';
9412         return s;
9413 }
9414
9415 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
9416 {
9417         s << "VkPipelineExecutableStatisticValueKHR = {\n";
9418         s << "\tb32 = " << value.b32 << '\n';
9419         s << "\ti64 = " << value.i64 << '\n';
9420         s << "\tu64 = " << value.u64 << '\n';
9421         s << "\tf64 = " << value.f64 << '\n';
9422         s << '}';
9423         return s;
9424 }
9425
9426 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
9427 {
9428         s << "VkPipelineExecutableStatisticKHR = {\n";
9429         s << "\tsType = " << value.sType << '\n';
9430         s << "\tpNext = " << value.pNext << '\n';
9431         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9432         s << "\tdescription = " << (const char*)value.description << '\n';
9433         s << "\tformat = " << value.format << '\n';
9434         s << "\tvalue = " << value.value << '\n';
9435         s << '}';
9436         return s;
9437 }
9438
9439 std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
9440 {
9441         s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
9442         s << "\tsType = " << value.sType << '\n';
9443         s << "\tpNext = " << value.pNext << '\n';
9444         s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
9445         s << "\tdescription = " << (const char*)value.description << '\n';
9446         s << "\tisText = " << value.isText << '\n';
9447         s << "\tdataSize = " << value.dataSize << '\n';
9448         s << "\tpData = " << value.pData << '\n';
9449         s << '}';
9450         return s;
9451 }
9452
9453 std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
9454 {
9455         s << "VkPipelineLibraryCreateInfoKHR = {\n";
9456         s << "\tsType = " << value.sType << '\n';
9457         s << "\tpNext = " << value.pNext << '\n';
9458         s << "\tlibraryCount = " << value.libraryCount << '\n';
9459         s << "\tpLibraries = " << value.pLibraries << '\n';
9460         s << '}';
9461         return s;
9462 }
9463
9464 std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
9465 {
9466         s << "VkPresentIdKHR = {\n";
9467         s << "\tsType = " << value.sType << '\n';
9468         s << "\tpNext = " << value.pNext << '\n';
9469         s << "\tswapchainCount = " << value.swapchainCount << '\n';
9470         s << "\tpPresentIds = " << value.pPresentIds << '\n';
9471         s << '}';
9472         return s;
9473 }
9474
9475 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
9476 {
9477         s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
9478         s << "\tsType = " << value.sType << '\n';
9479         s << "\tpNext = " << value.pNext << '\n';
9480         s << "\tpresentId = " << value.presentId << '\n';
9481         s << '}';
9482         return s;
9483 }
9484
9485 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
9486 {
9487         s << "VkQueueFamilyCheckpointProperties2NV = {\n";
9488         s << "\tsType = " << value.sType << '\n';
9489         s << "\tpNext = " << value.pNext << '\n';
9490         s << "\tcheckpointExecutionStageMask = " << value.checkpointExecutionStageMask << '\n';
9491         s << '}';
9492         return s;
9493 }
9494
9495 std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
9496 {
9497         s << "VkCheckpointData2NV = {\n";
9498         s << "\tsType = " << value.sType << '\n';
9499         s << "\tpNext = " << value.pNext << '\n';
9500         s << "\tstage = " << value.stage << '\n';
9501         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
9502         s << '}';
9503         return s;
9504 }
9505
9506 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
9507 {
9508         s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
9509         s << "\tsType = " << value.sType << '\n';
9510         s << "\tpNext = " << value.pNext << '\n';
9511         s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
9512         s << '}';
9513         return s;
9514 }
9515
9516 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
9517 {
9518         s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
9519         s << "\tsType = " << value.sType << '\n';
9520         s << "\tpNext = " << value.pNext << '\n';
9521         s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
9522         s << '}';
9523         return s;
9524 }
9525
9526 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
9527 {
9528         s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
9529         s << "\tsType = " << value.sType << '\n';
9530         s << "\tpNext = " << value.pNext << '\n';
9531         s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
9532         s << '}';
9533         return s;
9534 }
9535
9536 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
9537 {
9538         s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
9539         s << "\tsType = " << value.sType << '\n';
9540         s << "\tpNext = " << value.pNext << '\n';
9541         s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
9542         s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
9543         s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
9544         s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
9545         s << '}';
9546         return s;
9547 }
9548
9549 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
9550 {
9551         s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
9552         s << "\tsType = " << value.sType << '\n';
9553         s << "\tpNext = " << value.pNext << '\n';
9554         s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
9555         s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
9556         s << '}';
9557         return s;
9558 }
9559
9560 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
9561 {
9562         s << "VkTraceRaysIndirectCommand2KHR = {\n";
9563         s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
9564         s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
9565         s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
9566         s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
9567         s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
9568         s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
9569         s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
9570         s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
9571         s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
9572         s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
9573         s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
9574         s << "\twidth = " << value.width << '\n';
9575         s << "\theight = " << value.height << '\n';
9576         s << "\tdepth = " << value.depth << '\n';
9577         s << '}';
9578         return s;
9579 }
9580
9581 std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
9582 {
9583         s << "VkDebugReportCallbackCreateInfoEXT = {\n";
9584         s << "\tsType = " << value.sType << '\n';
9585         s << "\tpNext = " << value.pNext << '\n';
9586         s << "\tflags = " << getDebugReportFlagsEXTStr(value.flags) << '\n';
9587         s << "\tpfnCallback = " << value.pfnCallback << '\n';
9588         s << "\tpUserData = " << value.pUserData << '\n';
9589         s << '}';
9590         return s;
9591 }
9592
9593 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
9594 {
9595         s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
9596         s << "\tsType = " << value.sType << '\n';
9597         s << "\tpNext = " << value.pNext << '\n';
9598         s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
9599         s << '}';
9600         return s;
9601 }
9602
9603 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
9604 {
9605         s << "VkDebugMarkerObjectNameInfoEXT = {\n";
9606         s << "\tsType = " << value.sType << '\n';
9607         s << "\tpNext = " << value.pNext << '\n';
9608         s << "\tobjectType = " << value.objectType << '\n';
9609         s << "\tobject = " << value.object << '\n';
9610         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
9611         s << '}';
9612         return s;
9613 }
9614
9615 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
9616 {
9617         s << "VkDebugMarkerObjectTagInfoEXT = {\n";
9618         s << "\tsType = " << value.sType << '\n';
9619         s << "\tpNext = " << value.pNext << '\n';
9620         s << "\tobjectType = " << value.objectType << '\n';
9621         s << "\tobject = " << value.object << '\n';
9622         s << "\ttagName = " << value.tagName << '\n';
9623         s << "\ttagSize = " << value.tagSize << '\n';
9624         s << "\tpTag = " << value.pTag << '\n';
9625         s << '}';
9626         return s;
9627 }
9628
9629 std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
9630 {
9631         s << "VkDebugMarkerMarkerInfoEXT = {\n";
9632         s << "\tsType = " << value.sType << '\n';
9633         s << "\tpNext = " << value.pNext << '\n';
9634         s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
9635         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
9636         s << '}';
9637         return s;
9638 }
9639
9640 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
9641 {
9642         s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
9643         s << "\tsType = " << value.sType << '\n';
9644         s << "\tpNext = " << value.pNext << '\n';
9645         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
9646         s << '}';
9647         return s;
9648 }
9649
9650 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
9651 {
9652         s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
9653         s << "\tsType = " << value.sType << '\n';
9654         s << "\tpNext = " << value.pNext << '\n';
9655         s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
9656         s << '}';
9657         return s;
9658 }
9659
9660 std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
9661 {
9662         s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
9663         s << "\tsType = " << value.sType << '\n';
9664         s << "\tpNext = " << value.pNext << '\n';
9665         s << "\timage = " << value.image << '\n';
9666         s << "\tbuffer = " << value.buffer << '\n';
9667         s << '}';
9668         return s;
9669 }
9670
9671 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
9672 {
9673         s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
9674         s << "\tsType = " << value.sType << '\n';
9675         s << "\tpNext = " << value.pNext << '\n';
9676         s << "\ttransformFeedback = " << value.transformFeedback << '\n';
9677         s << "\tgeometryStreams = " << value.geometryStreams << '\n';
9678         s << '}';
9679         return s;
9680 }
9681
9682 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
9683 {
9684         s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
9685         s << "\tsType = " << value.sType << '\n';
9686         s << "\tpNext = " << value.pNext << '\n';
9687         s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
9688         s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
9689         s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
9690         s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
9691         s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
9692         s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
9693         s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
9694         s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
9695         s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
9696         s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
9697         s << '}';
9698         return s;
9699 }
9700
9701 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
9702 {
9703         s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
9704         s << "\tsType = " << value.sType << '\n';
9705         s << "\tpNext = " << value.pNext << '\n';
9706         s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
9707         s << "\trasterizationStream = " << value.rasterizationStream << '\n';
9708         s << '}';
9709         return s;
9710 }
9711
9712 std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
9713 {
9714         s << "VkCuModuleCreateInfoNVX = {\n";
9715         s << "\tsType = " << value.sType << '\n';
9716         s << "\tpNext = " << value.pNext << '\n';
9717         s << "\tdataSize = " << value.dataSize << '\n';
9718         s << "\tpData = " << value.pData << '\n';
9719         s << '}';
9720         return s;
9721 }
9722
9723 std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
9724 {
9725         s << "VkCuFunctionCreateInfoNVX = {\n";
9726         s << "\tsType = " << value.sType << '\n';
9727         s << "\tpNext = " << value.pNext << '\n';
9728         s << "\tmodule = " << value.module << '\n';
9729         s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
9730         s << '}';
9731         return s;
9732 }
9733
9734 std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
9735 {
9736         s << "VkCuLaunchInfoNVX = {\n";
9737         s << "\tsType = " << value.sType << '\n';
9738         s << "\tpNext = " << value.pNext << '\n';
9739         s << "\tfunction = " << value.function << '\n';
9740         s << "\tgridDimX = " << value.gridDimX << '\n';
9741         s << "\tgridDimY = " << value.gridDimY << '\n';
9742         s << "\tgridDimZ = " << value.gridDimZ << '\n';
9743         s << "\tblockDimX = " << value.blockDimX << '\n';
9744         s << "\tblockDimY = " << value.blockDimY << '\n';
9745         s << "\tblockDimZ = " << value.blockDimZ << '\n';
9746         s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
9747         s << "\tparamCount = " << value.paramCount << '\n';
9748         s << "\tpParams = " << value.pParams << '\n';
9749         s << "\textraCount = " << value.extraCount << '\n';
9750         s << "\tpExtras = " << value.pExtras << '\n';
9751         s << '}';
9752         return s;
9753 }
9754
9755 std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
9756 {
9757         s << "VkImageViewHandleInfoNVX = {\n";
9758         s << "\tsType = " << value.sType << '\n';
9759         s << "\tpNext = " << value.pNext << '\n';
9760         s << "\timageView = " << value.imageView << '\n';
9761         s << "\tdescriptorType = " << value.descriptorType << '\n';
9762         s << "\tsampler = " << value.sampler << '\n';
9763         s << '}';
9764         return s;
9765 }
9766
9767 std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
9768 {
9769         s << "VkImageViewAddressPropertiesNVX = {\n";
9770         s << "\tsType = " << value.sType << '\n';
9771         s << "\tpNext = " << value.pNext << '\n';
9772         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
9773         s << "\tsize = " << value.size << '\n';
9774         s << '}';
9775         return s;
9776 }
9777
9778 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
9779 {
9780         s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
9781         s << "\tsType = " << value.sType << '\n';
9782         s << "\tpNext = " << value.pNext << '\n';
9783         s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
9784         s << '}';
9785         return s;
9786 }
9787
9788 std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
9789 {
9790         s << "VkShaderResourceUsageAMD = {\n";
9791         s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
9792         s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
9793         s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
9794         s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
9795         s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
9796         s << '}';
9797         return s;
9798 }
9799
9800 std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
9801 {
9802         s << "VkShaderStatisticsInfoAMD = {\n";
9803         s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
9804         s << "\tresourceUsage = " << value.resourceUsage << '\n';
9805         s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
9806         s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
9807         s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
9808         s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
9809         s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
9810         s << '}';
9811         return s;
9812 }
9813
9814 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
9815 {
9816         s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
9817         s << "\tsType = " << value.sType << '\n';
9818         s << "\tpNext = " << value.pNext << '\n';
9819         s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
9820         s << '}';
9821         return s;
9822 }
9823
9824 std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
9825 {
9826         s << "VkExternalImageFormatPropertiesNV = {\n";
9827         s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
9828         s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsNVStr(value.externalMemoryFeatures) << '\n';
9829         s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.exportFromImportedHandleTypes) << '\n';
9830         s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.compatibleHandleTypes) << '\n';
9831         s << '}';
9832         return s;
9833 }
9834
9835 std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
9836 {
9837         s << "VkExternalMemoryImageCreateInfoNV = {\n";
9838         s << "\tsType = " << value.sType << '\n';
9839         s << "\tpNext = " << value.pNext << '\n';
9840         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
9841         s << '}';
9842         return s;
9843 }
9844
9845 std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
9846 {
9847         s << "VkExportMemoryAllocateInfoNV = {\n";
9848         s << "\tsType = " << value.sType << '\n';
9849         s << "\tpNext = " << value.pNext << '\n';
9850         s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
9851         s << '}';
9852         return s;
9853 }
9854
9855 std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
9856 {
9857         s << "VkValidationFlagsEXT = {\n";
9858         s << "\tsType = " << value.sType << '\n';
9859         s << "\tpNext = " << value.pNext << '\n';
9860         s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
9861         s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
9862         s << '}';
9863         return s;
9864 }
9865
9866 std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
9867 {
9868         s << "VkImageViewASTCDecodeModeEXT = {\n";
9869         s << "\tsType = " << value.sType << '\n';
9870         s << "\tpNext = " << value.pNext << '\n';
9871         s << "\tdecodeMode = " << value.decodeMode << '\n';
9872         s << '}';
9873         return s;
9874 }
9875
9876 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
9877 {
9878         s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
9879         s << "\tsType = " << value.sType << '\n';
9880         s << "\tpNext = " << value.pNext << '\n';
9881         s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
9882         s << '}';
9883         return s;
9884 }
9885
9886 std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
9887 {
9888         s << "VkConditionalRenderingBeginInfoEXT = {\n";
9889         s << "\tsType = " << value.sType << '\n';
9890         s << "\tpNext = " << value.pNext << '\n';
9891         s << "\tbuffer = " << value.buffer << '\n';
9892         s << "\toffset = " << value.offset << '\n';
9893         s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
9894         s << '}';
9895         return s;
9896 }
9897
9898 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
9899 {
9900         s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
9901         s << "\tsType = " << value.sType << '\n';
9902         s << "\tpNext = " << value.pNext << '\n';
9903         s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
9904         s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
9905         s << '}';
9906         return s;
9907 }
9908
9909 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
9910 {
9911         s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
9912         s << "\tsType = " << value.sType << '\n';
9913         s << "\tpNext = " << value.pNext << '\n';
9914         s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
9915         s << '}';
9916         return s;
9917 }
9918
9919 std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
9920 {
9921         s << "VkViewportWScalingNV = {\n";
9922         s << "\txcoeff = " << value.xcoeff << '\n';
9923         s << "\tycoeff = " << value.ycoeff << '\n';
9924         s << '}';
9925         return s;
9926 }
9927
9928 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
9929 {
9930         s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
9931         s << "\tsType = " << value.sType << '\n';
9932         s << "\tpNext = " << value.pNext << '\n';
9933         s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
9934         s << "\tviewportCount = " << value.viewportCount << '\n';
9935         s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
9936         s << '}';
9937         return s;
9938 }
9939
9940 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
9941 {
9942         s << "VkSurfaceCapabilities2EXT = {\n";
9943         s << "\tsType = " << value.sType << '\n';
9944         s << "\tpNext = " << value.pNext << '\n';
9945         s << "\tminImageCount = " << value.minImageCount << '\n';
9946         s << "\tmaxImageCount = " << value.maxImageCount << '\n';
9947         s << "\tcurrentExtent = " << value.currentExtent << '\n';
9948         s << "\tminImageExtent = " << value.minImageExtent << '\n';
9949         s << "\tmaxImageExtent = " << value.maxImageExtent << '\n';
9950         s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
9951         s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
9952         s << "\tcurrentTransform = " << value.currentTransform << '\n';
9953         s << "\tsupportedCompositeAlpha = " << getCompositeAlphaFlagsKHRStr(value.supportedCompositeAlpha) << '\n';
9954         s << "\tsupportedUsageFlags = " << getImageUsageFlagsStr(value.supportedUsageFlags) << '\n';
9955         s << "\tsupportedSurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.supportedSurfaceCounters) << '\n';
9956         s << '}';
9957         return s;
9958 }
9959
9960 std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
9961 {
9962         s << "VkDisplayPowerInfoEXT = {\n";
9963         s << "\tsType = " << value.sType << '\n';
9964         s << "\tpNext = " << value.pNext << '\n';
9965         s << "\tpowerState = " << value.powerState << '\n';
9966         s << '}';
9967         return s;
9968 }
9969
9970 std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
9971 {
9972         s << "VkDeviceEventInfoEXT = {\n";
9973         s << "\tsType = " << value.sType << '\n';
9974         s << "\tpNext = " << value.pNext << '\n';
9975         s << "\tdeviceEvent = " << value.deviceEvent << '\n';
9976         s << '}';
9977         return s;
9978 }
9979
9980 std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
9981 {
9982         s << "VkDisplayEventInfoEXT = {\n";
9983         s << "\tsType = " << value.sType << '\n';
9984         s << "\tpNext = " << value.pNext << '\n';
9985         s << "\tdisplayEvent = " << value.displayEvent << '\n';
9986         s << '}';
9987         return s;
9988 }
9989
9990 std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
9991 {
9992         s << "VkSwapchainCounterCreateInfoEXT = {\n";
9993         s << "\tsType = " << value.sType << '\n';
9994         s << "\tpNext = " << value.pNext << '\n';
9995         s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
9996         s << '}';
9997         return s;
9998 }
9999
10000 std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
10001 {
10002         s << "VkRefreshCycleDurationGOOGLE = {\n";
10003         s << "\trefreshDuration = " << value.refreshDuration << '\n';
10004         s << '}';
10005         return s;
10006 }
10007
10008 std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
10009 {
10010         s << "VkPastPresentationTimingGOOGLE = {\n";
10011         s << "\tpresentID = " << value.presentID << '\n';
10012         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
10013         s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
10014         s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
10015         s << "\tpresentMargin = " << value.presentMargin << '\n';
10016         s << '}';
10017         return s;
10018 }
10019
10020 std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
10021 {
10022         s << "VkPresentTimeGOOGLE = {\n";
10023         s << "\tpresentID = " << value.presentID << '\n';
10024         s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
10025         s << '}';
10026         return s;
10027 }
10028
10029 std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
10030 {
10031         s << "VkPresentTimesInfoGOOGLE = {\n";
10032         s << "\tsType = " << value.sType << '\n';
10033         s << "\tpNext = " << value.pNext << '\n';
10034         s << "\tswapchainCount = " << value.swapchainCount << '\n';
10035         s << "\tpTimes = " << value.pTimes << '\n';
10036         s << '}';
10037         return s;
10038 }
10039
10040 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
10041 {
10042         s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
10043         s << "\tsType = " << value.sType << '\n';
10044         s << "\tpNext = " << value.pNext << '\n';
10045         s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
10046         s << '}';
10047         return s;
10048 }
10049
10050 std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
10051 {
10052         s << "VkViewportSwizzleNV = {\n";
10053         s << "\tx = " << value.x << '\n';
10054         s << "\ty = " << value.y << '\n';
10055         s << "\tz = " << value.z << '\n';
10056         s << "\tw = " << value.w << '\n';
10057         s << '}';
10058         return s;
10059 }
10060
10061 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
10062 {
10063         s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
10064         s << "\tsType = " << value.sType << '\n';
10065         s << "\tpNext = " << value.pNext << '\n';
10066         s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
10067         s << "\tviewportCount = " << value.viewportCount << '\n';
10068         s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
10069         s << '}';
10070         return s;
10071 }
10072
10073 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
10074 {
10075         s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
10076         s << "\tsType = " << value.sType << '\n';
10077         s << "\tpNext = " << value.pNext << '\n';
10078         s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
10079         s << '}';
10080         return s;
10081 }
10082
10083 std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
10084 {
10085         s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
10086         s << "\tsType = " << value.sType << '\n';
10087         s << "\tpNext = " << value.pNext << '\n';
10088         s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
10089         s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
10090         s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
10091         s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
10092         s << '}';
10093         return s;
10094 }
10095
10096 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
10097 {
10098         s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
10099         s << "\tsType = " << value.sType << '\n';
10100         s << "\tpNext = " << value.pNext << '\n';
10101         s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
10102         s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
10103         s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
10104         s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
10105         s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
10106         s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
10107         s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
10108         s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
10109         s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
10110         s << '}';
10111         return s;
10112 }
10113
10114 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
10115 {
10116         s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
10117         s << "\tsType = " << value.sType << '\n';
10118         s << "\tpNext = " << value.pNext << '\n';
10119         s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
10120         s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
10121         s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
10122         s << '}';
10123         return s;
10124 }
10125
10126 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
10127 {
10128         s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
10129         s << "\tsType = " << value.sType << '\n';
10130         s << "\tpNext = " << value.pNext << '\n';
10131         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10132         s << '}';
10133         return s;
10134 }
10135
10136 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
10137 {
10138         s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
10139         s << "\tsType = " << value.sType << '\n';
10140         s << "\tpNext = " << value.pNext << '\n';
10141         s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
10142         s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
10143         s << '}';
10144         return s;
10145 }
10146
10147 std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
10148 {
10149         s << "VkXYColorEXT = {\n";
10150         s << "\tx = " << value.x << '\n';
10151         s << "\ty = " << value.y << '\n';
10152         s << '}';
10153         return s;
10154 }
10155
10156 std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
10157 {
10158         s << "VkHdrMetadataEXT = {\n";
10159         s << "\tsType = " << value.sType << '\n';
10160         s << "\tpNext = " << value.pNext << '\n';
10161         s << "\tdisplayPrimaryRed = " << value.displayPrimaryRed << '\n';
10162         s << "\tdisplayPrimaryGreen = " << value.displayPrimaryGreen << '\n';
10163         s << "\tdisplayPrimaryBlue = " << value.displayPrimaryBlue << '\n';
10164         s << "\twhitePoint = " << value.whitePoint << '\n';
10165         s << "\tmaxLuminance = " << value.maxLuminance << '\n';
10166         s << "\tminLuminance = " << value.minLuminance << '\n';
10167         s << "\tmaxContentLightLevel = " << value.maxContentLightLevel << '\n';
10168         s << "\tmaxFrameAverageLightLevel = " << value.maxFrameAverageLightLevel << '\n';
10169         s << '}';
10170         return s;
10171 }
10172
10173 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
10174 {
10175         s << "VkDebugUtilsLabelEXT = {\n";
10176         s << "\tsType = " << value.sType << '\n';
10177         s << "\tpNext = " << value.pNext << '\n';
10178         s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
10179         s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
10180         s << '}';
10181         return s;
10182 }
10183
10184 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
10185 {
10186         s << "VkDebugUtilsObjectNameInfoEXT = {\n";
10187         s << "\tsType = " << value.sType << '\n';
10188         s << "\tpNext = " << value.pNext << '\n';
10189         s << "\tobjectType = " << value.objectType << '\n';
10190         s << "\tobjectHandle = " << value.objectHandle << '\n';
10191         s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
10192         s << '}';
10193         return s;
10194 }
10195
10196 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
10197 {
10198         s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
10199         s << "\tsType = " << value.sType << '\n';
10200         s << "\tpNext = " << value.pNext << '\n';
10201         s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
10202         s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
10203         s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
10204         s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
10205         s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
10206         s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
10207         s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
10208         s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
10209         s << "\tobjectCount = " << value.objectCount << '\n';
10210         s << "\tpObjects = " << value.pObjects << '\n';
10211         s << '}';
10212         return s;
10213 }
10214
10215 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
10216 {
10217         s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
10218         s << "\tsType = " << value.sType << '\n';
10219         s << "\tpNext = " << value.pNext << '\n';
10220         s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
10221         s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
10222         s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
10223         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
10224         s << "\tpUserData = " << value.pUserData << '\n';
10225         s << '}';
10226         return s;
10227 }
10228
10229 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
10230 {
10231         s << "VkDebugUtilsObjectTagInfoEXT = {\n";
10232         s << "\tsType = " << value.sType << '\n';
10233         s << "\tpNext = " << value.pNext << '\n';
10234         s << "\tobjectType = " << value.objectType << '\n';
10235         s << "\tobjectHandle = " << value.objectHandle << '\n';
10236         s << "\ttagName = " << value.tagName << '\n';
10237         s << "\ttagSize = " << value.tagSize << '\n';
10238         s << "\tpTag = " << value.pTag << '\n';
10239         s << '}';
10240         return s;
10241 }
10242
10243 std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
10244 {
10245         s << "VkSampleLocationEXT = {\n";
10246         s << "\tx = " << value.x << '\n';
10247         s << "\ty = " << value.y << '\n';
10248         s << '}';
10249         return s;
10250 }
10251
10252 std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
10253 {
10254         s << "VkSampleLocationsInfoEXT = {\n";
10255         s << "\tsType = " << value.sType << '\n';
10256         s << "\tpNext = " << value.pNext << '\n';
10257         s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
10258         s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
10259         s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
10260         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10261         s << '}';
10262         return s;
10263 }
10264
10265 std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
10266 {
10267         s << "VkAttachmentSampleLocationsEXT = {\n";
10268         s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
10269         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10270         s << '}';
10271         return s;
10272 }
10273
10274 std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
10275 {
10276         s << "VkSubpassSampleLocationsEXT = {\n";
10277         s << "\tsubpassIndex = " << value.subpassIndex << '\n';
10278         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10279         s << '}';
10280         return s;
10281 }
10282
10283 std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
10284 {
10285         s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
10286         s << "\tsType = " << value.sType << '\n';
10287         s << "\tpNext = " << value.pNext << '\n';
10288         s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
10289         s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
10290         s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
10291         s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
10292         s << '}';
10293         return s;
10294 }
10295
10296 std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
10297 {
10298         s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
10299         s << "\tsType = " << value.sType << '\n';
10300         s << "\tpNext = " << value.pNext << '\n';
10301         s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
10302         s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
10303         s << '}';
10304         return s;
10305 }
10306
10307 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
10308 {
10309         s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
10310         s << "\tsType = " << value.sType << '\n';
10311         s << "\tpNext = " << value.pNext << '\n';
10312         s << "\tsampleLocationSampleCounts = " << getSampleCountFlagsStr(value.sampleLocationSampleCounts) << '\n';
10313         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10314         s << "\tsampleLocationCoordinateRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.sampleLocationCoordinateRange), DE_ARRAY_END(value.sampleLocationCoordinateRange)) << '\n';
10315         s << "\tsampleLocationSubPixelBits = " << value.sampleLocationSubPixelBits << '\n';
10316         s << "\tvariableSampleLocations = " << value.variableSampleLocations << '\n';
10317         s << '}';
10318         return s;
10319 }
10320
10321 std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
10322 {
10323         s << "VkMultisamplePropertiesEXT = {\n";
10324         s << "\tsType = " << value.sType << '\n';
10325         s << "\tpNext = " << value.pNext << '\n';
10326         s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
10327         s << '}';
10328         return s;
10329 }
10330
10331 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
10332 {
10333         s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
10334         s << "\tsType = " << value.sType << '\n';
10335         s << "\tpNext = " << value.pNext << '\n';
10336         s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
10337         s << '}';
10338         return s;
10339 }
10340
10341 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
10342 {
10343         s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
10344         s << "\tsType = " << value.sType << '\n';
10345         s << "\tpNext = " << value.pNext << '\n';
10346         s << "\tadvancedBlendMaxColorAttachments = " << value.advancedBlendMaxColorAttachments << '\n';
10347         s << "\tadvancedBlendIndependentBlend = " << value.advancedBlendIndependentBlend << '\n';
10348         s << "\tadvancedBlendNonPremultipliedSrcColor = " << value.advancedBlendNonPremultipliedSrcColor << '\n';
10349         s << "\tadvancedBlendNonPremultipliedDstColor = " << value.advancedBlendNonPremultipliedDstColor << '\n';
10350         s << "\tadvancedBlendCorrelatedOverlap = " << value.advancedBlendCorrelatedOverlap << '\n';
10351         s << "\tadvancedBlendAllOperations = " << value.advancedBlendAllOperations << '\n';
10352         s << '}';
10353         return s;
10354 }
10355
10356 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
10357 {
10358         s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
10359         s << "\tsType = " << value.sType << '\n';
10360         s << "\tpNext = " << value.pNext << '\n';
10361         s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
10362         s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
10363         s << "\tblendOverlap = " << value.blendOverlap << '\n';
10364         s << '}';
10365         return s;
10366 }
10367
10368 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
10369 {
10370         s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
10371         s << "\tsType = " << value.sType << '\n';
10372         s << "\tpNext = " << value.pNext << '\n';
10373         s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
10374         s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
10375         s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
10376         s << '}';
10377         return s;
10378 }
10379
10380 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
10381 {
10382         s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
10383         s << "\tsType = " << value.sType << '\n';
10384         s << "\tpNext = " << value.pNext << '\n';
10385         s << "\tflags = " << getPipelineCoverageModulationStateCreateFlagsNVStr(value.flags) << '\n';
10386         s << "\tcoverageModulationMode = " << value.coverageModulationMode << '\n';
10387         s << "\tcoverageModulationTableEnable = " << value.coverageModulationTableEnable << '\n';
10388         s << "\tcoverageModulationTableCount = " << value.coverageModulationTableCount << '\n';
10389         s << "\tpCoverageModulationTable = " << value.pCoverageModulationTable << '\n';
10390         s << '}';
10391         return s;
10392 }
10393
10394 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
10395 {
10396         s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
10397         s << "\tsType = " << value.sType << '\n';
10398         s << "\tpNext = " << value.pNext << '\n';
10399         s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
10400         s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
10401         s << '}';
10402         return s;
10403 }
10404
10405 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
10406 {
10407         s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
10408         s << "\tsType = " << value.sType << '\n';
10409         s << "\tpNext = " << value.pNext << '\n';
10410         s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
10411         s << '}';
10412         return s;
10413 }
10414
10415 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
10416 {
10417         s << "VkDrmFormatModifierPropertiesEXT = {\n";
10418         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10419         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10420         s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
10421         s << '}';
10422         return s;
10423 }
10424
10425 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
10426 {
10427         s << "VkDrmFormatModifierPropertiesListEXT = {\n";
10428         s << "\tsType = " << value.sType << '\n';
10429         s << "\tpNext = " << value.pNext << '\n';
10430         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10431         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10432         s << '}';
10433         return s;
10434 }
10435
10436 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
10437 {
10438         s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
10439         s << "\tsType = " << value.sType << '\n';
10440         s << "\tpNext = " << value.pNext << '\n';
10441         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10442         s << "\tsharingMode = " << value.sharingMode << '\n';
10443         s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
10444         s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
10445         s << '}';
10446         return s;
10447 }
10448
10449 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
10450 {
10451         s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
10452         s << "\tsType = " << value.sType << '\n';
10453         s << "\tpNext = " << value.pNext << '\n';
10454         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10455         s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
10456         s << '}';
10457         return s;
10458 }
10459
10460 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
10461 {
10462         s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
10463         s << "\tsType = " << value.sType << '\n';
10464         s << "\tpNext = " << value.pNext << '\n';
10465         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10466         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10467         s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
10468         s << '}';
10469         return s;
10470 }
10471
10472 std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
10473 {
10474         s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
10475         s << "\tsType = " << value.sType << '\n';
10476         s << "\tpNext = " << value.pNext << '\n';
10477         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10478         s << '}';
10479         return s;
10480 }
10481
10482 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
10483 {
10484         s << "VkDrmFormatModifierProperties2EXT = {\n";
10485         s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
10486         s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
10487         s << "\tdrmFormatModifierTilingFeatures = " << value.drmFormatModifierTilingFeatures << '\n';
10488         s << '}';
10489         return s;
10490 }
10491
10492 std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
10493 {
10494         s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
10495         s << "\tsType = " << value.sType << '\n';
10496         s << "\tpNext = " << value.pNext << '\n';
10497         s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
10498         s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
10499         s << '}';
10500         return s;
10501 }
10502
10503 std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
10504 {
10505         s << "VkValidationCacheCreateInfoEXT = {\n";
10506         s << "\tsType = " << value.sType << '\n';
10507         s << "\tpNext = " << value.pNext << '\n';
10508         s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
10509         s << "\tinitialDataSize = " << value.initialDataSize << '\n';
10510         s << "\tpInitialData = " << value.pInitialData << '\n';
10511         s << '}';
10512         return s;
10513 }
10514
10515 std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
10516 {
10517         s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
10518         s << "\tsType = " << value.sType << '\n';
10519         s << "\tpNext = " << value.pNext << '\n';
10520         s << "\tvalidationCache = " << value.validationCache << '\n';
10521         s << '}';
10522         return s;
10523 }
10524
10525 std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
10526 {
10527         s << "VkShadingRatePaletteNV = {\n";
10528         s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
10529         s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
10530         s << '}';
10531         return s;
10532 }
10533
10534 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
10535 {
10536         s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
10537         s << "\tsType = " << value.sType << '\n';
10538         s << "\tpNext = " << value.pNext << '\n';
10539         s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
10540         s << "\tviewportCount = " << value.viewportCount << '\n';
10541         s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
10542         s << '}';
10543         return s;
10544 }
10545
10546 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
10547 {
10548         s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
10549         s << "\tsType = " << value.sType << '\n';
10550         s << "\tpNext = " << value.pNext << '\n';
10551         s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
10552         s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
10553         s << '}';
10554         return s;
10555 }
10556
10557 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
10558 {
10559         s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
10560         s << "\tsType = " << value.sType << '\n';
10561         s << "\tpNext = " << value.pNext << '\n';
10562         s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
10563         s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
10564         s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
10565         s << '}';
10566         return s;
10567 }
10568
10569 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
10570 {
10571         s << "VkCoarseSampleLocationNV = {\n";
10572         s << "\tpixelX = " << value.pixelX << '\n';
10573         s << "\tpixelY = " << value.pixelY << '\n';
10574         s << "\tsample = " << value.sample << '\n';
10575         s << '}';
10576         return s;
10577 }
10578
10579 std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
10580 {
10581         s << "VkCoarseSampleOrderCustomNV = {\n";
10582         s << "\tshadingRate = " << value.shadingRate << '\n';
10583         s << "\tsampleCount = " << value.sampleCount << '\n';
10584         s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
10585         s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
10586         s << '}';
10587         return s;
10588 }
10589
10590 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
10591 {
10592         s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
10593         s << "\tsType = " << value.sType << '\n';
10594         s << "\tpNext = " << value.pNext << '\n';
10595         s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
10596         s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
10597         s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
10598         s << '}';
10599         return s;
10600 }
10601
10602 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
10603 {
10604         s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
10605         s << "\tsType = " << value.sType << '\n';
10606         s << "\tpNext = " << value.pNext << '\n';
10607         s << "\ttype = " << value.type << '\n';
10608         s << "\tgeneralShader = " << value.generalShader << '\n';
10609         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
10610         s << "\tanyHitShader = " << value.anyHitShader << '\n';
10611         s << "\tintersectionShader = " << value.intersectionShader << '\n';
10612         s << '}';
10613         return s;
10614 }
10615
10616 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
10617 {
10618         s << "VkRayTracingPipelineCreateInfoNV = {\n";
10619         s << "\tsType = " << value.sType << '\n';
10620         s << "\tpNext = " << value.pNext << '\n';
10621         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
10622         s << "\tstageCount = " << value.stageCount << '\n';
10623         s << "\tpStages = " << value.pStages << '\n';
10624         s << "\tgroupCount = " << value.groupCount << '\n';
10625         s << "\tpGroups = " << value.pGroups << '\n';
10626         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10627         s << "\tlayout = " << value.layout << '\n';
10628         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
10629         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
10630         s << '}';
10631         return s;
10632 }
10633
10634 std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
10635 {
10636         s << "VkGeometryTrianglesNV = {\n";
10637         s << "\tsType = " << value.sType << '\n';
10638         s << "\tpNext = " << value.pNext << '\n';
10639         s << "\tvertexData = " << value.vertexData << '\n';
10640         s << "\tvertexOffset = " << value.vertexOffset << '\n';
10641         s << "\tvertexCount = " << value.vertexCount << '\n';
10642         s << "\tvertexStride = " << value.vertexStride << '\n';
10643         s << "\tvertexFormat = " << value.vertexFormat << '\n';
10644         s << "\tindexData = " << value.indexData << '\n';
10645         s << "\tindexOffset = " << value.indexOffset << '\n';
10646         s << "\tindexCount = " << value.indexCount << '\n';
10647         s << "\tindexType = " << value.indexType << '\n';
10648         s << "\ttransformData = " << value.transformData << '\n';
10649         s << "\ttransformOffset = " << value.transformOffset << '\n';
10650         s << '}';
10651         return s;
10652 }
10653
10654 std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
10655 {
10656         s << "VkGeometryAABBNV = {\n";
10657         s << "\tsType = " << value.sType << '\n';
10658         s << "\tpNext = " << value.pNext << '\n';
10659         s << "\taabbData = " << value.aabbData << '\n';
10660         s << "\tnumAABBs = " << value.numAABBs << '\n';
10661         s << "\tstride = " << value.stride << '\n';
10662         s << "\toffset = " << value.offset << '\n';
10663         s << '}';
10664         return s;
10665 }
10666
10667 std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
10668 {
10669         s << "VkGeometryDataNV = {\n";
10670         s << "\ttriangles = " << value.triangles << '\n';
10671         s << "\taabbs = " << value.aabbs << '\n';
10672         s << '}';
10673         return s;
10674 }
10675
10676 std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
10677 {
10678         s << "VkGeometryNV = {\n";
10679         s << "\tsType = " << value.sType << '\n';
10680         s << "\tpNext = " << value.pNext << '\n';
10681         s << "\tgeometryType = " << value.geometryType << '\n';
10682         s << "\tgeometry = " << value.geometry << '\n';
10683         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
10684         s << '}';
10685         return s;
10686 }
10687
10688 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
10689 {
10690         s << "VkAccelerationStructureInfoNV = {\n";
10691         s << "\tsType = " << value.sType << '\n';
10692         s << "\tpNext = " << value.pNext << '\n';
10693         s << "\ttype = " << value.type << '\n';
10694         s << "\tflags = " << getBuildAccelerationStructureFlagsNVStr(value.flags) << '\n';
10695         s << "\tinstanceCount = " << value.instanceCount << '\n';
10696         s << "\tgeometryCount = " << value.geometryCount << '\n';
10697         s << "\tpGeometries = " << value.pGeometries << '\n';
10698         s << '}';
10699         return s;
10700 }
10701
10702 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
10703 {
10704         s << "VkAccelerationStructureCreateInfoNV = {\n";
10705         s << "\tsType = " << value.sType << '\n';
10706         s << "\tpNext = " << value.pNext << '\n';
10707         s << "\tcompactedSize = " << value.compactedSize << '\n';
10708         s << "\tinfo = " << value.info << '\n';
10709         s << '}';
10710         return s;
10711 }
10712
10713 std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
10714 {
10715         s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
10716         s << "\tsType = " << value.sType << '\n';
10717         s << "\tpNext = " << value.pNext << '\n';
10718         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10719         s << "\tmemory = " << value.memory << '\n';
10720         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
10721         s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
10722         s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
10723         s << '}';
10724         return s;
10725 }
10726
10727 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
10728 {
10729         s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
10730         s << "\tsType = " << value.sType << '\n';
10731         s << "\tpNext = " << value.pNext << '\n';
10732         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
10733         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
10734         s << '}';
10735         return s;
10736 }
10737
10738 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
10739 {
10740         s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
10741         s << "\tsType = " << value.sType << '\n';
10742         s << "\tpNext = " << value.pNext << '\n';
10743         s << "\ttype = " << value.type << '\n';
10744         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
10745         s << '}';
10746         return s;
10747 }
10748
10749 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
10750 {
10751         s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
10752         s << "\tsType = " << value.sType << '\n';
10753         s << "\tpNext = " << value.pNext << '\n';
10754         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
10755         s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
10756         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
10757         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
10758         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
10759         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
10760         s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
10761         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
10762         s << '}';
10763         return s;
10764 }
10765
10766 std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
10767 {
10768         s << "VkTransformMatrixKHR = {\n";
10769         s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
10770         s << '}';
10771         return s;
10772 }
10773
10774 std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
10775 {
10776         s << "VkAabbPositionsKHR = {\n";
10777         s << "\tminX = " << value.minX << '\n';
10778         s << "\tminY = " << value.minY << '\n';
10779         s << "\tminZ = " << value.minZ << '\n';
10780         s << "\tmaxX = " << value.maxX << '\n';
10781         s << "\tmaxY = " << value.maxY << '\n';
10782         s << "\tmaxZ = " << value.maxZ << '\n';
10783         s << '}';
10784         return s;
10785 }
10786
10787 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
10788 {
10789         s << "VkAccelerationStructureInstanceKHR = {\n";
10790         s << "\ttransform = " << value.transform << '\n';
10791         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
10792         s << "\tmask = " << value.mask << '\n';
10793         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
10794         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
10795         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
10796         s << '}';
10797         return s;
10798 }
10799
10800 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
10801 {
10802         s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
10803         s << "\tsType = " << value.sType << '\n';
10804         s << "\tpNext = " << value.pNext << '\n';
10805         s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
10806         s << '}';
10807         return s;
10808 }
10809
10810 std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
10811 {
10812         s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
10813         s << "\tsType = " << value.sType << '\n';
10814         s << "\tpNext = " << value.pNext << '\n';
10815         s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
10816         s << '}';
10817         return s;
10818 }
10819
10820 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
10821 {
10822         s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
10823         s << "\tsType = " << value.sType << '\n';
10824         s << "\tpNext = " << value.pNext << '\n';
10825         s << "\timageViewType = " << value.imageViewType << '\n';
10826         s << '}';
10827         return s;
10828 }
10829
10830 std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
10831 {
10832         s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
10833         s << "\tsType = " << value.sType << '\n';
10834         s << "\tpNext = " << value.pNext << '\n';
10835         s << "\tfilterCubic = " << value.filterCubic << '\n';
10836         s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
10837         s << '}';
10838         return s;
10839 }
10840
10841 std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
10842 {
10843         s << "VkImportMemoryHostPointerInfoEXT = {\n";
10844         s << "\tsType = " << value.sType << '\n';
10845         s << "\tpNext = " << value.pNext << '\n';
10846         s << "\thandleType = " << value.handleType << '\n';
10847         s << "\tpHostPointer = " << value.pHostPointer << '\n';
10848         s << '}';
10849         return s;
10850 }
10851
10852 std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
10853 {
10854         s << "VkMemoryHostPointerPropertiesEXT = {\n";
10855         s << "\tsType = " << value.sType << '\n';
10856         s << "\tpNext = " << value.pNext << '\n';
10857         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
10858         s << '}';
10859         return s;
10860 }
10861
10862 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
10863 {
10864         s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
10865         s << "\tsType = " << value.sType << '\n';
10866         s << "\tpNext = " << value.pNext << '\n';
10867         s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
10868         s << '}';
10869         return s;
10870 }
10871
10872 std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
10873 {
10874         s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
10875         s << "\tsType = " << value.sType << '\n';
10876         s << "\tpNext = " << value.pNext << '\n';
10877         s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
10878         s << '}';
10879         return s;
10880 }
10881
10882 std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
10883 {
10884         s << "VkCalibratedTimestampInfoEXT = {\n";
10885         s << "\tsType = " << value.sType << '\n';
10886         s << "\tpNext = " << value.pNext << '\n';
10887         s << "\ttimeDomain = " << value.timeDomain << '\n';
10888         s << '}';
10889         return s;
10890 }
10891
10892 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
10893 {
10894         s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
10895         s << "\tsType = " << value.sType << '\n';
10896         s << "\tpNext = " << value.pNext << '\n';
10897         s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
10898         s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
10899         s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
10900         s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
10901         s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
10902         s << "\twavefrontSize = " << value.wavefrontSize << '\n';
10903         s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
10904         s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
10905         s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
10906         s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
10907         s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
10908         s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
10909         s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
10910         s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
10911         s << '}';
10912         return s;
10913 }
10914
10915 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
10916 {
10917         s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
10918         s << "\tsType = " << value.sType << '\n';
10919         s << "\tpNext = " << value.pNext << '\n';
10920         s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
10921         s << '}';
10922         return s;
10923 }
10924
10925 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
10926 {
10927         s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
10928         s << "\tsType = " << value.sType << '\n';
10929         s << "\tpNext = " << value.pNext << '\n';
10930         s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
10931         s << '}';
10932         return s;
10933 }
10934
10935 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
10936 {
10937         s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
10938         s << "\tbinding = " << value.binding << '\n';
10939         s << "\tdivisor = " << value.divisor << '\n';
10940         s << '}';
10941         return s;
10942 }
10943
10944 std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
10945 {
10946         s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
10947         s << "\tsType = " << value.sType << '\n';
10948         s << "\tpNext = " << value.pNext << '\n';
10949         s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
10950         s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
10951         s << '}';
10952         return s;
10953 }
10954
10955 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
10956 {
10957         s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
10958         s << "\tsType = " << value.sType << '\n';
10959         s << "\tpNext = " << value.pNext << '\n';
10960         s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
10961         s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
10962         s << '}';
10963         return s;
10964 }
10965
10966 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
10967 {
10968         s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
10969         s << "\tsType = " << value.sType << '\n';
10970         s << "\tpNext = " << value.pNext << '\n';
10971         s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
10972         s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
10973         s << '}';
10974         return s;
10975 }
10976
10977 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
10978 {
10979         s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
10980         s << "\tsType = " << value.sType << '\n';
10981         s << "\tpNext = " << value.pNext << '\n';
10982         s << "\ttaskShader = " << value.taskShader << '\n';
10983         s << "\tmeshShader = " << value.meshShader << '\n';
10984         s << '}';
10985         return s;
10986 }
10987
10988 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
10989 {
10990         s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
10991         s << "\tsType = " << value.sType << '\n';
10992         s << "\tpNext = " << value.pNext << '\n';
10993         s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
10994         s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
10995         s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
10996         s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
10997         s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
10998         s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
10999         s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
11000         s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
11001         s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
11002         s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
11003         s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
11004         s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
11005         s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
11006         s << '}';
11007         return s;
11008 }
11009
11010 std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
11011 {
11012         s << "VkDrawMeshTasksIndirectCommandNV = {\n";
11013         s << "\ttaskCount = " << value.taskCount << '\n';
11014         s << "\tfirstTask = " << value.firstTask << '\n';
11015         s << '}';
11016         return s;
11017 }
11018
11019 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
11020 {
11021         s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
11022         s << "\tsType = " << value.sType << '\n';
11023         s << "\tpNext = " << value.pNext << '\n';
11024         s << "\timageFootprint = " << value.imageFootprint << '\n';
11025         s << '}';
11026         return s;
11027 }
11028
11029 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
11030 {
11031         s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
11032         s << "\tsType = " << value.sType << '\n';
11033         s << "\tpNext = " << value.pNext << '\n';
11034         s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
11035         s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
11036         s << '}';
11037         return s;
11038 }
11039
11040 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
11041 {
11042         s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
11043         s << "\tsType = " << value.sType << '\n';
11044         s << "\tpNext = " << value.pNext << '\n';
11045         s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
11046         s << '}';
11047         return s;
11048 }
11049
11050 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
11051 {
11052         s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
11053         s << "\tsType = " << value.sType << '\n';
11054         s << "\tpNext = " << value.pNext << '\n';
11055         s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
11056         s << '}';
11057         return s;
11058 }
11059
11060 std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
11061 {
11062         s << "VkCheckpointDataNV = {\n";
11063         s << "\tsType = " << value.sType << '\n';
11064         s << "\tpNext = " << value.pNext << '\n';
11065         s << "\tstage = " << value.stage << '\n';
11066         s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
11067         s << '}';
11068         return s;
11069 }
11070
11071 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
11072 {
11073         s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
11074         s << "\tsType = " << value.sType << '\n';
11075         s << "\tpNext = " << value.pNext << '\n';
11076         s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
11077         s << '}';
11078         return s;
11079 }
11080
11081 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
11082 {
11083         s << "VkPerformanceValueDataINTEL = {\n";
11084         s << "\tvalue32 = " << value.value32 << '\n';
11085         s << "\tvalue64 = " << value.value64 << '\n';
11086         s << "\tvalueFloat = " << value.valueFloat << '\n';
11087         s << "\tvalueBool = " << value.valueBool << '\n';
11088         s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
11089         s << '}';
11090         return s;
11091 }
11092
11093 std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
11094 {
11095         s << "VkPerformanceValueINTEL = {\n";
11096         s << "\ttype = " << value.type << '\n';
11097         s << "\tdata = " << value.data << '\n';
11098         s << '}';
11099         return s;
11100 }
11101
11102 std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
11103 {
11104         s << "VkInitializePerformanceApiInfoINTEL = {\n";
11105         s << "\tsType = " << value.sType << '\n';
11106         s << "\tpNext = " << value.pNext << '\n';
11107         s << "\tpUserData = " << value.pUserData << '\n';
11108         s << '}';
11109         return s;
11110 }
11111
11112 std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
11113 {
11114         s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
11115         s << "\tsType = " << value.sType << '\n';
11116         s << "\tpNext = " << value.pNext << '\n';
11117         s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
11118         s << '}';
11119         return s;
11120 }
11121
11122 std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
11123 {
11124         s << "VkPerformanceMarkerInfoINTEL = {\n";
11125         s << "\tsType = " << value.sType << '\n';
11126         s << "\tpNext = " << value.pNext << '\n';
11127         s << "\tmarker = " << value.marker << '\n';
11128         s << '}';
11129         return s;
11130 }
11131
11132 std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
11133 {
11134         s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
11135         s << "\tsType = " << value.sType << '\n';
11136         s << "\tpNext = " << value.pNext << '\n';
11137         s << "\tmarker = " << value.marker << '\n';
11138         s << '}';
11139         return s;
11140 }
11141
11142 std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
11143 {
11144         s << "VkPerformanceOverrideInfoINTEL = {\n";
11145         s << "\tsType = " << value.sType << '\n';
11146         s << "\tpNext = " << value.pNext << '\n';
11147         s << "\ttype = " << value.type << '\n';
11148         s << "\tenable = " << value.enable << '\n';
11149         s << "\tparameter = " << value.parameter << '\n';
11150         s << '}';
11151         return s;
11152 }
11153
11154 std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
11155 {
11156         s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
11157         s << "\tsType = " << value.sType << '\n';
11158         s << "\tpNext = " << value.pNext << '\n';
11159         s << "\ttype = " << value.type << '\n';
11160         s << '}';
11161         return s;
11162 }
11163
11164 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
11165 {
11166         s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
11167         s << "\tsType = " << value.sType << '\n';
11168         s << "\tpNext = " << value.pNext << '\n';
11169         s << "\tpciDomain = " << value.pciDomain << '\n';
11170         s << "\tpciBus = " << value.pciBus << '\n';
11171         s << "\tpciDevice = " << value.pciDevice << '\n';
11172         s << "\tpciFunction = " << value.pciFunction << '\n';
11173         s << '}';
11174         return s;
11175 }
11176
11177 std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
11178 {
11179         s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
11180         s << "\tsType = " << value.sType << '\n';
11181         s << "\tpNext = " << value.pNext << '\n';
11182         s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
11183         s << '}';
11184         return s;
11185 }
11186
11187 std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
11188 {
11189         s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
11190         s << "\tsType = " << value.sType << '\n';
11191         s << "\tpNext = " << value.pNext << '\n';
11192         s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
11193         s << '}';
11194         return s;
11195 }
11196
11197 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
11198 {
11199         s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
11200         s << "\tsType = " << value.sType << '\n';
11201         s << "\tpNext = " << value.pNext << '\n';
11202         s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
11203         s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
11204         s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
11205         s << '}';
11206         return s;
11207 }
11208
11209 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
11210 {
11211         s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
11212         s << "\tsType = " << value.sType << '\n';
11213         s << "\tpNext = " << value.pNext << '\n';
11214         s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
11215         s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
11216         s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
11217         s << '}';
11218         return s;
11219 }
11220
11221 std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
11222 {
11223         s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
11224         s << "\tsType = " << value.sType << '\n';
11225         s << "\tpNext = " << value.pNext << '\n';
11226         s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
11227         s << '}';
11228         return s;
11229 }
11230
11231 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
11232 {
11233         s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
11234         s << "\tsType = " << value.sType << '\n';
11235         s << "\tpNext = " << value.pNext << '\n';
11236         s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
11237         s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
11238         s << '}';
11239         return s;
11240 }
11241
11242 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
11243 {
11244         s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
11245         s << "\tsType = " << value.sType << '\n';
11246         s << "\tpNext = " << value.pNext << '\n';
11247         s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
11248         s << '}';
11249         return s;
11250 }
11251
11252 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
11253 {
11254         s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
11255         s << "\tsType = " << value.sType << '\n';
11256         s << "\tpNext = " << value.pNext << '\n';
11257         s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
11258         s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
11259         s << '}';
11260         return s;
11261 }
11262
11263 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
11264 {
11265         s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
11266         s << "\tsType = " << value.sType << '\n';
11267         s << "\tpNext = " << value.pNext << '\n';
11268         s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
11269         s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
11270         s << '}';
11271         return s;
11272 }
11273
11274 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
11275 {
11276         s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
11277         s << "\tsType = " << value.sType << '\n';
11278         s << "\tpNext = " << value.pNext << '\n';
11279         s << "\tmemoryPriority = " << value.memoryPriority << '\n';
11280         s << '}';
11281         return s;
11282 }
11283
11284 std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
11285 {
11286         s << "VkMemoryPriorityAllocateInfoEXT = {\n";
11287         s << "\tsType = " << value.sType << '\n';
11288         s << "\tpNext = " << value.pNext << '\n';
11289         s << "\tpriority = " << value.priority << '\n';
11290         s << '}';
11291         return s;
11292 }
11293
11294 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
11295 {
11296         s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
11297         s << "\tsType = " << value.sType << '\n';
11298         s << "\tpNext = " << value.pNext << '\n';
11299         s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
11300         s << '}';
11301         return s;
11302 }
11303
11304 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
11305 {
11306         s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
11307         s << "\tsType = " << value.sType << '\n';
11308         s << "\tpNext = " << value.pNext << '\n';
11309         s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
11310         s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
11311         s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
11312         s << '}';
11313         return s;
11314 }
11315
11316 std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
11317 {
11318         s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
11319         s << "\tsType = " << value.sType << '\n';
11320         s << "\tpNext = " << value.pNext << '\n';
11321         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11322         s << '}';
11323         return s;
11324 }
11325
11326 std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
11327 {
11328         s << "VkValidationFeaturesEXT = {\n";
11329         s << "\tsType = " << value.sType << '\n';
11330         s << "\tpNext = " << value.pNext << '\n';
11331         s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
11332         s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
11333         s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
11334         s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
11335         s << '}';
11336         return s;
11337 }
11338
11339 std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
11340 {
11341         s << "VkCooperativeMatrixPropertiesNV = {\n";
11342         s << "\tsType = " << value.sType << '\n';
11343         s << "\tpNext = " << value.pNext << '\n';
11344         s << "\tMSize = " << value.MSize << '\n';
11345         s << "\tNSize = " << value.NSize << '\n';
11346         s << "\tKSize = " << value.KSize << '\n';
11347         s << "\tAType = " << value.AType << '\n';
11348         s << "\tBType = " << value.BType << '\n';
11349         s << "\tCType = " << value.CType << '\n';
11350         s << "\tDType = " << value.DType << '\n';
11351         s << "\tscope = " << value.scope << '\n';
11352         s << '}';
11353         return s;
11354 }
11355
11356 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
11357 {
11358         s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
11359         s << "\tsType = " << value.sType << '\n';
11360         s << "\tpNext = " << value.pNext << '\n';
11361         s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
11362         s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
11363         s << '}';
11364         return s;
11365 }
11366
11367 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
11368 {
11369         s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
11370         s << "\tsType = " << value.sType << '\n';
11371         s << "\tpNext = " << value.pNext << '\n';
11372         s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
11373         s << '}';
11374         return s;
11375 }
11376
11377 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
11378 {
11379         s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
11380         s << "\tsType = " << value.sType << '\n';
11381         s << "\tpNext = " << value.pNext << '\n';
11382         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11383         s << '}';
11384         return s;
11385 }
11386
11387 std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
11388 {
11389         s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
11390         s << "\tsType = " << value.sType << '\n';
11391         s << "\tpNext = " << value.pNext << '\n';
11392         s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
11393         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11394         s << '}';
11395         return s;
11396 }
11397
11398 std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
11399 {
11400         s << "VkFramebufferMixedSamplesCombinationNV = {\n";
11401         s << "\tsType = " << value.sType << '\n';
11402         s << "\tpNext = " << value.pNext << '\n';
11403         s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
11404         s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
11405         s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
11406         s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
11407         s << '}';
11408         return s;
11409 }
11410
11411 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
11412 {
11413         s << "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT = {\n";
11414         s << "\tsType = " << value.sType << '\n';
11415         s << "\tpNext = " << value.pNext << '\n';
11416         s << "\tfragmentShaderSampleInterlock = " << value.fragmentShaderSampleInterlock << '\n';
11417         s << "\tfragmentShaderPixelInterlock = " << value.fragmentShaderPixelInterlock << '\n';
11418         s << "\tfragmentShaderShadingRateInterlock = " << value.fragmentShaderShadingRateInterlock << '\n';
11419         s << '}';
11420         return s;
11421 }
11422
11423 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
11424 {
11425         s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
11426         s << "\tsType = " << value.sType << '\n';
11427         s << "\tpNext = " << value.pNext << '\n';
11428         s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
11429         s << '}';
11430         return s;
11431 }
11432
11433 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
11434 {
11435         s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
11436         s << "\tsType = " << value.sType << '\n';
11437         s << "\tpNext = " << value.pNext << '\n';
11438         s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
11439         s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
11440         s << '}';
11441         return s;
11442 }
11443
11444 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
11445 {
11446         s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
11447         s << "\tsType = " << value.sType << '\n';
11448         s << "\tpNext = " << value.pNext << '\n';
11449         s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
11450         s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
11451         s << '}';
11452         return s;
11453 }
11454
11455 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
11456 {
11457         s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
11458         s << "\tsType = " << value.sType << '\n';
11459         s << "\tpNext = " << value.pNext << '\n';
11460         s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
11461         s << '}';
11462         return s;
11463 }
11464
11465 std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
11466 {
11467         s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
11468         s << "\tsType = " << value.sType << '\n';
11469         s << "\tpNext = " << value.pNext << '\n';
11470         s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
11471         s << '}';
11472         return s;
11473 }
11474
11475 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
11476 {
11477         s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
11478         s << "\tsType = " << value.sType << '\n';
11479         s << "\tpNext = " << value.pNext << '\n';
11480         s << "\trectangularLines = " << value.rectangularLines << '\n';
11481         s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
11482         s << "\tsmoothLines = " << value.smoothLines << '\n';
11483         s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
11484         s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
11485         s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
11486         s << '}';
11487         return s;
11488 }
11489
11490 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
11491 {
11492         s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
11493         s << "\tsType = " << value.sType << '\n';
11494         s << "\tpNext = " << value.pNext << '\n';
11495         s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
11496         s << '}';
11497         return s;
11498 }
11499
11500 std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
11501 {
11502         s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
11503         s << "\tsType = " << value.sType << '\n';
11504         s << "\tpNext = " << value.pNext << '\n';
11505         s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
11506         s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
11507         s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
11508         s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
11509         s << '}';
11510         return s;
11511 }
11512
11513 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
11514 {
11515         s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
11516         s << "\tsType = " << value.sType << '\n';
11517         s << "\tpNext = " << value.pNext << '\n';
11518         s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
11519         s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
11520         s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
11521         s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
11522         s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
11523         s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
11524         s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
11525         s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
11526         s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
11527         s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
11528         s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
11529         s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
11530         s << '}';
11531         return s;
11532 }
11533
11534 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
11535 {
11536         s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
11537         s << "\tsType = " << value.sType << '\n';
11538         s << "\tpNext = " << value.pNext << '\n';
11539         s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
11540         s << '}';
11541         return s;
11542 }
11543
11544 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
11545 {
11546         s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
11547         s << "\tsType = " << value.sType << '\n';
11548         s << "\tpNext = " << value.pNext << '\n';
11549         s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
11550         s << '}';
11551         return s;
11552 }
11553
11554 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
11555 {
11556         s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
11557         s << "\tsType = " << value.sType << '\n';
11558         s << "\tpNext = " << value.pNext << '\n';
11559         s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
11560         s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
11561         s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
11562         s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
11563         s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
11564         s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
11565         s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
11566         s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
11567         s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
11568         s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
11569         s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
11570         s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
11571         s << '}';
11572         return s;
11573 }
11574
11575 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
11576 {
11577         s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
11578         s << "\tsType = " << value.sType << '\n';
11579         s << "\tpNext = " << value.pNext << '\n';
11580         s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
11581         s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
11582         s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
11583         s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
11584         s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
11585         s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
11586         s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
11587         s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
11588         s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
11589         s << '}';
11590         return s;
11591 }
11592
11593 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
11594 {
11595         s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
11596         s << "\tsType = " << value.sType << '\n';
11597         s << "\tpNext = " << value.pNext << '\n';
11598         s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
11599         s << '}';
11600         return s;
11601 }
11602
11603 std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
11604 {
11605         s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
11606         s << "\tsType = " << value.sType << '\n';
11607         s << "\tpNext = " << value.pNext << '\n';
11608         s << "\tstageCount = " << value.stageCount << '\n';
11609         s << "\tpStages = " << value.pStages << '\n';
11610         s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
11611         s << "\tpTessellationState = " << value.pTessellationState << '\n';
11612         s << '}';
11613         return s;
11614 }
11615
11616 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
11617 {
11618         s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
11619         s << "\tsType = " << value.sType << '\n';
11620         s << "\tpNext = " << value.pNext << '\n';
11621         s << "\tgroupCount = " << value.groupCount << '\n';
11622         s << "\tpGroups = " << value.pGroups << '\n';
11623         s << "\tpipelineCount = " << value.pipelineCount << '\n';
11624         s << "\tpPipelines = " << value.pPipelines << '\n';
11625         s << '}';
11626         return s;
11627 }
11628
11629 std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
11630 {
11631         s << "VkBindShaderGroupIndirectCommandNV = {\n";
11632         s << "\tgroupIndex = " << value.groupIndex << '\n';
11633         s << '}';
11634         return s;
11635 }
11636
11637 std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
11638 {
11639         s << "VkBindIndexBufferIndirectCommandNV = {\n";
11640         s << "\tbufferAddress = " << value.bufferAddress << '\n';
11641         s << "\tsize = " << value.size << '\n';
11642         s << "\tindexType = " << value.indexType << '\n';
11643         s << '}';
11644         return s;
11645 }
11646
11647 std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
11648 {
11649         s << "VkBindVertexBufferIndirectCommandNV = {\n";
11650         s << "\tbufferAddress = " << value.bufferAddress << '\n';
11651         s << "\tsize = " << value.size << '\n';
11652         s << "\tstride = " << value.stride << '\n';
11653         s << '}';
11654         return s;
11655 }
11656
11657 std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
11658 {
11659         s << "VkSetStateFlagsIndirectCommandNV = {\n";
11660         s << "\tdata = " << value.data << '\n';
11661         s << '}';
11662         return s;
11663 }
11664
11665 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
11666 {
11667         s << "VkIndirectCommandsStreamNV = {\n";
11668         s << "\tbuffer = " << value.buffer << '\n';
11669         s << "\toffset = " << value.offset << '\n';
11670         s << '}';
11671         return s;
11672 }
11673
11674 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
11675 {
11676         s << "VkIndirectCommandsLayoutTokenNV = {\n";
11677         s << "\tsType = " << value.sType << '\n';
11678         s << "\tpNext = " << value.pNext << '\n';
11679         s << "\ttokenType = " << value.tokenType << '\n';
11680         s << "\tstream = " << value.stream << '\n';
11681         s << "\toffset = " << value.offset << '\n';
11682         s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
11683         s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
11684         s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
11685         s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
11686         s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
11687         s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
11688         s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
11689         s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
11690         s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
11691         s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
11692         s << '}';
11693         return s;
11694 }
11695
11696 std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
11697 {
11698         s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
11699         s << "\tsType = " << value.sType << '\n';
11700         s << "\tpNext = " << value.pNext << '\n';
11701         s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
11702         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11703         s << "\ttokenCount = " << value.tokenCount << '\n';
11704         s << "\tpTokens = " << value.pTokens << '\n';
11705         s << "\tstreamCount = " << value.streamCount << '\n';
11706         s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
11707         s << '}';
11708         return s;
11709 }
11710
11711 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
11712 {
11713         s << "VkGeneratedCommandsInfoNV = {\n";
11714         s << "\tsType = " << value.sType << '\n';
11715         s << "\tpNext = " << value.pNext << '\n';
11716         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11717         s << "\tpipeline = " << value.pipeline << '\n';
11718         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
11719         s << "\tstreamCount = " << value.streamCount << '\n';
11720         s << "\tpStreams = " << value.pStreams << '\n';
11721         s << "\tsequencesCount = " << value.sequencesCount << '\n';
11722         s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
11723         s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
11724         s << "\tpreprocessSize = " << value.preprocessSize << '\n';
11725         s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
11726         s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
11727         s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
11728         s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
11729         s << '}';
11730         return s;
11731 }
11732
11733 std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
11734 {
11735         s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
11736         s << "\tsType = " << value.sType << '\n';
11737         s << "\tpNext = " << value.pNext << '\n';
11738         s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
11739         s << "\tpipeline = " << value.pipeline << '\n';
11740         s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
11741         s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
11742         s << '}';
11743         return s;
11744 }
11745
11746 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
11747 {
11748         s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
11749         s << "\tsType = " << value.sType << '\n';
11750         s << "\tpNext = " << value.pNext << '\n';
11751         s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
11752         s << '}';
11753         return s;
11754 }
11755
11756 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
11757 {
11758         s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
11759         s << "\tsType = " << value.sType << '\n';
11760         s << "\tpNext = " << value.pNext << '\n';
11761         s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
11762         s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
11763         s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
11764         s << '}';
11765         return s;
11766 }
11767
11768 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
11769 {
11770         s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
11771         s << "\tsType = " << value.sType << '\n';
11772         s << "\tpNext = " << value.pNext << '\n';
11773         s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
11774         s << '}';
11775         return s;
11776 }
11777
11778 std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
11779 {
11780         s << "VkRenderPassTransformBeginInfoQCOM = {\n";
11781         s << "\tsType = " << value.sType << '\n';
11782         s << "\tpNext = " << value.pNext << '\n';
11783         s << "\ttransform = " << value.transform << '\n';
11784         s << '}';
11785         return s;
11786 }
11787
11788 std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
11789 {
11790         s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
11791         s << "\tsType = " << value.sType << '\n';
11792         s << "\tpNext = " << value.pNext << '\n';
11793         s << "\ttransform = " << value.transform << '\n';
11794         s << "\trenderArea = " << value.renderArea << '\n';
11795         s << '}';
11796         return s;
11797 }
11798
11799 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
11800 {
11801         s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
11802         s << "\tsType = " << value.sType << '\n';
11803         s << "\tpNext = " << value.pNext << '\n';
11804         s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
11805         s << '}';
11806         return s;
11807 }
11808
11809 std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
11810 {
11811         s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
11812         s << "\tsType = " << value.sType << '\n';
11813         s << "\tpNext = " << value.pNext << '\n';
11814         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
11815         s << "\ttype = " << value.type << '\n';
11816         s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
11817         s << "\tsize = " << value.size << '\n';
11818         s << "\tobjectType = " << value.objectType << '\n';
11819         s << "\tobjectHandle = " << value.objectHandle << '\n';
11820         s << "\theapIndex = " << value.heapIndex << '\n';
11821         s << '}';
11822         return s;
11823 }
11824
11825 std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
11826 {
11827         s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
11828         s << "\tsType = " << value.sType << '\n';
11829         s << "\tpNext = " << value.pNext << '\n';
11830         s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
11831         s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
11832         s << "\tpUserData = " << value.pUserData << '\n';
11833         s << '}';
11834         return s;
11835 }
11836
11837 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
11838 {
11839         s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
11840         s << "\tsType = " << value.sType << '\n';
11841         s << "\tpNext = " << value.pNext << '\n';
11842         s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
11843         s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
11844         s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
11845         s << '}';
11846         return s;
11847 }
11848
11849 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
11850 {
11851         s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
11852         s << "\tsType = " << value.sType << '\n';
11853         s << "\tpNext = " << value.pNext << '\n';
11854         s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
11855         s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
11856         s << '}';
11857         return s;
11858 }
11859
11860 std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
11861 {
11862         s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
11863         s << "\tsType = " << value.sType << '\n';
11864         s << "\tpNext = " << value.pNext << '\n';
11865         s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
11866         s << "\tformat = " << value.format << '\n';
11867         s << '}';
11868         return s;
11869 }
11870
11871 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
11872 {
11873         s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
11874         s << "\tsType = " << value.sType << '\n';
11875         s << "\tpNext = " << value.pNext << '\n';
11876         s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
11877         s << '}';
11878         return s;
11879 }
11880
11881 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
11882 {
11883         s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
11884         s << "\tsType = " << value.sType << '\n';
11885         s << "\tpNext = " << value.pNext << '\n';
11886         s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
11887         s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
11888         s << '}';
11889         return s;
11890 }
11891
11892 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
11893 {
11894         s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
11895         s << "\tsType = " << value.sType << '\n';
11896         s << "\tpNext = " << value.pNext << '\n';
11897         s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
11898         s << '}';
11899         return s;
11900 }
11901
11902 std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
11903 {
11904         s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
11905         s << "\tsType = " << value.sType << '\n';
11906         s << "\tpNext = " << value.pNext << '\n';
11907         s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
11908         s << '}';
11909         return s;
11910 }
11911
11912 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
11913 {
11914         s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
11915         s << "\tsType = " << value.sType << '\n';
11916         s << "\tpNext = " << value.pNext << '\n';
11917         s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
11918         s << '}';
11919         return s;
11920 }
11921
11922 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
11923 {
11924         s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
11925         s << "\tsType = " << value.sType << '\n';
11926         s << "\tpNext = " << value.pNext << '\n';
11927         s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
11928         s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
11929         s << '}';
11930         return s;
11931 }
11932
11933 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
11934 {
11935         s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
11936         s << "\tsType = " << value.sType << '\n';
11937         s << "\tpNext = " << value.pNext << '\n';
11938         s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
11939         s << '}';
11940         return s;
11941 }
11942
11943 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
11944 {
11945         s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
11946         s << "\tsType = " << value.sType << '\n';
11947         s << "\tpNext = " << value.pNext << '\n';
11948         s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
11949         s << '}';
11950         return s;
11951 }
11952
11953 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
11954 {
11955         s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
11956         s << "\tsType = " << value.sType << '\n';
11957         s << "\tpNext = " << value.pNext << '\n';
11958         s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
11959         s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
11960         s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
11961         s << '}';
11962         return s;
11963 }
11964
11965 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
11966 {
11967         s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
11968         s << "\tsType = " << value.sType << '\n';
11969         s << "\tpNext = " << value.pNext << '\n';
11970         s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
11971         s << '}';
11972         return s;
11973 }
11974
11975 std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
11976 {
11977         s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
11978         s << "\tsType = " << value.sType << '\n';
11979         s << "\tpNext = " << value.pNext << '\n';
11980         s << "\tshadingRateType = " << value.shadingRateType << '\n';
11981         s << "\tshadingRate = " << value.shadingRate << '\n';
11982         s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
11983         s << '}';
11984         return s;
11985 }
11986
11987 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
11988 {
11989         s << "VkDeviceOrHostAddressConstKHR = {\n";
11990         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
11991         s << "\thostAddress = " << value.hostAddress << '\n';
11992         s << '}';
11993         return s;
11994 }
11995
11996 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
11997 {
11998         s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
11999         s << "\tsType = " << value.sType << '\n';
12000         s << "\tpNext = " << value.pNext << '\n';
12001         s << "\tvertexData = " << value.vertexData << '\n';
12002         s << '}';
12003         return s;
12004 }
12005
12006 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
12007 {
12008         s << "VkAccelerationStructureMotionInfoNV = {\n";
12009         s << "\tsType = " << value.sType << '\n';
12010         s << "\tpNext = " << value.pNext << '\n';
12011         s << "\tmaxInstances = " << value.maxInstances << '\n';
12012         s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
12013         s << '}';
12014         return s;
12015 }
12016
12017 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
12018 {
12019         s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
12020         s << "\ttransformT0 = " << value.transformT0 << '\n';
12021         s << "\ttransformT1 = " << value.transformT1 << '\n';
12022         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
12023         s << "\tmask = " << value.mask << '\n';
12024         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
12025         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
12026         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
12027         s << '}';
12028         return s;
12029 }
12030
12031 std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
12032 {
12033         s << "VkSRTDataNV = {\n";
12034         s << "\tsx = " << value.sx << '\n';
12035         s << "\ta = " << value.a << '\n';
12036         s << "\tb = " << value.b << '\n';
12037         s << "\tpvx = " << value.pvx << '\n';
12038         s << "\tsy = " << value.sy << '\n';
12039         s << "\tc = " << value.c << '\n';
12040         s << "\tpvy = " << value.pvy << '\n';
12041         s << "\tsz = " << value.sz << '\n';
12042         s << "\tpvz = " << value.pvz << '\n';
12043         s << "\tqx = " << value.qx << '\n';
12044         s << "\tqy = " << value.qy << '\n';
12045         s << "\tqz = " << value.qz << '\n';
12046         s << "\tqw = " << value.qw << '\n';
12047         s << "\ttx = " << value.tx << '\n';
12048         s << "\tty = " << value.ty << '\n';
12049         s << "\ttz = " << value.tz << '\n';
12050         s << '}';
12051         return s;
12052 }
12053
12054 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
12055 {
12056         s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
12057         s << "\ttransformT0 = " << value.transformT0 << '\n';
12058         s << "\ttransformT1 = " << value.transformT1 << '\n';
12059         s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
12060         s << "\tmask = " << value.mask << '\n';
12061         s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
12062         s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
12063         s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
12064         s << '}';
12065         return s;
12066 }
12067
12068 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
12069 {
12070         s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
12071         s << "\tstaticInstance = " << value.staticInstance << '\n';
12072         s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
12073         s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
12074         s << '}';
12075         return s;
12076 }
12077
12078 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
12079 {
12080         s << "VkAccelerationStructureMotionInstanceNV = {\n";
12081         s << "\ttype = " << value.type << '\n';
12082         s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
12083         s << "\tdata = " << value.data << '\n';
12084         s << '}';
12085         return s;
12086 }
12087
12088 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
12089 {
12090         s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
12091         s << "\tsType = " << value.sType << '\n';
12092         s << "\tpNext = " << value.pNext << '\n';
12093         s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
12094         s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
12095         s << '}';
12096         return s;
12097 }
12098
12099 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
12100 {
12101         s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
12102         s << "\tsType = " << value.sType << '\n';
12103         s << "\tpNext = " << value.pNext << '\n';
12104         s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
12105         s << '}';
12106         return s;
12107 }
12108
12109 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
12110 {
12111         s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
12112         s << "\tsType = " << value.sType << '\n';
12113         s << "\tpNext = " << value.pNext << '\n';
12114         s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
12115         s << '}';
12116         return s;
12117 }
12118
12119 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
12120 {
12121         s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
12122         s << "\tsType = " << value.sType << '\n';
12123         s << "\tpNext = " << value.pNext << '\n';
12124         s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
12125         s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
12126         s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
12127         s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
12128         s << '}';
12129         return s;
12130 }
12131
12132 std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
12133 {
12134         s << "VkCopyCommandTransformInfoQCOM = {\n";
12135         s << "\tsType = " << value.sType << '\n';
12136         s << "\tpNext = " << value.pNext << '\n';
12137         s << "\ttransform = " << value.transform << '\n';
12138         s << '}';
12139         return s;
12140 }
12141
12142 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
12143 {
12144         s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
12145         s << "\tsType = " << value.sType << '\n';
12146         s << "\tpNext = " << value.pNext << '\n';
12147         s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
12148         s << '}';
12149         return s;
12150 }
12151
12152 std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
12153 {
12154         s << "VkImageCompressionControlEXT = {\n";
12155         s << "\tsType = " << value.sType << '\n';
12156         s << "\tpNext = " << value.pNext << '\n';
12157         s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
12158         s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
12159         s << "\tpFixedRateFlags = " << value.pFixedRateFlags << '\n';
12160         s << '}';
12161         return s;
12162 }
12163
12164 std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
12165 {
12166         s << "VkSubresourceLayout2EXT = {\n";
12167         s << "\tsType = " << value.sType << '\n';
12168         s << "\tpNext = " << value.pNext << '\n';
12169         s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
12170         s << '}';
12171         return s;
12172 }
12173
12174 std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
12175 {
12176         s << "VkImageSubresource2EXT = {\n";
12177         s << "\tsType = " << value.sType << '\n';
12178         s << "\tpNext = " << value.pNext << '\n';
12179         s << "\timageSubresource = " << value.imageSubresource << '\n';
12180         s << '}';
12181         return s;
12182 }
12183
12184 std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
12185 {
12186         s << "VkImageCompressionPropertiesEXT = {\n";
12187         s << "\tsType = " << value.sType << '\n';
12188         s << "\tpNext = " << value.pNext << '\n';
12189         s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
12190         s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
12191         s << '}';
12192         return s;
12193 }
12194
12195 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
12196 {
12197         s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
12198         s << "\tsType = " << value.sType << '\n';
12199         s << "\tpNext = " << value.pNext << '\n';
12200         s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
12201         s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
12202         s << '}';
12203         return s;
12204 }
12205
12206 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value)
12207 {
12208         s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = {\n";
12209         s << "\tsType = " << value.sType << '\n';
12210         s << "\tpNext = " << value.pNext << '\n';
12211         s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
12212         s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
12213         s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
12214         s << '}';
12215         return s;
12216 }
12217
12218 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
12219 {
12220         s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
12221         s << "\tsType = " << value.sType << '\n';
12222         s << "\tpNext = " << value.pNext << '\n';
12223         s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
12224         s << '}';
12225         return s;
12226 }
12227
12228 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
12229 {
12230         s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
12231         s << "\tsType = " << value.sType << '\n';
12232         s << "\tpNext = " << value.pNext << '\n';
12233         s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
12234         s << '}';
12235         return s;
12236 }
12237
12238 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
12239 {
12240         s << "VkMutableDescriptorTypeListVALVE = {\n";
12241         s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
12242         s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
12243         s << '}';
12244         return s;
12245 }
12246
12247 std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
12248 {
12249         s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
12250         s << "\tsType = " << value.sType << '\n';
12251         s << "\tpNext = " << value.pNext << '\n';
12252         s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
12253         s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
12254         s << '}';
12255         return s;
12256 }
12257
12258 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
12259 {
12260         s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
12261         s << "\tsType = " << value.sType << '\n';
12262         s << "\tpNext = " << value.pNext << '\n';
12263         s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
12264         s << '}';
12265         return s;
12266 }
12267
12268 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
12269 {
12270         s << "VkVertexInputBindingDescription2EXT = {\n";
12271         s << "\tsType = " << value.sType << '\n';
12272         s << "\tpNext = " << value.pNext << '\n';
12273         s << "\tbinding = " << value.binding << '\n';
12274         s << "\tstride = " << value.stride << '\n';
12275         s << "\tinputRate = " << value.inputRate << '\n';
12276         s << "\tdivisor = " << value.divisor << '\n';
12277         s << '}';
12278         return s;
12279 }
12280
12281 std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
12282 {
12283         s << "VkVertexInputAttributeDescription2EXT = {\n";
12284         s << "\tsType = " << value.sType << '\n';
12285         s << "\tpNext = " << value.pNext << '\n';
12286         s << "\tlocation = " << value.location << '\n';
12287         s << "\tbinding = " << value.binding << '\n';
12288         s << "\tformat = " << value.format << '\n';
12289         s << "\toffset = " << value.offset << '\n';
12290         s << '}';
12291         return s;
12292 }
12293
12294 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
12295 {
12296         s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
12297         s << "\tsType = " << value.sType << '\n';
12298         s << "\tpNext = " << value.pNext << '\n';
12299         s << "\thasPrimary = " << value.hasPrimary << '\n';
12300         s << "\thasRender = " << value.hasRender << '\n';
12301         s << "\tprimaryMajor = " << value.primaryMajor << '\n';
12302         s << "\tprimaryMinor = " << value.primaryMinor << '\n';
12303         s << "\trenderMajor = " << value.renderMajor << '\n';
12304         s << "\trenderMinor = " << value.renderMinor << '\n';
12305         s << '}';
12306         return s;
12307 }
12308
12309 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
12310 {
12311         s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
12312         s << "\tsType = " << value.sType << '\n';
12313         s << "\tpNext = " << value.pNext << '\n';
12314         s << "\tdepthClipControl = " << value.depthClipControl << '\n';
12315         s << '}';
12316         return s;
12317 }
12318
12319 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
12320 {
12321         s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
12322         s << "\tsType = " << value.sType << '\n';
12323         s << "\tpNext = " << value.pNext << '\n';
12324         s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
12325         s << '}';
12326         return s;
12327 }
12328
12329 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
12330 {
12331         s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
12332         s << "\tsType = " << value.sType << '\n';
12333         s << "\tpNext = " << value.pNext << '\n';
12334         s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
12335         s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
12336         s << '}';
12337         return s;
12338 }
12339
12340 std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
12341 {
12342         s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
12343         s << "\tsType = " << value.sType << '\n';
12344         s << "\tpNext = " << value.pNext << '\n';
12345         s << "\trenderPass = " << value.renderPass << '\n';
12346         s << "\tsubpass = " << value.subpass << '\n';
12347         s << '}';
12348         return s;
12349 }
12350
12351 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
12352 {
12353         s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
12354         s << "\tsType = " << value.sType << '\n';
12355         s << "\tpNext = " << value.pNext << '\n';
12356         s << "\tsubpassShading = " << value.subpassShading << '\n';
12357         s << '}';
12358         return s;
12359 }
12360
12361 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
12362 {
12363         s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
12364         s << "\tsType = " << value.sType << '\n';
12365         s << "\tpNext = " << value.pNext << '\n';
12366         s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
12367         s << '}';
12368         return s;
12369 }
12370
12371 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
12372 {
12373         s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
12374         s << "\tsType = " << value.sType << '\n';
12375         s << "\tpNext = " << value.pNext << '\n';
12376         s << "\tinvocationMask = " << value.invocationMask << '\n';
12377         s << '}';
12378         return s;
12379 }
12380
12381 std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
12382 {
12383         s << "VkMemoryGetRemoteAddressInfoNV = {\n";
12384         s << "\tsType = " << value.sType << '\n';
12385         s << "\tpNext = " << value.pNext << '\n';
12386         s << "\tmemory = " << value.memory << '\n';
12387         s << "\thandleType = " << value.handleType << '\n';
12388         s << '}';
12389         return s;
12390 }
12391
12392 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
12393 {
12394         s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
12395         s << "\tsType = " << value.sType << '\n';
12396         s << "\tpNext = " << value.pNext << '\n';
12397         s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
12398         s << '}';
12399         return s;
12400 }
12401
12402 std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
12403 {
12404         s << "VkPipelinePropertiesIdentifierEXT = {\n";
12405         s << "\tsType = " << value.sType << '\n';
12406         s << "\tpNext = " << value.pNext << '\n';
12407         s << "\tpipelineIdentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineIdentifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineIdentifier))) << '\n';
12408         s << '}';
12409         return s;
12410 }
12411
12412 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
12413 {
12414         s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
12415         s << "\tsType = " << value.sType << '\n';
12416         s << "\tpNext = " << value.pNext << '\n';
12417         s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
12418         s << '}';
12419         return s;
12420 }
12421
12422 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
12423 {
12424         s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
12425         s << "\tsType = " << value.sType << '\n';
12426         s << "\tpNext = " << value.pNext << '\n';
12427         s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
12428         s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
12429         s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
12430         s << '}';
12431         return s;
12432 }
12433
12434 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
12435 {
12436         s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
12437         s << "\tsType = " << value.sType << '\n';
12438         s << "\tpNext = " << value.pNext << '\n';
12439         s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
12440         s << '}';
12441         return s;
12442 }
12443
12444 std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
12445 {
12446         s << "VkPipelineColorWriteCreateInfoEXT = {\n";
12447         s << "\tsType = " << value.sType << '\n';
12448         s << "\tpNext = " << value.pNext << '\n';
12449         s << "\tattachmentCount = " << value.attachmentCount << '\n';
12450         s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
12451         s << '}';
12452         return s;
12453 }
12454
12455 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
12456 {
12457         s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
12458         s << "\tsType = " << value.sType << '\n';
12459         s << "\tpNext = " << value.pNext << '\n';
12460         s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
12461         s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
12462         s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
12463         s << '}';
12464         return s;
12465 }
12466
12467 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
12468 {
12469         s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
12470         s << "\tsType = " << value.sType << '\n';
12471         s << "\tpNext = " << value.pNext << '\n';
12472         s << "\tminLod = " << value.minLod << '\n';
12473         s << '}';
12474         return s;
12475 }
12476
12477 std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
12478 {
12479         s << "VkImageViewMinLodCreateInfoEXT = {\n";
12480         s << "\tsType = " << value.sType << '\n';
12481         s << "\tpNext = " << value.pNext << '\n';
12482         s << "\tminLod = " << value.minLod << '\n';
12483         s << '}';
12484         return s;
12485 }
12486
12487 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
12488 {
12489         s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
12490         s << "\tsType = " << value.sType << '\n';
12491         s << "\tpNext = " << value.pNext << '\n';
12492         s << "\tmultiDraw = " << value.multiDraw << '\n';
12493         s << '}';
12494         return s;
12495 }
12496
12497 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
12498 {
12499         s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
12500         s << "\tsType = " << value.sType << '\n';
12501         s << "\tpNext = " << value.pNext << '\n';
12502         s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
12503         s << '}';
12504         return s;
12505 }
12506
12507 std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
12508 {
12509         s << "VkMultiDrawInfoEXT = {\n";
12510         s << "\tfirstVertex = " << value.firstVertex << '\n';
12511         s << "\tvertexCount = " << value.vertexCount << '\n';
12512         s << '}';
12513         return s;
12514 }
12515
12516 std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
12517 {
12518         s << "VkMultiDrawIndexedInfoEXT = {\n";
12519         s << "\tfirstIndex = " << value.firstIndex << '\n';
12520         s << "\tindexCount = " << value.indexCount << '\n';
12521         s << "\tvertexOffset = " << value.vertexOffset << '\n';
12522         s << '}';
12523         return s;
12524 }
12525
12526 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
12527 {
12528         s << "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT = {\n";
12529         s << "\tsType = " << value.sType << '\n';
12530         s << "\tpNext = " << value.pNext << '\n';
12531         s << "\timage2DViewOf3D = " << value.image2DViewOf3D << '\n';
12532         s << "\tsampler2DViewOf3D = " << value.sampler2DViewOf3D << '\n';
12533         s << '}';
12534         return s;
12535 }
12536
12537 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
12538 {
12539         s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
12540         s << "\tsType = " << value.sType << '\n';
12541         s << "\tpNext = " << value.pNext << '\n';
12542         s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
12543         s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
12544         s << '}';
12545         return s;
12546 }
12547
12548 std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
12549 {
12550         s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
12551         s << "\tsType = " << value.sType << '\n';
12552         s << "\tpNext = " << value.pNext << '\n';
12553         s << "\tcomponents = " << value.components << '\n';
12554         s << "\tsrgb = " << value.srgb << '\n';
12555         s << '}';
12556         return s;
12557 }
12558
12559 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
12560 {
12561         s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
12562         s << "\tsType = " << value.sType << '\n';
12563         s << "\tpNext = " << value.pNext << '\n';
12564         s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
12565         s << '}';
12566         return s;
12567 }
12568
12569 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
12570 {
12571         s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
12572         s << "\tsType = " << value.sType << '\n';
12573         s << "\tpNext = " << value.pNext << '\n';
12574         s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
12575         s << '}';
12576         return s;
12577 }
12578
12579 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
12580 {
12581         s << "VkDescriptorSetBindingReferenceVALVE = {\n";
12582         s << "\tsType = " << value.sType << '\n';
12583         s << "\tpNext = " << value.pNext << '\n';
12584         s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
12585         s << "\tbinding = " << value.binding << '\n';
12586         s << '}';
12587         return s;
12588 }
12589
12590 std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
12591 {
12592         s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
12593         s << "\tsType = " << value.sType << '\n';
12594         s << "\tpNext = " << value.pNext << '\n';
12595         s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
12596         s << "\tdescriptorSize = " << value.descriptorSize << '\n';
12597         s << '}';
12598         return s;
12599 }
12600
12601 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
12602 {
12603         s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
12604         s << "\tsType = " << value.sType << '\n';
12605         s << "\tpNext = " << value.pNext << '\n';
12606         s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
12607         s << '}';
12608         return s;
12609 }
12610
12611 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
12612 {
12613         s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
12614         s << "\tsType = " << value.sType << '\n';
12615         s << "\tpNext = " << value.pNext << '\n';
12616         s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
12617         s << '}';
12618         return s;
12619 }
12620
12621 std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
12622 {
12623         s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
12624         s << "\tsType = " << value.sType << '\n';
12625         s << "\tpNext = " << value.pNext << '\n';
12626         s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
12627         s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
12628         s << '}';
12629         return s;
12630 }
12631
12632 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
12633 {
12634         s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
12635         s << "\tsType = " << value.sType << '\n';
12636         s << "\tpNext = " << value.pNext << '\n';
12637         s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
12638         s << '}';
12639         return s;
12640 }
12641
12642 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
12643 {
12644         s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
12645         s << "\tsType = " << value.sType << '\n';
12646         s << "\tpNext = " << value.pNext << '\n';
12647         s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
12648         s << '}';
12649         return s;
12650 }
12651
12652 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
12653 {
12654         s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
12655         s << "\tsType = " << value.sType << '\n';
12656         s << "\tpNext = " << value.pNext << '\n';
12657         s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
12658         s << '}';
12659         return s;
12660 }
12661
12662 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
12663 {
12664         s << "VkRenderPassCreationControlEXT = {\n";
12665         s << "\tsType = " << value.sType << '\n';
12666         s << "\tpNext = " << value.pNext << '\n';
12667         s << "\tdisallowMerging = " << value.disallowMerging << '\n';
12668         s << '}';
12669         return s;
12670 }
12671
12672 std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
12673 {
12674         s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
12675         s << "\tsType = " << value.sType << '\n';
12676         s << "\tpNext = " << value.pNext << '\n';
12677         s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
12678         s << '}';
12679         return s;
12680 }
12681
12682 std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
12683 {
12684         s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
12685         s << "\tsType = " << value.sType << '\n';
12686         s << "\tpNext = " << value.pNext << '\n';
12687         s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
12688         s << "\tdescription = " << (const char*)value.description << '\n';
12689         s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
12690         s << '}';
12691         return s;
12692 }
12693
12694 std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
12695 {
12696         s << "VkDeviceOrHostAddressKHR = {\n";
12697         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12698         s << "\thostAddress = " << value.hostAddress << '\n';
12699         s << '}';
12700         return s;
12701 }
12702
12703 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
12704 {
12705         s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
12706         s << "\tprimitiveCount = " << value.primitiveCount << '\n';
12707         s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
12708         s << "\tfirstVertex = " << value.firstVertex << '\n';
12709         s << "\ttransformOffset = " << value.transformOffset << '\n';
12710         s << '}';
12711         return s;
12712 }
12713
12714 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
12715 {
12716         s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
12717         s << "\tsType = " << value.sType << '\n';
12718         s << "\tpNext = " << value.pNext << '\n';
12719         s << "\tvertexFormat = " << value.vertexFormat << '\n';
12720         s << "\tvertexData = " << value.vertexData << '\n';
12721         s << "\tvertexStride = " << value.vertexStride << '\n';
12722         s << "\tmaxVertex = " << value.maxVertex << '\n';
12723         s << "\tindexType = " << value.indexType << '\n';
12724         s << "\tindexData = " << value.indexData << '\n';
12725         s << "\ttransformData = " << value.transformData << '\n';
12726         s << '}';
12727         return s;
12728 }
12729
12730 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
12731 {
12732         s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
12733         s << "\tsType = " << value.sType << '\n';
12734         s << "\tpNext = " << value.pNext << '\n';
12735         s << "\tdata = " << value.data << '\n';
12736         s << "\tstride = " << value.stride << '\n';
12737         s << '}';
12738         return s;
12739 }
12740
12741 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
12742 {
12743         s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
12744         s << "\tsType = " << value.sType << '\n';
12745         s << "\tpNext = " << value.pNext << '\n';
12746         s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
12747         s << "\tdata = " << value.data << '\n';
12748         s << '}';
12749         return s;
12750 }
12751
12752 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
12753 {
12754         s << "VkAccelerationStructureGeometryDataKHR = {\n";
12755         s << "\ttriangles = " << value.triangles << '\n';
12756         s << "\taabbs = " << value.aabbs << '\n';
12757         s << "\tinstances = " << value.instances << '\n';
12758         s << '}';
12759         return s;
12760 }
12761
12762 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
12763 {
12764         s << "VkAccelerationStructureGeometryKHR = {\n";
12765         s << "\tsType = " << value.sType << '\n';
12766         s << "\tpNext = " << value.pNext << '\n';
12767         s << "\tgeometryType = " << value.geometryType << '\n';
12768         s << "\tgeometry = " << value.geometry << '\n';
12769         s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
12770         s << '}';
12771         return s;
12772 }
12773
12774 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
12775 {
12776         s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
12777         s << "\tsType = " << value.sType << '\n';
12778         s << "\tpNext = " << value.pNext << '\n';
12779         s << "\ttype = " << value.type << '\n';
12780         s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
12781         s << "\tmode = " << value.mode << '\n';
12782         s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
12783         s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
12784         s << "\tgeometryCount = " << value.geometryCount << '\n';
12785         s << "\tpGeometries = " << value.pGeometries << '\n';
12786         s << "\tppGeometries = " << value.ppGeometries << '\n';
12787         s << "\tscratchData = " << value.scratchData << '\n';
12788         s << '}';
12789         return s;
12790 }
12791
12792 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
12793 {
12794         s << "VkAccelerationStructureCreateInfoKHR = {\n";
12795         s << "\tsType = " << value.sType << '\n';
12796         s << "\tpNext = " << value.pNext << '\n';
12797         s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
12798         s << "\tbuffer = " << value.buffer << '\n';
12799         s << "\toffset = " << value.offset << '\n';
12800         s << "\tsize = " << value.size << '\n';
12801         s << "\ttype = " << value.type << '\n';
12802         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12803         s << '}';
12804         return s;
12805 }
12806
12807 std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
12808 {
12809         s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
12810         s << "\tsType = " << value.sType << '\n';
12811         s << "\tpNext = " << value.pNext << '\n';
12812         s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
12813         s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
12814         s << '}';
12815         return s;
12816 }
12817
12818 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
12819 {
12820         s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
12821         s << "\tsType = " << value.sType << '\n';
12822         s << "\tpNext = " << value.pNext << '\n';
12823         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12824         s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
12825         s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
12826         s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
12827         s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
12828         s << '}';
12829         return s;
12830 }
12831
12832 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
12833 {
12834         s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
12835         s << "\tsType = " << value.sType << '\n';
12836         s << "\tpNext = " << value.pNext << '\n';
12837         s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
12838         s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
12839         s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
12840         s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
12841         s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
12842         s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
12843         s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
12844         s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
12845         s << '}';
12846         return s;
12847 }
12848
12849 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
12850 {
12851         s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
12852         s << "\tsType = " << value.sType << '\n';
12853         s << "\tpNext = " << value.pNext << '\n';
12854         s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
12855         s << '}';
12856         return s;
12857 }
12858
12859 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
12860 {
12861         s << "VkAccelerationStructureVersionInfoKHR = {\n";
12862         s << "\tsType = " << value.sType << '\n';
12863         s << "\tpNext = " << value.pNext << '\n';
12864         s << "\tpVersionData = " << value.pVersionData << '\n';
12865         s << '}';
12866         return s;
12867 }
12868
12869 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
12870 {
12871         s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
12872         s << "\tsType = " << value.sType << '\n';
12873         s << "\tpNext = " << value.pNext << '\n';
12874         s << "\tsrc = " << value.src << '\n';
12875         s << "\tdst = " << value.dst << '\n';
12876         s << "\tmode = " << value.mode << '\n';
12877         s << '}';
12878         return s;
12879 }
12880
12881 std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
12882 {
12883         s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
12884         s << "\tsType = " << value.sType << '\n';
12885         s << "\tpNext = " << value.pNext << '\n';
12886         s << "\tsrc = " << value.src << '\n';
12887         s << "\tdst = " << value.dst << '\n';
12888         s << "\tmode = " << value.mode << '\n';
12889         s << '}';
12890         return s;
12891 }
12892
12893 std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
12894 {
12895         s << "VkCopyAccelerationStructureInfoKHR = {\n";
12896         s << "\tsType = " << value.sType << '\n';
12897         s << "\tpNext = " << value.pNext << '\n';
12898         s << "\tsrc = " << value.src << '\n';
12899         s << "\tdst = " << value.dst << '\n';
12900         s << "\tmode = " << value.mode << '\n';
12901         s << '}';
12902         return s;
12903 }
12904
12905 std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
12906 {
12907         s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
12908         s << "\tsType = " << value.sType << '\n';
12909         s << "\tpNext = " << value.pNext << '\n';
12910         s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
12911         s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
12912         s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
12913         s << '}';
12914         return s;
12915 }
12916
12917 std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
12918 {
12919         s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
12920         s << "\tsType = " << value.sType << '\n';
12921         s << "\tpNext = " << value.pNext << '\n';
12922         s << "\ttype = " << value.type << '\n';
12923         s << "\tgeneralShader = " << value.generalShader << '\n';
12924         s << "\tclosestHitShader = " << value.closestHitShader << '\n';
12925         s << "\tanyHitShader = " << value.anyHitShader << '\n';
12926         s << "\tintersectionShader = " << value.intersectionShader << '\n';
12927         s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
12928         s << '}';
12929         return s;
12930 }
12931
12932 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
12933 {
12934         s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
12935         s << "\tsType = " << value.sType << '\n';
12936         s << "\tpNext = " << value.pNext << '\n';
12937         s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
12938         s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
12939         s << '}';
12940         return s;
12941 }
12942
12943 std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
12944 {
12945         s << "VkRayTracingPipelineCreateInfoKHR = {\n";
12946         s << "\tsType = " << value.sType << '\n';
12947         s << "\tpNext = " << value.pNext << '\n';
12948         s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
12949         s << "\tstageCount = " << value.stageCount << '\n';
12950         s << "\tpStages = " << value.pStages << '\n';
12951         s << "\tgroupCount = " << value.groupCount << '\n';
12952         s << "\tpGroups = " << value.pGroups << '\n';
12953         s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
12954         s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
12955         s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
12956         s << "\tpDynamicState = " << value.pDynamicState << '\n';
12957         s << "\tlayout = " << value.layout << '\n';
12958         s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
12959         s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
12960         s << '}';
12961         return s;
12962 }
12963
12964 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
12965 {
12966         s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
12967         s << "\tsType = " << value.sType << '\n';
12968         s << "\tpNext = " << value.pNext << '\n';
12969         s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
12970         s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
12971         s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
12972         s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
12973         s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
12974         s << '}';
12975         return s;
12976 }
12977
12978 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
12979 {
12980         s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
12981         s << "\tsType = " << value.sType << '\n';
12982         s << "\tpNext = " << value.pNext << '\n';
12983         s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
12984         s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
12985         s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
12986         s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
12987         s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
12988         s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
12989         s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
12990         s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
12991         s << '}';
12992         return s;
12993 }
12994
12995 std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
12996 {
12997         s << "VkStridedDeviceAddressRegionKHR = {\n";
12998         s << "\tdeviceAddress = " << value.deviceAddress << '\n';
12999         s << "\tstride = " << value.stride << '\n';
13000         s << "\tsize = " << value.size << '\n';
13001         s << '}';
13002         return s;
13003 }
13004
13005 std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
13006 {
13007         s << "VkTraceRaysIndirectCommandKHR = {\n";
13008         s << "\twidth = " << value.width << '\n';
13009         s << "\theight = " << value.height << '\n';
13010         s << "\tdepth = " << value.depth << '\n';
13011         s << '}';
13012         return s;
13013 }
13014
13015 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
13016 {
13017         s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
13018         s << "\tsType = " << value.sType << '\n';
13019         s << "\tpNext = " << value.pNext << '\n';
13020         s << "\trayQuery = " << value.rayQuery << '\n';
13021         s << '}';
13022         return s;
13023 }
13024
13025 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
13026 {
13027         s << "VkAndroidSurfaceCreateInfoKHR = {\n";
13028         s << "\tsType = " << value.sType << '\n';
13029         s << "\tpNext = " << value.pNext << '\n';
13030         s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
13031         s << "\twindow = " << value.window << '\n';
13032         s << '}';
13033         return s;
13034 }
13035
13036 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
13037 {
13038         s << "VkAndroidHardwareBufferUsageANDROID = {\n";
13039         s << "\tsType = " << value.sType << '\n';
13040         s << "\tpNext = " << value.pNext << '\n';
13041         s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
13042         s << '}';
13043         return s;
13044 }
13045
13046 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
13047 {
13048         s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
13049         s << "\tsType = " << value.sType << '\n';
13050         s << "\tpNext = " << value.pNext << '\n';
13051         s << "\tallocationSize = " << value.allocationSize << '\n';
13052         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
13053         s << '}';
13054         return s;
13055 }
13056
13057 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
13058 {
13059         s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
13060         s << "\tsType = " << value.sType << '\n';
13061         s << "\tpNext = " << value.pNext << '\n';
13062         s << "\tformat = " << value.format << '\n';
13063         s << "\texternalFormat = " << value.externalFormat << '\n';
13064         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
13065         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
13066         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
13067         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
13068         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
13069         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
13070         s << '}';
13071         return s;
13072 }
13073
13074 std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
13075 {
13076         s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
13077         s << "\tsType = " << value.sType << '\n';
13078         s << "\tpNext = " << value.pNext << '\n';
13079         s << "\tbuffer = " << value.buffer << '\n';
13080         s << '}';
13081         return s;
13082 }
13083
13084 std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
13085 {
13086         s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
13087         s << "\tsType = " << value.sType << '\n';
13088         s << "\tpNext = " << value.pNext << '\n';
13089         s << "\tmemory = " << value.memory << '\n';
13090         s << '}';
13091         return s;
13092 }
13093
13094 std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
13095 {
13096         s << "VkExternalFormatANDROID = {\n";
13097         s << "\tsType = " << value.sType << '\n';
13098         s << "\tpNext = " << value.pNext << '\n';
13099         s << "\texternalFormat = " << value.externalFormat << '\n';
13100         s << '}';
13101         return s;
13102 }
13103
13104 std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
13105 {
13106         s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
13107         s << "\tsType = " << value.sType << '\n';
13108         s << "\tpNext = " << value.pNext << '\n';
13109         s << "\tformat = " << value.format << '\n';
13110         s << "\texternalFormat = " << value.externalFormat << '\n';
13111         s << "\tformatFeatures = " << value.formatFeatures << '\n';
13112         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
13113         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
13114         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
13115         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
13116         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
13117         s << '}';
13118         return s;
13119 }
13120
13121 std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value)
13122 {
13123         s << "VkQueueFamilyQueryResultStatusProperties2KHR = {\n";
13124         s << "\tsType = " << value.sType << '\n';
13125         s << "\tpNext = " << value.pNext << '\n';
13126         s << "\tsupported = " << value.supported << '\n';
13127         s << '}';
13128         return s;
13129 }
13130
13131 std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
13132 {
13133         s << "VkVideoQueueFamilyProperties2KHR = {\n";
13134         s << "\tsType = " << value.sType << '\n';
13135         s << "\tpNext = " << value.pNext << '\n';
13136         s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
13137         s << '}';
13138         return s;
13139 }
13140
13141 std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
13142 {
13143         s << "VkVideoProfileKHR = {\n";
13144         s << "\tsType = " << value.sType << '\n';
13145         s << "\tpNext = " << value.pNext << '\n';
13146         s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
13147         s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
13148         s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
13149         s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
13150         s << '}';
13151         return s;
13152 }
13153
13154 std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
13155 {
13156         s << "VkVideoProfilesKHR = {\n";
13157         s << "\tsType = " << value.sType << '\n';
13158         s << "\tpNext = " << value.pNext << '\n';
13159         s << "\tprofileCount = " << value.profileCount << '\n';
13160         s << "\tpProfiles = " << value.pProfiles << '\n';
13161         s << '}';
13162         return s;
13163 }
13164
13165 std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
13166 {
13167         s << "VkVideoCapabilitiesKHR = {\n";
13168         s << "\tsType = " << value.sType << '\n';
13169         s << "\tpNext = " << value.pNext << '\n';
13170         s << "\tcapabilityFlags = " << getVideoCapabilityFlagsKHRStr(value.capabilityFlags) << '\n';
13171         s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
13172         s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
13173         s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
13174         s << "\tminExtent = " << value.minExtent << '\n';
13175         s << "\tmaxExtent = " << value.maxExtent << '\n';
13176         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
13177         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
13178         s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
13179         s << '}';
13180         return s;
13181 }
13182
13183 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
13184 {
13185         s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
13186         s << "\tsType = " << value.sType << '\n';
13187         s << "\tpNext = " << value.pNext << '\n';
13188         s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
13189         s << "\tpVideoProfiles = " << value.pVideoProfiles << '\n';
13190         s << '}';
13191         return s;
13192 }
13193
13194 std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
13195 {
13196         s << "VkVideoFormatPropertiesKHR = {\n";
13197         s << "\tsType = " << value.sType << '\n';
13198         s << "\tpNext = " << value.pNext << '\n';
13199         s << "\tformat = " << value.format << '\n';
13200         s << '}';
13201         return s;
13202 }
13203
13204 std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
13205 {
13206         s << "VkVideoPictureResourceKHR = {\n";
13207         s << "\tsType = " << value.sType << '\n';
13208         s << "\tpNext = " << value.pNext << '\n';
13209         s << "\tcodedOffset = " << value.codedOffset << '\n';
13210         s << "\tcodedExtent = " << value.codedExtent << '\n';
13211         s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
13212         s << "\timageViewBinding = " << value.imageViewBinding << '\n';
13213         s << '}';
13214         return s;
13215 }
13216
13217 std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
13218 {
13219         s << "VkVideoReferenceSlotKHR = {\n";
13220         s << "\tsType = " << value.sType << '\n';
13221         s << "\tpNext = " << value.pNext << '\n';
13222         s << "\tslotIndex = " << value.slotIndex << '\n';
13223         s << "\tpPictureResource = " << value.pPictureResource << '\n';
13224         s << '}';
13225         return s;
13226 }
13227
13228 std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
13229 {
13230         s << "VkVideoGetMemoryPropertiesKHR = {\n";
13231         s << "\tsType = " << value.sType << '\n';
13232         s << "\tpNext = " << value.pNext << '\n';
13233         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13234         s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
13235         s << '}';
13236         return s;
13237 }
13238
13239 std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
13240 {
13241         s << "VkVideoBindMemoryKHR = {\n";
13242         s << "\tsType = " << value.sType << '\n';
13243         s << "\tpNext = " << value.pNext << '\n';
13244         s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
13245         s << "\tmemory = " << value.memory << '\n';
13246         s << "\tmemoryOffset = " << value.memoryOffset << '\n';
13247         s << "\tmemorySize = " << value.memorySize << '\n';
13248         s << '}';
13249         return s;
13250 }
13251
13252 std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
13253 {
13254         s << "VkVideoSessionCreateInfoKHR = {\n";
13255         s << "\tsType = " << value.sType << '\n';
13256         s << "\tpNext = " << value.pNext << '\n';
13257         s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
13258         s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
13259         s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
13260         s << "\tpictureFormat = " << value.pictureFormat << '\n';
13261         s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
13262         s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
13263         s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
13264         s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
13265         s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
13266         s << '}';
13267         return s;
13268 }
13269
13270 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
13271 {
13272         s << "VkVideoSessionParametersCreateInfoKHR = {\n";
13273         s << "\tsType = " << value.sType << '\n';
13274         s << "\tpNext = " << value.pNext << '\n';
13275         s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
13276         s << "\tvideoSession = " << value.videoSession << '\n';
13277         s << '}';
13278         return s;
13279 }
13280
13281 std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
13282 {
13283         s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
13284         s << "\tsType = " << value.sType << '\n';
13285         s << "\tpNext = " << value.pNext << '\n';
13286         s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
13287         s << '}';
13288         return s;
13289 }
13290
13291 std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
13292 {
13293         s << "VkVideoBeginCodingInfoKHR = {\n";
13294         s << "\tsType = " << value.sType << '\n';
13295         s << "\tpNext = " << value.pNext << '\n';
13296         s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
13297         s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
13298         s << "\tvideoSession = " << value.videoSession << '\n';
13299         s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
13300         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13301         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13302         s << '}';
13303         return s;
13304 }
13305
13306 std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
13307 {
13308         s << "VkVideoEndCodingInfoKHR = {\n";
13309         s << "\tsType = " << value.sType << '\n';
13310         s << "\tpNext = " << value.pNext << '\n';
13311         s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
13312         s << '}';
13313         return s;
13314 }
13315
13316 std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
13317 {
13318         s << "VkVideoCodingControlInfoKHR = {\n";
13319         s << "\tsType = " << value.sType << '\n';
13320         s << "\tpNext = " << value.pNext << '\n';
13321         s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
13322         s << '}';
13323         return s;
13324 }
13325
13326 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
13327 {
13328         s << "VkVideoDecodeCapabilitiesKHR = {\n";
13329         s << "\tsType = " << value.sType << '\n';
13330         s << "\tpNext = " << value.pNext << '\n';
13331         s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
13332         s << '}';
13333         return s;
13334 }
13335
13336 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
13337 {
13338         s << "VkVideoDecodeInfoKHR = {\n";
13339         s << "\tsType = " << value.sType << '\n';
13340         s << "\tpNext = " << value.pNext << '\n';
13341         s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
13342         s << "\tsrcBuffer = " << value.srcBuffer << '\n';
13343         s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
13344         s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
13345         s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
13346         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13347         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13348         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13349         s << '}';
13350         return s;
13351 }
13352
13353 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
13354 {
13355         s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
13356         s << "\tsType = " << value.sType << '\n';
13357         s << "\tpNext = " << value.pNext << '\n';
13358         s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
13359         s << "\tevents = " << value.events << '\n';
13360         s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
13361         s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
13362         s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
13363         s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
13364         s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
13365         s << "\tpointPolygons = " << value.pointPolygons << '\n';
13366         s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
13367         s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
13368         s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
13369         s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
13370         s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
13371         s << "\ttriangleFans = " << value.triangleFans << '\n';
13372         s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
13373         s << '}';
13374         return s;
13375 }
13376
13377 std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
13378 {
13379         s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
13380         s << "\tsType = " << value.sType << '\n';
13381         s << "\tpNext = " << value.pNext << '\n';
13382         s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
13383         s << '}';
13384         return s;
13385 }
13386
13387 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
13388 {
13389         s << "VkVideoEncodeInfoKHR = {\n";
13390         s << "\tsType = " << value.sType << '\n';
13391         s << "\tpNext = " << value.pNext << '\n';
13392         s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
13393         s << "\tqualityLevel = " << value.qualityLevel << '\n';
13394         s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
13395         s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
13396         s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
13397         s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
13398         s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
13399         s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
13400         s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
13401         s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
13402         s << '}';
13403         return s;
13404 }
13405
13406 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
13407 {
13408         s << "VkVideoEncodeCapabilitiesKHR = {\n";
13409         s << "\tsType = " << value.sType << '\n';
13410         s << "\tpNext = " << value.pNext << '\n';
13411         s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
13412         s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
13413         s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
13414         s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
13415         s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
13416         s << '}';
13417         return s;
13418 }
13419
13420 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
13421 {
13422         s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
13423         s << "\tsType = " << value.sType << '\n';
13424         s << "\tpNext = " << value.pNext << '\n';
13425         s << "\taverageBitrate = " << value.averageBitrate << '\n';
13426         s << "\tmaxBitrate = " << value.maxBitrate << '\n';
13427         s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
13428         s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
13429         s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
13430         s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
13431         s << '}';
13432         return s;
13433 }
13434
13435 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
13436 {
13437         s << "VkVideoEncodeRateControlInfoKHR = {\n";
13438         s << "\tsType = " << value.sType << '\n';
13439         s << "\tpNext = " << value.pNext << '\n';
13440         s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
13441         s << "\trateControlMode = " << value.rateControlMode << '\n';
13442         s << "\tlayerCount = " << value.layerCount << '\n';
13443         s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
13444         s << '}';
13445         return s;
13446 }
13447
13448 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
13449 {
13450         s << "StdVideoH264SpsVuiFlags = {\n";
13451         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
13452         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
13453         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
13454         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
13455         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
13456         s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
13457         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
13458         s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
13459         s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
13460         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
13461         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
13462         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
13463         s << '}';
13464         return s;
13465 }
13466
13467 std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
13468 {
13469         s << "StdVideoH264HrdParameters = {\n";
13470         s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
13471         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
13472         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
13473         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';
13474         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';
13475         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';
13476         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
13477         s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
13478         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
13479         s << "\ttime_offset_length = " << value.time_offset_length << '\n';
13480         s << '}';
13481         return s;
13482 }
13483
13484 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
13485 {
13486         s << "StdVideoH264SequenceParameterSetVui = {\n";
13487         s << "\tflags = " << value.flags << '\n';
13488         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
13489         s << "\tsar_width = " << value.sar_width << '\n';
13490         s << "\tsar_height = " << value.sar_height << '\n';
13491         s << "\tvideo_format = " << value.video_format << '\n';
13492         s << "\tcolor_primaries = " << value.color_primaries << '\n';
13493         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
13494         s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
13495         s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
13496         s << "\ttime_scale = " << value.time_scale << '\n';
13497         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
13498         s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
13499         s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
13500         s << '}';
13501         return s;
13502 }
13503
13504 std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
13505 {
13506         s << "StdVideoH264SpsFlags = {\n";
13507         s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
13508         s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
13509         s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
13510         s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
13511         s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
13512         s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
13513         s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
13514         s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
13515         s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
13516         s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
13517         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
13518         s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
13519         s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
13520         s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
13521         s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
13522         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
13523         s << '}';
13524         return s;
13525 }
13526
13527 std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
13528 {
13529         s << "StdVideoH264ScalingLists = {\n";
13530         s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
13531         s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
13532         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
13533         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
13534         s << '}';
13535         return s;
13536 }
13537
13538 std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
13539 {
13540         s << "StdVideoH264SequenceParameterSet = {\n";
13541         s << "\tflags = " << value.flags << '\n';
13542         s << "\tprofile_idc = " << value.profile_idc << '\n';
13543         s << "\tlevel_idc = " << value.level_idc << '\n';
13544         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13545         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
13546         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
13547         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
13548         s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
13549         s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
13550         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
13551         s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
13552         s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
13553         s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
13554         s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
13555         s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
13556         s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
13557         s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
13558         s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
13559         s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
13560         s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
13561         s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
13562         s << "\tpScalingLists = " << value.pScalingLists << '\n';
13563         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
13564         s << '}';
13565         return s;
13566 }
13567
13568 std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
13569 {
13570         s << "StdVideoH264PpsFlags = {\n";
13571         s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
13572         s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
13573         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
13574         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
13575         s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
13576         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
13577         s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
13578         s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
13579         s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
13580         s << '}';
13581         return s;
13582 }
13583
13584 std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
13585 {
13586         s << "StdVideoH264PictureParameterSet = {\n";
13587         s << "\tflags = " << value.flags << '\n';
13588         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13589         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
13590         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
13591         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
13592         s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
13593         s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
13594         s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
13595         s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
13596         s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
13597         s << "\tpScalingLists = " << value.pScalingLists << '\n';
13598         s << '}';
13599         return s;
13600 }
13601
13602 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
13603 {
13604         s << "StdVideoEncodeH264WeightTableFlags = {\n";
13605         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
13606         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
13607         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
13608         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
13609         s << '}';
13610         return s;
13611 }
13612
13613 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
13614 {
13615         s << "StdVideoEncodeH264WeightTable = {\n";
13616         s << "\tflags = " << value.flags << '\n';
13617         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
13618         s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
13619         s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
13620         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
13621         s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
13622         s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
13623         s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
13624         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
13625         s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
13626         s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
13627         s << '}';
13628         return s;
13629 }
13630
13631 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
13632 {
13633         s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
13634         s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
13635         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
13636         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
13637         s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
13638         s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
13639         s << '}';
13640         return s;
13641 }
13642
13643 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
13644 {
13645         s << "StdVideoEncodeH264PictureInfoFlags = {\n";
13646         s << "\tidr_flag = " << value.idr_flag << '\n';
13647         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
13648         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
13649         s << '}';
13650         return s;
13651 }
13652
13653 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
13654 {
13655         s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
13656         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
13657         s << '}';
13658         return s;
13659 }
13660
13661 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
13662 {
13663         s << "StdVideoEncodeH264RefMgmtFlags = {\n";
13664         s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
13665         s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
13666         s << '}';
13667         return s;
13668 }
13669
13670 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
13671 {
13672         s << "StdVideoEncodeH264RefListModEntry = {\n";
13673         s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
13674         s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
13675         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13676         s << '}';
13677         return s;
13678 }
13679
13680 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
13681 {
13682         s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
13683         s << "\toperation = " << value.operation << '\n';
13684         s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
13685         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13686         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
13687         s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
13688         s << '}';
13689         return s;
13690 }
13691
13692 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
13693 {
13694         s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
13695         s << "\tflags = " << value.flags << '\n';
13696         s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
13697         s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
13698         s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
13699         s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
13700         s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
13701         s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
13702         s << '}';
13703         return s;
13704 }
13705
13706 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
13707 {
13708         s << "StdVideoEncodeH264PictureInfo = {\n";
13709         s << "\tflags = " << value.flags << '\n';
13710         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
13711         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
13712         s << "\tpictureType = " << value.pictureType << '\n';
13713         s << "\tframe_num = " << value.frame_num << '\n';
13714         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
13715         s << '}';
13716         return s;
13717 }
13718
13719 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
13720 {
13721         s << "StdVideoEncodeH264ReferenceInfo = {\n";
13722         s << "\tflags = " << value.flags << '\n';
13723         s << "\tFrameNum = " << value.FrameNum << '\n';
13724         s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
13725         s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
13726         s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
13727         s << '}';
13728         return s;
13729 }
13730
13731 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
13732 {
13733         s << "StdVideoEncodeH264SliceHeader = {\n";
13734         s << "\tflags = " << value.flags << '\n';
13735         s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
13736         s << "\tslice_type = " << value.slice_type << '\n';
13737         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
13738         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
13739         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
13740         s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
13741         s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
13742         s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
13743         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
13744         s << "\tpWeightTable = " << value.pWeightTable << '\n';
13745         s << '}';
13746         return s;
13747 }
13748
13749 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
13750 {
13751         s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
13752         s << "\tsType = " << value.sType << '\n';
13753         s << "\tpNext = " << value.pNext << '\n';
13754         s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
13755         s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
13756         s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
13757         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
13758         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
13759         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
13760         s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
13761         s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
13762         s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
13763         s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
13764         s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
13765         s << '}';
13766         return s;
13767 }
13768
13769 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
13770 {
13771         s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
13772         s << "\tsType = " << value.sType << '\n';
13773         s << "\tpNext = " << value.pNext << '\n';
13774         s << "\tspsStdCount = " << value.spsStdCount << '\n';
13775         s << "\tpSpsStd = " << value.pSpsStd << '\n';
13776         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
13777         s << "\tpPpsStd = " << value.pPpsStd << '\n';
13778         s << '}';
13779         return s;
13780 }
13781
13782 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
13783 {
13784         s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
13785         s << "\tsType = " << value.sType << '\n';
13786         s << "\tpNext = " << value.pNext << '\n';
13787         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
13788         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
13789         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
13790         s << '}';
13791         return s;
13792 }
13793
13794 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
13795 {
13796         s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
13797         s << "\tsType = " << value.sType << '\n';
13798         s << "\tpNext = " << value.pNext << '\n';
13799         s << "\tslotIndex = " << value.slotIndex << '\n';
13800         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
13801         s << '}';
13802         return s;
13803 }
13804
13805 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsEXT& value)
13806 {
13807         s << "VkVideoEncodeH264ReferenceListsEXT = {\n";
13808         s << "\tsType = " << value.sType << '\n';
13809         s << "\tpNext = " << value.pNext << '\n';
13810         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
13811         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
13812         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
13813         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
13814         s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
13815         s << '}';
13816         return s;
13817 }
13818
13819 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
13820 {
13821         s << "VkVideoEncodeH264NaluSliceEXT = {\n";
13822         s << "\tsType = " << value.sType << '\n';
13823         s << "\tpNext = " << value.pNext << '\n';
13824         s << "\tmbCount = " << value.mbCount << '\n';
13825         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13826         s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
13827         s << '}';
13828         return s;
13829 }
13830
13831 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
13832 {
13833         s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
13834         s << "\tsType = " << value.sType << '\n';
13835         s << "\tpNext = " << value.pNext << '\n';
13836         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
13837         s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
13838         s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
13839         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
13840         s << '}';
13841         return s;
13842 }
13843
13844 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
13845 {
13846         s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
13847         s << "\tsType = " << value.sType << '\n';
13848         s << "\tpNext = " << value.pNext << '\n';
13849         s << "\tspsId = " << value.spsId << '\n';
13850         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
13851         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
13852         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
13853         s << '}';
13854         return s;
13855 }
13856
13857 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
13858 {
13859         s << "VkVideoEncodeH264ProfileEXT = {\n";
13860         s << "\tsType = " << value.sType << '\n';
13861         s << "\tpNext = " << value.pNext << '\n';
13862         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
13863         s << '}';
13864         return s;
13865 }
13866
13867 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
13868 {
13869         s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
13870         s << "\tsType = " << value.sType << '\n';
13871         s << "\tpNext = " << value.pNext << '\n';
13872         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
13873         s << "\tidrPeriod = " << value.idrPeriod << '\n';
13874         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
13875         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
13876         s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
13877         s << '}';
13878         return s;
13879 }
13880
13881 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
13882 {
13883         s << "VkVideoEncodeH264QpEXT = {\n";
13884         s << "\tqpI = " << value.qpI << '\n';
13885         s << "\tqpP = " << value.qpP << '\n';
13886         s << "\tqpB = " << value.qpB << '\n';
13887         s << '}';
13888         return s;
13889 }
13890
13891 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
13892 {
13893         s << "VkVideoEncodeH264FrameSizeEXT = {\n";
13894         s << "\tframeISize = " << value.frameISize << '\n';
13895         s << "\tframePSize = " << value.framePSize << '\n';
13896         s << "\tframeBSize = " << value.frameBSize << '\n';
13897         s << '}';
13898         return s;
13899 }
13900
13901 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
13902 {
13903         s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
13904         s << "\tsType = " << value.sType << '\n';
13905         s << "\tpNext = " << value.pNext << '\n';
13906         s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
13907         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
13908         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
13909         s << "\tuseMinQp = " << value.useMinQp << '\n';
13910         s << "\tminQp = " << value.minQp << '\n';
13911         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
13912         s << "\tmaxQp = " << value.maxQp << '\n';
13913         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
13914         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
13915         s << '}';
13916         return s;
13917 }
13918
13919 std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
13920 {
13921         s << "StdVideoH265DecPicBufMgr = {\n";
13922         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';
13923         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';
13924         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';
13925         s << '}';
13926         return s;
13927 }
13928
13929 std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
13930 {
13931         s << "StdVideoH265SubLayerHrdParameters = {\n";
13932         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';
13933         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';
13934         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';
13935         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';
13936         s << "\tcbr_flag = " << value.cbr_flag << '\n';
13937         s << '}';
13938         return s;
13939 }
13940
13941 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
13942 {
13943         s << "StdVideoH265HrdFlags = {\n";
13944         s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
13945         s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
13946         s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
13947         s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
13948         s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
13949         s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
13950         s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
13951         s << '}';
13952         return s;
13953 }
13954
13955 std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
13956 {
13957         s << "StdVideoH265HrdParameters = {\n";
13958         s << "\tflags = " << value.flags << '\n';
13959         s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
13960         s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
13961         s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
13962         s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
13963         s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
13964         s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
13965         s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
13966         s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
13967         s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
13968         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';
13969         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';
13970         s << "\tpSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersNal), DE_ARRAY_END(value.pSubLayerHrdParametersNal)) << '\n';
13971         s << "\tpSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersVcl), DE_ARRAY_END(value.pSubLayerHrdParametersVcl)) << '\n';
13972         s << '}';
13973         return s;
13974 }
13975
13976 std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
13977 {
13978         s << "StdVideoH265VpsFlags = {\n";
13979         s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
13980         s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
13981         s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
13982         s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
13983         s << '}';
13984         return s;
13985 }
13986
13987 std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
13988 {
13989         s << "StdVideoH265VideoParameterSet = {\n";
13990         s << "\tflags = " << value.flags << '\n';
13991         s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
13992         s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
13993         s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
13994         s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
13995         s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
13996         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
13997         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
13998         s << '}';
13999         return s;
14000 }
14001
14002 std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
14003 {
14004         s << "StdVideoH265ScalingLists = {\n";
14005         s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
14006         s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
14007         s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
14008         s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
14009         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';
14010         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';
14011         s << '}';
14012         return s;
14013 }
14014
14015 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
14016 {
14017         s << "StdVideoH265SpsVuiFlags = {\n";
14018         s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
14019         s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
14020         s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
14021         s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
14022         s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
14023         s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
14024         s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
14025         s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
14026         s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
14027         s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
14028         s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
14029         s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
14030         s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
14031         s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
14032         s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
14033         s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
14034         s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
14035         s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
14036         s << '}';
14037         return s;
14038 }
14039
14040 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
14041 {
14042         s << "StdVideoH265SequenceParameterSetVui = {\n";
14043         s << "\tflags = " << value.flags << '\n';
14044         s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
14045         s << "\tsar_width = " << value.sar_width << '\n';
14046         s << "\tsar_height = " << value.sar_height << '\n';
14047         s << "\tvideo_format = " << value.video_format << '\n';
14048         s << "\tcolour_primaries = " << value.colour_primaries << '\n';
14049         s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
14050         s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
14051         s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
14052         s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
14053         s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
14054         s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
14055         s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
14056         s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
14057         s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
14058         s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
14059         s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
14060         s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
14061         s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
14062         s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
14063         s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
14064         s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
14065         s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
14066         s << '}';
14067         return s;
14068 }
14069
14070 std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
14071 {
14072         s << "StdVideoH265PredictorPaletteEntries = {\n";
14073         s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
14074         s << '}';
14075         return s;
14076 }
14077
14078 std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
14079 {
14080         s << "StdVideoH265SpsFlags = {\n";
14081         s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
14082         s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
14083         s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
14084         s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
14085         s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
14086         s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
14087         s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
14088         s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
14089         s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
14090         s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
14091         s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
14092         s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
14093         s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
14094         s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
14095         s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
14096         s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
14097         s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
14098         s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
14099         s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
14100         s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
14101         s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
14102         s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
14103         s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
14104         s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
14105         s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
14106         s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
14107         s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
14108         s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
14109         s << '}';
14110         return s;
14111 }
14112
14113 std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
14114 {
14115         s << "StdVideoH265SequenceParameterSet = {\n";
14116         s << "\tflags = " << value.flags << '\n';
14117         s << "\tprofile_idc = " << value.profile_idc << '\n';
14118         s << "\tlevel_idc = " << value.level_idc << '\n';
14119         s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
14120         s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
14121         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
14122         s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
14123         s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
14124         s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
14125         s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
14126         s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
14127         s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
14128         s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
14129         s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
14130         s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
14131         s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
14132         s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
14133         s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
14134         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
14135         s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
14136         s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
14137         s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
14138         s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
14139         s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
14140         s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
14141         s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
14142         s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
14143         s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
14144         s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
14145         s << "\tpScalingLists = " << value.pScalingLists << '\n';
14146         s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
14147         s << "\tpalette_max_size = " << value.palette_max_size << '\n';
14148         s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
14149         s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
14150         s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
14151         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
14152         s << '}';
14153         return s;
14154 }
14155
14156 std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
14157 {
14158         s << "StdVideoH265PpsFlags = {\n";
14159         s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
14160         s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
14161         s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
14162         s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
14163         s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
14164         s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
14165         s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
14166         s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
14167         s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
14168         s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
14169         s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
14170         s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
14171         s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
14172         s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
14173         s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
14174         s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
14175         s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
14176         s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
14177         s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
14178         s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
14179         s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
14180         s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
14181         s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
14182         s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
14183         s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
14184         s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
14185         s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
14186         s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
14187         s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
14188         s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
14189         s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
14190         s << '}';
14191         return s;
14192 }
14193
14194 std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
14195 {
14196         s << "StdVideoH265PictureParameterSet = {\n";
14197         s << "\tflags = " << value.flags << '\n';
14198         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
14199         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
14200         s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
14201         s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
14202         s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
14203         s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
14204         s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
14205         s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
14206         s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
14207         s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
14208         s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
14209         s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
14210         s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
14211         s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
14212         s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
14213         s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
14214         s << "\tpScalingLists = " << value.pScalingLists << '\n';
14215         s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
14216         s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
14217         s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
14218         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';
14219         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';
14220         s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
14221         s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
14222         s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
14223         s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
14224         s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
14225         s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
14226         s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
14227         s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
14228         s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
14229         s << '}';
14230         return s;
14231 }
14232
14233 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
14234 {
14235         s << "StdVideoEncodeH265WeightTableFlags = {\n";
14236         s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
14237         s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
14238         s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
14239         s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
14240         s << '}';
14241         return s;
14242 }
14243
14244 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
14245 {
14246         s << "StdVideoEncodeH265WeightTable = {\n";
14247         s << "\tflags = " << value.flags << '\n';
14248         s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
14249         s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
14250         s << "\tdelta_luma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l0), DE_ARRAY_END(value.delta_luma_weight_l0)) << '\n';
14251         s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
14252         s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
14253         s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
14254         s << "\tdelta_luma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l1), DE_ARRAY_END(value.delta_luma_weight_l1)) << '\n';
14255         s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
14256         s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
14257         s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
14258         s << '}';
14259         return s;
14260 }
14261
14262 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
14263 {
14264         s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
14265         s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
14266         s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
14267         s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
14268         s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
14269         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
14270         s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
14271         s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
14272         s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
14273         s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
14274         s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
14275         s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
14276         s << "\tslice_deblocking_filter_disable_flag = " << value.slice_deblocking_filter_disable_flag << '\n';
14277         s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
14278         s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
14279         s << '}';
14280         return s;
14281 }
14282
14283 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
14284 {
14285         s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
14286         s << "\tflags = " << value.flags << '\n';
14287         s << "\tslice_type = " << value.slice_type << '\n';
14288         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
14289         s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
14290         s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
14291         s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
14292         s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
14293         s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
14294         s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
14295         s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
14296         s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
14297         s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
14298         s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
14299         s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
14300         s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
14301         s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
14302         s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
14303         s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
14304         s << "\tpWeightTable = " << value.pWeightTable << '\n';
14305         s << '}';
14306         return s;
14307 }
14308
14309 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
14310 {
14311         s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
14312         s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
14313         s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
14314         s << '}';
14315         return s;
14316 }
14317
14318 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
14319 {
14320         s << "StdVideoEncodeH265ReferenceModifications = {\n";
14321         s << "\tflags = " << value.flags << '\n';
14322         s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
14323         s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
14324         s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
14325         s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
14326         s << '}';
14327         return s;
14328 }
14329
14330 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
14331 {
14332         s << "StdVideoEncodeH265PictureInfoFlags = {\n";
14333         s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
14334         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
14335         s << "\tlong_term_flag = " << value.long_term_flag << '\n';
14336         s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
14337         s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
14338         s << '}';
14339         return s;
14340 }
14341
14342 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
14343 {
14344         s << "StdVideoEncodeH265PictureInfo = {\n";
14345         s << "\tflags = " << value.flags << '\n';
14346         s << "\tPictureType = " << value.PictureType << '\n';
14347         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
14348         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
14349         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
14350         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14351         s << "\tTemporalId = " << value.TemporalId << '\n';
14352         s << '}';
14353         return s;
14354 }
14355
14356 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
14357 {
14358         s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
14359         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
14360         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
14361         s << '}';
14362         return s;
14363 }
14364
14365 std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
14366 {
14367         s << "StdVideoEncodeH265ReferenceInfo = {\n";
14368         s << "\tflags = " << value.flags << '\n';
14369         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14370         s << "\tTemporalId = " << value.TemporalId << '\n';
14371         s << '}';
14372         return s;
14373 }
14374
14375 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
14376 {
14377         s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
14378         s << "\tsType = " << value.sType << '\n';
14379         s << "\tpNext = " << value.pNext << '\n';
14380         s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
14381         s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
14382         s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
14383         s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
14384         s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
14385         s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
14386         s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
14387         s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
14388         s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
14389         s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
14390         s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
14391         s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
14392         s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
14393         s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
14394         s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
14395         s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
14396         s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
14397         s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
14398         s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
14399         s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
14400         s << '}';
14401         return s;
14402 }
14403
14404 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
14405 {
14406         s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
14407         s << "\tsType = " << value.sType << '\n';
14408         s << "\tpNext = " << value.pNext << '\n';
14409         s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
14410         s << "\tpVpsStd = " << value.pVpsStd << '\n';
14411         s << "\tspsStdCount = " << value.spsStdCount << '\n';
14412         s << "\tpSpsStd = " << value.pSpsStd << '\n';
14413         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
14414         s << "\tpPpsStd = " << value.pPpsStd << '\n';
14415         s << '}';
14416         return s;
14417 }
14418
14419 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
14420 {
14421         s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
14422         s << "\tsType = " << value.sType << '\n';
14423         s << "\tpNext = " << value.pNext << '\n';
14424         s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
14425         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
14426         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
14427         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14428         s << '}';
14429         return s;
14430 }
14431
14432 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
14433 {
14434         s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
14435         s << "\tsType = " << value.sType << '\n';
14436         s << "\tpNext = " << value.pNext << '\n';
14437         s << "\tslotIndex = " << value.slotIndex << '\n';
14438         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14439         s << '}';
14440         return s;
14441 }
14442
14443 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value)
14444 {
14445         s << "VkVideoEncodeH265ReferenceListsEXT = {\n";
14446         s << "\tsType = " << value.sType << '\n';
14447         s << "\tpNext = " << value.pNext << '\n';
14448         s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
14449         s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
14450         s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
14451         s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
14452         s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
14453         s << '}';
14454         return s;
14455 }
14456
14457 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentEXT& value)
14458 {
14459         s << "VkVideoEncodeH265NaluSliceSegmentEXT = {\n";
14460         s << "\tsType = " << value.sType << '\n';
14461         s << "\tpNext = " << value.pNext << '\n';
14462         s << "\tctbCount = " << value.ctbCount << '\n';
14463         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14464         s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
14465         s << '}';
14466         return s;
14467 }
14468
14469 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
14470 {
14471         s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
14472         s << "\tsType = " << value.sType << '\n';
14473         s << "\tpNext = " << value.pNext << '\n';
14474         s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
14475         s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
14476         s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
14477         s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
14478         s << '}';
14479         return s;
14480 }
14481
14482 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value)
14483 {
14484         s << "VkVideoEncodeH265EmitPictureParametersEXT = {\n";
14485         s << "\tsType = " << value.sType << '\n';
14486         s << "\tpNext = " << value.pNext << '\n';
14487         s << "\tvpsId = " << value.vpsId << '\n';
14488         s << "\tspsId = " << value.spsId << '\n';
14489         s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
14490         s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
14491         s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
14492         s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
14493         s << '}';
14494         return s;
14495 }
14496
14497 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value)
14498 {
14499         s << "VkVideoEncodeH265ProfileEXT = {\n";
14500         s << "\tsType = " << value.sType << '\n';
14501         s << "\tpNext = " << value.pNext << '\n';
14502         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14503         s << '}';
14504         return s;
14505 }
14506
14507 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
14508 {
14509         s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
14510         s << "\tsType = " << value.sType << '\n';
14511         s << "\tpNext = " << value.pNext << '\n';
14512         s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
14513         s << "\tidrPeriod = " << value.idrPeriod << '\n';
14514         s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
14515         s << "\trateControlStructure = " << value.rateControlStructure << '\n';
14516         s << "\tsubLayerCount = " << value.subLayerCount << '\n';
14517         s << '}';
14518         return s;
14519 }
14520
14521 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
14522 {
14523         s << "VkVideoEncodeH265QpEXT = {\n";
14524         s << "\tqpI = " << value.qpI << '\n';
14525         s << "\tqpP = " << value.qpP << '\n';
14526         s << "\tqpB = " << value.qpB << '\n';
14527         s << '}';
14528         return s;
14529 }
14530
14531 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
14532 {
14533         s << "VkVideoEncodeH265FrameSizeEXT = {\n";
14534         s << "\tframeISize = " << value.frameISize << '\n';
14535         s << "\tframePSize = " << value.framePSize << '\n';
14536         s << "\tframeBSize = " << value.frameBSize << '\n';
14537         s << '}';
14538         return s;
14539 }
14540
14541 std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
14542 {
14543         s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
14544         s << "\tsType = " << value.sType << '\n';
14545         s << "\tpNext = " << value.pNext << '\n';
14546         s << "\ttemporalId = " << value.temporalId << '\n';
14547         s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
14548         s << "\tinitialRcQp = " << value.initialRcQp << '\n';
14549         s << "\tuseMinQp = " << value.useMinQp << '\n';
14550         s << "\tminQp = " << value.minQp << '\n';
14551         s << "\tuseMaxQp = " << value.useMaxQp << '\n';
14552         s << "\tmaxQp = " << value.maxQp << '\n';
14553         s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
14554         s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
14555         s << '}';
14556         return s;
14557 }
14558
14559 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
14560 {
14561         s << "StdVideoDecodeH264PictureInfoFlags = {\n";
14562         s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
14563         s << "\tis_intra = " << value.is_intra << '\n';
14564         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
14565         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
14566         s << "\tis_reference = " << value.is_reference << '\n';
14567         s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
14568         s << '}';
14569         return s;
14570 }
14571
14572 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
14573 {
14574         s << "StdVideoDecodeH264PictureInfo = {\n";
14575         s << "\tflags = " << value.flags << '\n';
14576         s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
14577         s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
14578         s << "\treserved = " << value.reserved << '\n';
14579         s << "\tframe_num = " << value.frame_num << '\n';
14580         s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
14581         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
14582         s << '}';
14583         return s;
14584 }
14585
14586 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
14587 {
14588         s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
14589         s << "\ttop_field_flag = " << value.top_field_flag << '\n';
14590         s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
14591         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
14592         s << "\tis_non_existing = " << value.is_non_existing << '\n';
14593         s << '}';
14594         return s;
14595 }
14596
14597 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
14598 {
14599         s << "StdVideoDecodeH264ReferenceInfo = {\n";
14600         s << "\tflags = " << value.flags << '\n';
14601         s << "\tFrameNum = " << value.FrameNum << '\n';
14602         s << "\treserved = " << value.reserved << '\n';
14603         s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
14604         s << '}';
14605         return s;
14606 }
14607
14608 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
14609 {
14610         s << "StdVideoDecodeH264MvcElementFlags = {\n";
14611         s << "\tnon_idr = " << value.non_idr << '\n';
14612         s << "\tanchor_pic = " << value.anchor_pic << '\n';
14613         s << "\tinter_view = " << value.inter_view << '\n';
14614         s << '}';
14615         return s;
14616 }
14617
14618 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
14619 {
14620         s << "StdVideoDecodeH264MvcElement = {\n";
14621         s << "\tflags = " << value.flags << '\n';
14622         s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
14623         s << "\tviewId = " << value.viewId << '\n';
14624         s << "\ttemporalId = " << value.temporalId << '\n';
14625         s << "\tpriorityId = " << value.priorityId << '\n';
14626         s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
14627         s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
14628         s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
14629         s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
14630         s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
14631         s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
14632         s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
14633         s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
14634         s << '}';
14635         return s;
14636 }
14637
14638 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
14639 {
14640         s << "StdVideoDecodeH264Mvc = {\n";
14641         s << "\tviewId0 = " << value.viewId0 << '\n';
14642         s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
14643         s << "\tpMvcElements = " << value.pMvcElements << '\n';
14644         s << '}';
14645         return s;
14646 }
14647
14648 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
14649 {
14650         s << "VkVideoDecodeH264ProfileEXT = {\n";
14651         s << "\tsType = " << value.sType << '\n';
14652         s << "\tpNext = " << value.pNext << '\n';
14653         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14654         s << "\tpictureLayout = " << getVideoDecodeH264PictureLayoutFlagsEXTStr(value.pictureLayout) << '\n';
14655         s << '}';
14656         return s;
14657 }
14658
14659 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
14660 {
14661         s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
14662         s << "\tsType = " << value.sType << '\n';
14663         s << "\tpNext = " << value.pNext << '\n';
14664         s << "\tmaxLevel = " << value.maxLevel << '\n';
14665         s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
14666         s << '}';
14667         return s;
14668 }
14669
14670 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
14671 {
14672         s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
14673         s << "\tsType = " << value.sType << '\n';
14674         s << "\tpNext = " << value.pNext << '\n';
14675         s << "\tspsStdCount = " << value.spsStdCount << '\n';
14676         s << "\tpSpsStd = " << value.pSpsStd << '\n';
14677         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
14678         s << "\tpPpsStd = " << value.pPpsStd << '\n';
14679         s << '}';
14680         return s;
14681 }
14682
14683 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
14684 {
14685         s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
14686         s << "\tsType = " << value.sType << '\n';
14687         s << "\tpNext = " << value.pNext << '\n';
14688         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
14689         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
14690         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14691         s << '}';
14692         return s;
14693 }
14694
14695 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
14696 {
14697         s << "VkVideoDecodeH264PictureInfoEXT = {\n";
14698         s << "\tsType = " << value.sType << '\n';
14699         s << "\tpNext = " << value.pNext << '\n';
14700         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14701         s << "\tslicesCount = " << value.slicesCount << '\n';
14702         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
14703         s << '}';
14704         return s;
14705 }
14706
14707 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
14708 {
14709         s << "VkVideoDecodeH264MvcEXT = {\n";
14710         s << "\tsType = " << value.sType << '\n';
14711         s << "\tpNext = " << value.pNext << '\n';
14712         s << "\tpStdMvc = " << value.pStdMvc << '\n';
14713         s << '}';
14714         return s;
14715 }
14716
14717 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
14718 {
14719         s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
14720         s << "\tsType = " << value.sType << '\n';
14721         s << "\tpNext = " << value.pNext << '\n';
14722         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14723         s << '}';
14724         return s;
14725 }
14726
14727 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
14728 {
14729         s << "StdVideoDecodeH265PictureInfoFlags = {\n";
14730         s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
14731         s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
14732         s << "\tIsReference = " << value.IsReference << '\n';
14733         s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
14734         s << '}';
14735         return s;
14736 }
14737
14738 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
14739 {
14740         s << "StdVideoDecodeH265PictureInfo = {\n";
14741         s << "\tflags = " << value.flags << '\n';
14742         s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
14743         s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
14744         s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
14745         s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
14746         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14747         s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
14748         s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
14749         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';
14750         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';
14751         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';
14752         s << '}';
14753         return s;
14754 }
14755
14756 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
14757 {
14758         s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
14759         s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
14760         s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
14761         s << "\tis_non_existing = " << value.is_non_existing << '\n';
14762         s << '}';
14763         return s;
14764 }
14765
14766 std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
14767 {
14768         s << "StdVideoDecodeH265ReferenceInfo = {\n";
14769         s << "\tflags = " << value.flags << '\n';
14770         s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
14771         s << '}';
14772         return s;
14773 }
14774
14775 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
14776 {
14777         s << "VkVideoDecodeH265ProfileEXT = {\n";
14778         s << "\tsType = " << value.sType << '\n';
14779         s << "\tpNext = " << value.pNext << '\n';
14780         s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
14781         s << '}';
14782         return s;
14783 }
14784
14785 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
14786 {
14787         s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
14788         s << "\tsType = " << value.sType << '\n';
14789         s << "\tpNext = " << value.pNext << '\n';
14790         s << "\tmaxLevel = " << value.maxLevel << '\n';
14791         s << '}';
14792         return s;
14793 }
14794
14795 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
14796 {
14797         s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
14798         s << "\tsType = " << value.sType << '\n';
14799         s << "\tpNext = " << value.pNext << '\n';
14800         s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
14801         s << "\tpVpsStd = " << value.pVpsStd << '\n';
14802         s << "\tspsStdCount = " << value.spsStdCount << '\n';
14803         s << "\tpSpsStd = " << value.pSpsStd << '\n';
14804         s << "\tppsStdCount = " << value.ppsStdCount << '\n';
14805         s << "\tpPpsStd = " << value.pPpsStd << '\n';
14806         s << '}';
14807         return s;
14808 }
14809
14810 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
14811 {
14812         s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
14813         s << "\tsType = " << value.sType << '\n';
14814         s << "\tpNext = " << value.pNext << '\n';
14815         s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
14816         s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
14817         s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
14818         s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
14819         s << '}';
14820         return s;
14821 }
14822
14823 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
14824 {
14825         s << "VkVideoDecodeH265PictureInfoEXT = {\n";
14826         s << "\tsType = " << value.sType << '\n';
14827         s << "\tpNext = " << value.pNext << '\n';
14828         s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
14829         s << "\tslicesCount = " << value.slicesCount << '\n';
14830         s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
14831         s << '}';
14832         return s;
14833 }
14834
14835 std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
14836 {
14837         s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
14838         s << "\tsType = " << value.sType << '\n';
14839         s << "\tpNext = " << value.pNext << '\n';
14840         s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
14841         s << '}';
14842         return s;
14843 }
14844
14845 std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
14846 {
14847         s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
14848         s << "\tsType = " << value.sType << '\n';
14849         s << "\tpNext = " << value.pNext << '\n';
14850         s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
14851         s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
14852         s << '}';
14853         return s;
14854 }
14855
14856 std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
14857 {
14858         s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
14859         s << "\tsType = " << value.sType << '\n';
14860         s << "\tpNext = " << value.pNext << '\n';
14861         s << "\thandleType = " << value.handleType << '\n';
14862         s << "\thandle = " << value.handle << '\n';
14863         s << '}';
14864         return s;
14865 }
14866
14867 std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
14868 {
14869         s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
14870         s << "\tsType = " << value.sType << '\n';
14871         s << "\tpNext = " << value.pNext << '\n';
14872         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14873         s << '}';
14874         return s;
14875 }
14876
14877 std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
14878 {
14879         s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
14880         s << "\tsType = " << value.sType << '\n';
14881         s << "\tpNext = " << value.pNext << '\n';
14882         s << "\tmemory = " << value.memory << '\n';
14883         s << "\thandleType = " << value.handleType << '\n';
14884         s << '}';
14885         return s;
14886 }
14887
14888 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
14889 {
14890         s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
14891         s << "\tsType = " << value.sType << '\n';
14892         s << "\tpNext = " << value.pNext << '\n';
14893         s << "\tsemaphore = " << value.semaphore << '\n';
14894         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
14895         s << "\thandleType = " << value.handleType << '\n';
14896         s << "\tzirconHandle = " << value.zirconHandle << '\n';
14897         s << '}';
14898         return s;
14899 }
14900
14901 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
14902 {
14903         s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
14904         s << "\tsType = " << value.sType << '\n';
14905         s << "\tpNext = " << value.pNext << '\n';
14906         s << "\tsemaphore = " << value.semaphore << '\n';
14907         s << "\thandleType = " << value.handleType << '\n';
14908         s << '}';
14909         return s;
14910 }
14911
14912 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
14913 {
14914         s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
14915         s << "\tsType = " << value.sType << '\n';
14916         s << "\tpNext = " << value.pNext << '\n';
14917         s << "\tcollectionToken = " << value.collectionToken << '\n';
14918         s << '}';
14919         return s;
14920 }
14921
14922 std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
14923 {
14924         s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
14925         s << "\tsType = " << value.sType << '\n';
14926         s << "\tpNext = " << value.pNext << '\n';
14927         s << "\tcollection = " << value.collection << '\n';
14928         s << "\tindex = " << value.index << '\n';
14929         s << '}';
14930         return s;
14931 }
14932
14933 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
14934 {
14935         s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
14936         s << "\tsType = " << value.sType << '\n';
14937         s << "\tpNext = " << value.pNext << '\n';
14938         s << "\tcollection = " << value.collection << '\n';
14939         s << "\tindex = " << value.index << '\n';
14940         s << '}';
14941         return s;
14942 }
14943
14944 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
14945 {
14946         s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
14947         s << "\tsType = " << value.sType << '\n';
14948         s << "\tpNext = " << value.pNext << '\n';
14949         s << "\tminBufferCount = " << value.minBufferCount << '\n';
14950         s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
14951         s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
14952         s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
14953         s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
14954         s << '}';
14955         return s;
14956 }
14957
14958 std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
14959 {
14960         s << "VkBufferConstraintsInfoFUCHSIA = {\n";
14961         s << "\tsType = " << value.sType << '\n';
14962         s << "\tpNext = " << value.pNext << '\n';
14963         s << "\tcreateInfo = " << value.createInfo << '\n';
14964         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
14965         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
14966         s << '}';
14967         return s;
14968 }
14969
14970 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
14971 {
14972         s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
14973         s << "\tsType = " << value.sType << '\n';
14974         s << "\tpNext = " << value.pNext << '\n';
14975         s << "\tcollection = " << value.collection << '\n';
14976         s << "\tindex = " << value.index << '\n';
14977         s << '}';
14978         return s;
14979 }
14980
14981 std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
14982 {
14983         s << "VkSysmemColorSpaceFUCHSIA = {\n";
14984         s << "\tsType = " << value.sType << '\n';
14985         s << "\tpNext = " << value.pNext << '\n';
14986         s << "\tcolorSpace = " << value.colorSpace << '\n';
14987         s << '}';
14988         return s;
14989 }
14990
14991 std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
14992 {
14993         s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
14994         s << "\tsType = " << value.sType << '\n';
14995         s << "\tpNext = " << value.pNext << '\n';
14996         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
14997         s << "\tbufferCount = " << value.bufferCount << '\n';
14998         s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
14999         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
15000         s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
15001         s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
15002         s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
15003         s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
15004         s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
15005         s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
15006         s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
15007         s << '}';
15008         return s;
15009 }
15010
15011 std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
15012 {
15013         s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
15014         s << "\tsType = " << value.sType << '\n';
15015         s << "\tpNext = " << value.pNext << '\n';
15016         s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
15017         s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
15018         s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
15019         s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
15020         s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
15021         s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
15022         s << '}';
15023         return s;
15024 }
15025
15026 std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
15027 {
15028         s << "VkImageConstraintsInfoFUCHSIA = {\n";
15029         s << "\tsType = " << value.sType << '\n';
15030         s << "\tpNext = " << value.pNext << '\n';
15031         s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
15032         s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
15033         s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
15034         s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
15035         s << '}';
15036         return s;
15037 }
15038
15039 std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
15040 {
15041         s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
15042         s << "\tsType = " << value.sType << '\n';
15043         s << "\tpNext = " << value.pNext << '\n';
15044         s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
15045         s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
15046         s << '}';
15047         return s;
15048 }
15049
15050 std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
15051 {
15052         s << "VkPresentFrameTokenGGP = {\n";
15053         s << "\tsType = " << value.sType << '\n';
15054         s << "\tpNext = " << value.pNext << '\n';
15055         s << "\tframeToken = " << value.frameToken << '\n';
15056         s << '}';
15057         return s;
15058 }
15059
15060 std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
15061 {
15062         s << "VkIOSSurfaceCreateInfoMVK = {\n";
15063         s << "\tsType = " << value.sType << '\n';
15064         s << "\tpNext = " << value.pNext << '\n';
15065         s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
15066         s << "\tpView = " << value.pView << '\n';
15067         s << '}';
15068         return s;
15069 }
15070
15071 std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
15072 {
15073         s << "VkMacOSSurfaceCreateInfoMVK = {\n";
15074         s << "\tsType = " << value.sType << '\n';
15075         s << "\tpNext = " << value.pNext << '\n';
15076         s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
15077         s << "\tpView = " << value.pView << '\n';
15078         s << '}';
15079         return s;
15080 }
15081
15082 std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
15083 {
15084         s << "VkMetalSurfaceCreateInfoEXT = {\n";
15085         s << "\tsType = " << value.sType << '\n';
15086         s << "\tpNext = " << value.pNext << '\n';
15087         s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
15088         s << "\tpLayer = " << value.pLayer << '\n';
15089         s << '}';
15090         return s;
15091 }
15092
15093 std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
15094 {
15095         s << "VkViSurfaceCreateInfoNN = {\n";
15096         s << "\tsType = " << value.sType << '\n';
15097         s << "\tpNext = " << value.pNext << '\n';
15098         s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
15099         s << "\twindow = " << value.window << '\n';
15100         s << '}';
15101         return s;
15102 }
15103
15104 std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
15105 {
15106         s << "VkWaylandSurfaceCreateInfoKHR = {\n";
15107         s << "\tsType = " << value.sType << '\n';
15108         s << "\tpNext = " << value.pNext << '\n';
15109         s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
15110         s << "\tdisplay = " << value.display << '\n';
15111         s << "\tsurface = " << value.surface << '\n';
15112         s << '}';
15113         return s;
15114 }
15115
15116 std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
15117 {
15118         s << "VkWin32SurfaceCreateInfoKHR = {\n";
15119         s << "\tsType = " << value.sType << '\n';
15120         s << "\tpNext = " << value.pNext << '\n';
15121         s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
15122         s << "\thinstance = " << value.hinstance << '\n';
15123         s << "\thwnd = " << value.hwnd << '\n';
15124         s << '}';
15125         return s;
15126 }
15127
15128 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
15129 {
15130         s << "VkImportMemoryWin32HandleInfoKHR = {\n";
15131         s << "\tsType = " << value.sType << '\n';
15132         s << "\tpNext = " << value.pNext << '\n';
15133         s << "\thandleType = " << value.handleType << '\n';
15134         s << "\thandle = " << value.handle << '\n';
15135         s << "\tname = " << getWStr(value.name) << '\n';
15136         s << '}';
15137         return s;
15138 }
15139
15140 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
15141 {
15142         s << "VkExportMemoryWin32HandleInfoKHR = {\n";
15143         s << "\tsType = " << value.sType << '\n';
15144         s << "\tpNext = " << value.pNext << '\n';
15145         s << "\tpAttributes = " << value.pAttributes << '\n';
15146         s << "\tdwAccess = " << value.dwAccess << '\n';
15147         s << "\tname = " << getWStr(value.name) << '\n';
15148         s << '}';
15149         return s;
15150 }
15151
15152 std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
15153 {
15154         s << "VkMemoryWin32HandlePropertiesKHR = {\n";
15155         s << "\tsType = " << value.sType << '\n';
15156         s << "\tpNext = " << value.pNext << '\n';
15157         s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
15158         s << '}';
15159         return s;
15160 }
15161
15162 std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
15163 {
15164         s << "VkMemoryGetWin32HandleInfoKHR = {\n";
15165         s << "\tsType = " << value.sType << '\n';
15166         s << "\tpNext = " << value.pNext << '\n';
15167         s << "\tmemory = " << value.memory << '\n';
15168         s << "\thandleType = " << value.handleType << '\n';
15169         s << '}';
15170         return s;
15171 }
15172
15173 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
15174 {
15175         s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
15176         s << "\tsType = " << value.sType << '\n';
15177         s << "\tpNext = " << value.pNext << '\n';
15178         s << "\tacquireCount = " << value.acquireCount << '\n';
15179         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
15180         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
15181         s << "\tpAcquireTimeouts = " << value.pAcquireTimeouts << '\n';
15182         s << "\treleaseCount = " << value.releaseCount << '\n';
15183         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
15184         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
15185         s << '}';
15186         return s;
15187 }
15188
15189 std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
15190 {
15191         s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
15192         s << "\tsType = " << value.sType << '\n';
15193         s << "\tpNext = " << value.pNext << '\n';
15194         s << "\tsemaphore = " << value.semaphore << '\n';
15195         s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
15196         s << "\thandleType = " << value.handleType << '\n';
15197         s << "\thandle = " << value.handle << '\n';
15198         s << "\tname = " << getWStr(value.name) << '\n';
15199         s << '}';
15200         return s;
15201 }
15202
15203 std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
15204 {
15205         s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
15206         s << "\tsType = " << value.sType << '\n';
15207         s << "\tpNext = " << value.pNext << '\n';
15208         s << "\tpAttributes = " << value.pAttributes << '\n';
15209         s << "\tdwAccess = " << value.dwAccess << '\n';
15210         s << "\tname = " << getWStr(value.name) << '\n';
15211         s << '}';
15212         return s;
15213 }
15214
15215 std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
15216 {
15217         s << "VkD3D12FenceSubmitInfoKHR = {\n";
15218         s << "\tsType = " << value.sType << '\n';
15219         s << "\tpNext = " << value.pNext << '\n';
15220         s << "\twaitSemaphoreValuesCount = " << value.waitSemaphoreValuesCount << '\n';
15221         s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
15222         s << "\tsignalSemaphoreValuesCount = " << value.signalSemaphoreValuesCount << '\n';
15223         s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
15224         s << '}';
15225         return s;
15226 }
15227
15228 std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
15229 {
15230         s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
15231         s << "\tsType = " << value.sType << '\n';
15232         s << "\tpNext = " << value.pNext << '\n';
15233         s << "\tsemaphore = " << value.semaphore << '\n';
15234         s << "\thandleType = " << value.handleType << '\n';
15235         s << '}';
15236         return s;
15237 }
15238
15239 std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
15240 {
15241         s << "VkImportFenceWin32HandleInfoKHR = {\n";
15242         s << "\tsType = " << value.sType << '\n';
15243         s << "\tpNext = " << value.pNext << '\n';
15244         s << "\tfence = " << value.fence << '\n';
15245         s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
15246         s << "\thandleType = " << value.handleType << '\n';
15247         s << "\thandle = " << value.handle << '\n';
15248         s << "\tname = " << getWStr(value.name) << '\n';
15249         s << '}';
15250         return s;
15251 }
15252
15253 std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
15254 {
15255         s << "VkExportFenceWin32HandleInfoKHR = {\n";
15256         s << "\tsType = " << value.sType << '\n';
15257         s << "\tpNext = " << value.pNext << '\n';
15258         s << "\tpAttributes = " << value.pAttributes << '\n';
15259         s << "\tdwAccess = " << value.dwAccess << '\n';
15260         s << "\tname = " << getWStr(value.name) << '\n';
15261         s << '}';
15262         return s;
15263 }
15264
15265 std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
15266 {
15267         s << "VkFenceGetWin32HandleInfoKHR = {\n";
15268         s << "\tsType = " << value.sType << '\n';
15269         s << "\tpNext = " << value.pNext << '\n';
15270         s << "\tfence = " << value.fence << '\n';
15271         s << "\thandleType = " << value.handleType << '\n';
15272         s << '}';
15273         return s;
15274 }
15275
15276 std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
15277 {
15278         s << "VkImportMemoryWin32HandleInfoNV = {\n";
15279         s << "\tsType = " << value.sType << '\n';
15280         s << "\tpNext = " << value.pNext << '\n';
15281         s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
15282         s << "\thandle = " << value.handle << '\n';
15283         s << '}';
15284         return s;
15285 }
15286
15287 std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
15288 {
15289         s << "VkExportMemoryWin32HandleInfoNV = {\n";
15290         s << "\tsType = " << value.sType << '\n';
15291         s << "\tpNext = " << value.pNext << '\n';
15292         s << "\tpAttributes = " << value.pAttributes << '\n';
15293         s << "\tdwAccess = " << value.dwAccess << '\n';
15294         s << '}';
15295         return s;
15296 }
15297
15298 std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
15299 {
15300         s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
15301         s << "\tsType = " << value.sType << '\n';
15302         s << "\tpNext = " << value.pNext << '\n';
15303         s << "\tacquireCount = " << value.acquireCount << '\n';
15304         s << "\tpAcquireSyncs = " << value.pAcquireSyncs << '\n';
15305         s << "\tpAcquireKeys = " << value.pAcquireKeys << '\n';
15306         s << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
15307         s << "\treleaseCount = " << value.releaseCount << '\n';
15308         s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
15309         s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
15310         s << '}';
15311         return s;
15312 }
15313
15314 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
15315 {
15316         s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
15317         s << "\tsType = " << value.sType << '\n';
15318         s << "\tpNext = " << value.pNext << '\n';
15319         s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
15320         s << '}';
15321         return s;
15322 }
15323
15324 std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
15325 {
15326         s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
15327         s << "\tsType = " << value.sType << '\n';
15328         s << "\tpNext = " << value.pNext << '\n';
15329         s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
15330         s << '}';
15331         return s;
15332 }
15333
15334 std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
15335 {
15336         s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
15337         s << "\tsType = " << value.sType << '\n';
15338         s << "\tpNext = " << value.pNext << '\n';
15339         s << "\thmonitor = " << value.hmonitor << '\n';
15340         s << '}';
15341         return s;
15342 }
15343
15344 std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
15345 {
15346         s << "VkXcbSurfaceCreateInfoKHR = {\n";
15347         s << "\tsType = " << value.sType << '\n';
15348         s << "\tpNext = " << value.pNext << '\n';
15349         s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
15350         s << "\tconnection = " << value.connection << '\n';
15351         s << "\twindow = " << value.window << '\n';
15352         s << '}';
15353         return s;
15354 }
15355
15356 std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
15357 {
15358         s << "VkXlibSurfaceCreateInfoKHR = {\n";
15359         s << "\tsType = " << value.sType << '\n';
15360         s << "\tpNext = " << value.pNext << '\n';
15361         s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
15362         s << "\tdpy = " << value.dpy << '\n';
15363         s << "\twindow = " << value.window << '\n';
15364         s << '}';
15365         return s;
15366 }